10#ifndef ISL_CPP_CHECKED
11#define ISL_CPP_CHECKED
25#define ISLPP_STRINGIZE_(X) #X
26#define ISLPP_STRINGIZE(X) ISLPP_STRINGIZE_(X)
28#define ISLPP_ASSERT(test, message) \
32 fputs("Assertion \"" #test "\" failed at " __FILE__ \
33 ":" ISLPP_STRINGIZE(__LINE__) "\n " message "\n", \
50 mutable std::shared_ptr<checker>
check = std::make_shared<checker>();
68 check->checked =
true;
76 operator bool()
const {
118 mutable std::shared_ptr<checker>
check = std::make_shared<checker>();
133 check->checked =
true;
138 check->checked =
true;
142 check->checked =
true;
156 mutable std::shared_ptr<checker>
check = std::make_shared<checker>();
167 check->checked =
true;
172 check->checked =
true;
176 explicit operator unsigned()
const {
178 "IMPLEMENTATION ERROR: Unchecked error state");
180 "IMPLEMENTATION ERROR: Unhandled error state");
525 isl_aff_list *
ptr =
nullptr;
586 std::shared_ptr<at_each_domain_data> at_each_domain_data;
629 template <typename T,
630 typename = typename std::enable_if<std::is_same<
632 const T>::value>::
type>
635 template <class T> inline
boolean isa() const;
636 template <class T> inline T
as() const;
643 inline
isl::
id id() const;
712 template <
typename T,
713 typename =
typename std::enable_if<std::is_same<
718 template <
class T>
inline boolean isa()
const;
719 template <
class T>
inline T
as()
const;
1246 template <typename T,
1247 typename = typename std::enable_if<std::is_same<
1249 const T>::value>::
type>
1252 template <class T> inline
boolean isa() const;
1253 template <class T> inline T
as() const;
1348 isl_ast_node_list *ptr =
nullptr;
1636 isl_basic_map_list *
ptr =
nullptr;
1974 inline
void *
user() const;
1987 isl_id_list *
ptr =
nullptr;
2028 isl_id_to_ast_expr *
ptr =
nullptr;
2324 isl_map_list *
ptr =
nullptr;
3106 inline
boolean is_cst() const;
3208 isl_pw_aff_list *
ptr =
nullptr;
3414 isl_pw_multi_aff_list *
ptr =
nullptr;
3558 template <typename T,
3559 typename = typename std::enable_if<std::is_same<
3561 const T>::value>::
type>
3564 template <class T> inline
boolean isa() const;
3565 template <class T> inline T
as() const;
4113 inline explicit space(
isl::ctx ctx,
unsigned int nparam,
unsigned int n_in,
unsigned int n_out);
4155 inline
boolean is_set() const;
4506 isl_union_pw_aff_list *
ptr =
nullptr;
4753 inline
boolean eq(
long v2) const;
4758 inline
boolean ge(
long v2) const;
4760 inline
boolean gt(
long v2) const;
4779 inline
boolean le(
long v2) const;
4781 inline
boolean lt(
long v2) const;
4792 inline
boolean ne(
long v2) const;
4817 isl_val_list *
ptr =
nullptr;
4889 std::swap(this->ptr,
obj.ptr);
4913 return ptr ==
nullptr;
4920isl::aff
aff::add(isl::aff aff2)
const
4926isl::multi_aff
aff::add(
const isl::multi_aff &multi2)
const
4928 return isl::multi_aff(*this).
add(multi2);
4931isl::multi_pw_aff
aff::add(
const isl::multi_pw_aff &multi2)
const
4933 return isl::pw_aff(*this).
add(multi2);
4936isl::multi_union_pw_aff
aff::add(
const isl::multi_union_pw_aff &multi2)
const
4938 return isl::pw_aff(*this).
add(multi2);
4941isl::pw_aff
aff::add(
const isl::pw_aff &pwaff2)
const
4943 return isl::pw_aff(*this).
add(pwaff2);
4946isl::pw_multi_aff
aff::add(
const isl::pw_multi_aff &pma2)
const
4948 return isl::pw_aff(*this).
add(pma2);
4951isl::union_pw_aff
aff::add(
const isl::union_pw_aff &upa2)
const
4953 return isl::pw_aff(*this).
add(upa2);
4956isl::union_pw_multi_aff
aff::add(
const isl::union_pw_multi_aff &upma2)
const
4958 return isl::pw_aff(*this).
add(upma2);
5005 return isl::pw_aff(*this).
as_map();
5015 return isl::pw_aff(*this).as_multi_union_pw_aff();
5025 return isl::multi_aff(*this).
as_set();
5030 return isl::pw_aff(*this).as_union_map();
5035 return isl::multi_aff(*this).
at(
pos);
5038isl::basic_set
aff::bind(isl::id
id)
const
5044isl::basic_set
aff::bind(
const std::string &
id)
const
5046 return this->
bind(isl::id(
ctx(),
id));
5051 return isl::multi_aff(*this).
bind(
tuple);
5072 return isl::pw_aff(*this).
coalesce();
5075isl::pw_aff
aff::cond(
const isl::pw_aff &pwaff_true,
const isl::pw_aff &pwaff_false)
const
5077 return isl::pw_aff(*this).
cond(pwaff_true, pwaff_false);
5082 return isl::multi_aff(*this).constant_multi_val();
5130 return isl::pw_aff(*this).domain();
5251 return isl::pw_aff(*this).gt_set(pwaff2);
5256 return isl::multi_aff(*this).has_range_tuple_id();
5261 return isl::multi_aff(*this).
identity();
5301 return isl::multi_aff(*this).involves_locals();
5306 return isl::multi_aff(*this).involves_nan();
5311 return isl::pw_aff(*this).involves_param(
id);
5321 return isl::pw_aff(*this).involves_param(
list);
5347 return isl::pw_aff(*this).isa_pw_multi_aff();
5358 return isl::pw_aff(*this).le_set(pwaff2);
5363 return isl::multi_aff(*this).list();
5374 return isl::pw_aff(*this).lt_set(pwaff2);
5377isl::multi_pw_aff
aff::max(
const isl::multi_pw_aff &multi2)
const
5379 return isl::pw_aff(*this).
max(multi2);
5382isl::pw_aff
aff::max(
const isl::pw_aff &pwaff2)
const
5384 return isl::pw_aff(*this).
max(pwaff2);
5389 return isl::pw_aff(*this).max_multi_val();
5392isl::multi_pw_aff
aff::min(
const isl::multi_pw_aff &multi2)
const
5394 return isl::pw_aff(*this).
min(multi2);
5397isl::pw_aff
aff::min(
const isl::pw_aff &pwaff2)
const
5399 return isl::pw_aff(*this).
min(pwaff2);
5404 return isl::pw_aff(*this).min_multi_val();
5407isl::aff
aff::mod(isl::val mod)
const
5418isl::aff
aff::mul(isl::aff aff2)
const
5424isl::pw_aff
aff::mul(
const isl::pw_aff &pwaff2)
const
5426 return isl::pw_aff(*this).
mul(pwaff2);
5431 return isl::pw_aff(*this).n_piece();
5442 return isl::pw_aff(*this).ne_set(pwaff2);
5453 return isl::pw_aff(*this).plain_is_empty();
5458 return isl::multi_aff(*this).plain_is_equal(multi2);
5463 return isl::pw_aff(*this).plain_is_equal(multi2);
5468 return isl::pw_aff(*this).plain_is_equal(multi2);
5481isl::multi_aff
aff::product(
const isl::multi_aff &multi2)
const
5483 return isl::multi_aff(*this).
product(multi2);
5486isl::multi_pw_aff
aff::product(
const isl::multi_pw_aff &multi2)
const
5488 return isl::pw_aff(*this).
product(multi2);
5491isl::pw_multi_aff
aff::product(
const isl::pw_multi_aff &pma2)
const
5493 return isl::pw_aff(*this).
product(pma2);
5502isl::pw_aff
aff::pullback(
const isl::multi_pw_aff &mpa)
const
5504 return isl::pw_aff(*this).
pullback(mpa);
5512isl::union_pw_aff
aff::pullback(
const isl::union_pw_multi_aff &upma)
const
5514 return isl::pw_aff(*this).
pullback(upma);
5547isl::multi_union_pw_aff
aff::range_product(
const isl::multi_union_pw_aff &multi2)
const
5557isl::union_pw_multi_aff
aff::range_product(
const isl::union_pw_multi_aff &upma2)
const
5564 return isl::multi_aff(*this).range_tuple_id();
5588isl::multi_aff
aff::scale(
const isl::multi_val &mv)
const
5590 return isl::multi_aff(*this).
scale(mv);
5624isl::multi_union_pw_aff
aff::set_at(
int pos,
const isl::union_pw_aff &el)
const
5626 return isl::pw_aff(*this).
set_at(
pos, el);
5680isl::aff
aff::sub(isl::aff aff2)
const
5686isl::multi_aff
aff::sub(
const isl::multi_aff &multi2)
const
5688 return isl::multi_aff(*this).
sub(multi2);
5691isl::multi_pw_aff
aff::sub(
const isl::multi_pw_aff &multi2)
const
5693 return isl::pw_aff(*this).
sub(multi2);
5696isl::multi_union_pw_aff
aff::sub(
const isl::multi_union_pw_aff &multi2)
const
5698 return isl::pw_aff(*this).
sub(multi2);
5701isl::pw_aff
aff::sub(
const isl::pw_aff &pwaff2)
const
5703 return isl::pw_aff(*this).
sub(pwaff2);
5706isl::pw_multi_aff
aff::sub(
const isl::pw_multi_aff &pma2)
const
5708 return isl::pw_aff(*this).
sub(pma2);
5711isl::union_pw_aff
aff::sub(
const isl::union_pw_aff &upa2)
const
5713 return isl::pw_aff(*this).
sub(upa2);
5716isl::union_pw_multi_aff
aff::sub(
const isl::union_pw_multi_aff &upma2)
const
5718 return isl::pw_aff(*this).
sub(upma2);
5736isl::pw_aff
aff::tdiv_q(
const isl::pw_aff &pa2)
const
5738 return isl::pw_aff(*this).
tdiv_q(pa2);
5741isl::pw_aff
aff::tdiv_r(
const isl::pw_aff &pa2)
const
5743 return isl::pw_aff(*this).
tdiv_r(pa2);
5748 auto res = isl_aff_to_list(
copy());
5754 return isl::multi_aff(*this).to_multi_pw_aff();
5759 return isl::multi_aff(*this).to_multi_union_pw_aff();
5764 return isl::multi_aff(*this).to_pw_multi_aff();
5769 return isl::pw_aff(*this).to_union_pw_aff();
5774 return isl::pw_aff(*this).to_union_pw_multi_aff();
5793isl::multi_union_pw_aff
aff::union_add(
const isl::multi_union_pw_aff &mupa2)
const
5795 return isl::pw_aff(*this).
union_add(mupa2);
5800 return isl::pw_aff(*this).
union_add(pwaff2);
5803isl::pw_multi_aff
aff::union_add(
const isl::pw_multi_aff &pma2)
const
5805 return isl::pw_aff(*this).
union_add(pma2);
5808isl::union_pw_aff
aff::union_add(
const isl::union_pw_aff &upa2)
const
5810 return isl::pw_aff(*this).
union_add(upa2);
5813isl::union_pw_multi_aff
aff::union_add(
const isl::union_pw_multi_aff &upma2)
const
5815 return isl::pw_aff(*this).
union_add(upma2);
5834 os.setstate(std::ios_base::badbit);
5847 ptr = isl_aff_list_copy(ptr);
5865 auto res = isl_aff_list_alloc(
ctx.release(),
n);
5871 auto res = isl_aff_list_from_aff(el.
release());
5877 auto res = isl_aff_list_read_from_str(
ctx.release(),
str.c_str());
5882 std::swap(this->
ptr,
obj.ptr);
5888 isl_aff_list_free(
ptr);
5892 return isl_aff_list_copy(
ptr);
5900 isl_aff_list *tmp =
ptr;
5906 return ptr ==
nullptr;
5910 return isl::ctx(isl_aff_list_get_ctx(
ptr));
5921 auto res = isl_aff_list_get_at(
get(), index);
5932 auto res = isl_aff_list_clear(
copy());
5944 auto res = isl_aff_list_drop(
copy(), first,
n);
5954 auto *data =
static_cast<struct fn_data *
>(arg_1);
5955 auto ret = (data->func)(
manage(arg_0));
5956 return ret.release();
5958 auto res = isl_aff_list_foreach(
get(), fn_lambda, &fn_data);
5970 auto res = isl_aff_list_size(
get());
5976 char *
str = isl_aff_list_to_str(
obj.get());
5978 os.setstate(std::ios_base::badbit);
6002 copy_callbacks(
obj);
6015 std::swap(this->
ptr,
obj.ptr);
6042 return ptr ==
nullptr;
6059 return ret.release();
6072 copy.set_at_each_domain_data(
fn);
6169 std::swap(this->
ptr,
obj.ptr);
6193 return ptr ==
nullptr;
6196template <
typename T,
typename>
6281 std::string tmp(
res);
6301 os.setstate(std::ios_base::badbit);
6322 std::swap(this->
ptr,
obj.ptr);
6345 os.setstate(std::ios_base::badbit);
6366 std::swap(this->
ptr,
obj.ptr);
6389 os.setstate(std::ios_base::badbit);
6410 std::swap(this->
ptr,
obj.ptr);
6414template <
typename T,
typename>
6464 os.setstate(std::ios_base::badbit);
6485 std::swap(this->
ptr,
obj.ptr);
6497 os.setstate(std::ios_base::badbit);
6518 std::swap(this->
ptr,
obj.ptr);
6530 os.setstate(std::ios_base::badbit);
6551 std::swap(this->
ptr,
obj.ptr);
6563 os.setstate(std::ios_base::badbit);
6584 std::swap(this->
ptr,
obj.ptr);
6596 os.setstate(std::ios_base::badbit);
6617 std::swap(this->
ptr,
obj.ptr);
6629 os.setstate(std::ios_base::badbit);
6650 std::swap(this->
ptr,
obj.ptr);
6662 os.setstate(std::ios_base::badbit);
6683 std::swap(this->
ptr,
obj.ptr);
6695 os.setstate(std::ios_base::badbit);
6716 std::swap(this->
ptr,
obj.ptr);
6728 os.setstate(std::ios_base::badbit);
6749 std::swap(this->
ptr,
obj.ptr);
6761 os.setstate(std::ios_base::badbit);
6782 std::swap(this->
ptr,
obj.ptr);
6794 os.setstate(std::ios_base::badbit);
6815 std::swap(this->
ptr,
obj.ptr);
6827 os.setstate(std::ios_base::badbit);
6848 std::swap(this->
ptr,
obj.ptr);
6860 os.setstate(std::ios_base::badbit);
6881 std::swap(this->
ptr,
obj.ptr);
6893 os.setstate(std::ios_base::badbit);
6914 std::swap(this->
ptr,
obj.ptr);
6926 os.setstate(std::ios_base::badbit);
6947 std::swap(this->
ptr,
obj.ptr);
6959 os.setstate(std::ios_base::badbit);
6980 std::swap(this->
ptr,
obj.ptr);
6992 os.setstate(std::ios_base::badbit);
7013 std::swap(this->
ptr,
obj.ptr);
7025 os.setstate(std::ios_base::badbit);
7046 std::swap(this->
ptr,
obj.ptr);
7058 os.setstate(std::ios_base::badbit);
7079 std::swap(this->
ptr,
obj.ptr);
7091 os.setstate(std::ios_base::badbit);
7112 std::swap(this->
ptr,
obj.ptr);
7124 os.setstate(std::ios_base::badbit);
7145 std::swap(this->
ptr,
obj.ptr);
7157 os.setstate(std::ios_base::badbit);
7178 std::swap(this->
ptr,
obj.ptr);
7190 os.setstate(std::ios_base::badbit);
7211 std::swap(this->
ptr,
obj.ptr);
7223 os.setstate(std::ios_base::badbit);
7244 std::swap(this->
ptr,
obj.ptr);
7256 os.setstate(std::ios_base::badbit);
7277 std::swap(this->
ptr,
obj.ptr);
7289 os.setstate(std::ios_base::badbit);
7310 std::swap(this->
ptr,
obj.ptr);
7322 os.setstate(std::ios_base::badbit);
7352 std::swap(this->
ptr,
obj.ptr);
7376 return ptr ==
nullptr;
7379template <
typename T,
typename>
7417 std::string tmp(
res);
7424 auto res = isl_ast_node_to_list(
copy());
7432 os.setstate(std::ios_base::badbit);
7453 std::swap(this->
ptr,
obj.ptr);
7476 os.setstate(std::ios_base::badbit);
7497 std::swap(this->
ptr,
obj.ptr);
7570 os.setstate(std::ios_base::badbit);
7591 std::swap(this->
ptr,
obj.ptr);
7642 os.setstate(std::ios_base::badbit);
7655 ptr = isl_ast_node_list_copy(ptr);
7673 auto res = isl_ast_node_list_alloc(
ctx.release(),
n);
7679 auto res = isl_ast_node_list_from_ast_node(el.
release());
7684 std::swap(this->
ptr,
obj.ptr);
7690 isl_ast_node_list_free(
ptr);
7694 return isl_ast_node_list_copy(
ptr);
7702 isl_ast_node_list *tmp =
ptr;
7708 return ptr ==
nullptr;
7712 return isl::ctx(isl_ast_node_list_get_ctx(
ptr));
7723 auto res = isl_ast_node_list_get_at(
get(), index);
7734 auto res = isl_ast_node_list_clear(
copy());
7746 auto res = isl_ast_node_list_drop(
copy(), first,
n);
7756 auto *data =
static_cast<struct fn_data *
>(arg_1);
7757 auto ret = (data->func)(
manage(arg_0));
7758 return ret.release();
7760 auto res = isl_ast_node_list_foreach(
get(), fn_lambda, &fn_data);
7772 auto res = isl_ast_node_list_size(
get());
7778 char *
str = isl_ast_node_list_to_str(
obj.get());
7780 os.setstate(std::ios_base::badbit);
7801 std::swap(this->
ptr,
obj.ptr);
7835 os.setstate(std::ios_base::badbit);
7856 std::swap(this->
ptr,
obj.ptr);
7879 os.setstate(std::ios_base::badbit);
7915 std::swap(this->
ptr,
obj.ptr);
7939 return ptr ==
nullptr;
7964 return isl::map(*this).align_params(model);
8001 return isl::map(*this).
as_map();
8006 return isl::map(*this).as_multi_union_pw_aff();
8016 return isl::map(*this).as_union_pw_multi_aff();
8021 return isl::map(*this).basic_map_list();
8036 return isl::map(*this).can_curry();
8056 return isl::map(*this).
curry();
8109 return isl::map(*this).domain_map_union_pw_multi_aff();
8124 return isl::map(*this).domain_tuple_dim();
8129 return isl::map(*this).domain_tuple_id();
8134 return isl::map(*this).
eq_at(mpa);
8208 return isl::map(*this).flat_range_product(umap2);
8231 return isl::map(*this).floordiv_val(d);
8299 return isl::map(*this).has_domain_tuple_id();
8335 return isl::map(*this).
intersect(umap2);
8452 return isl::map(*this).is_disjoint(umap2);
8469 return isl::map(*this).is_equal(
map2);
8474 return isl::map(*this).is_equal(umap2);
8479 return isl::map(*this).is_injective();
8484 return isl::map(*this).is_single_valued();
8489 return isl::map(*this).is_strict_subset(
map2);
8494 return isl::map(*this).is_strict_subset(umap2);
8505 return isl::map(*this).is_subset(
map2);
8510 return isl::map(*this).is_subset(umap2);
8515 return isl::map(*this).isa_map();
8546 return isl::map(*this).lexmax_pw_multi_aff();
8557 return isl::map(*this).lexmin_pw_multi_aff();
8582 return isl::map(*this).min_multi_pw_aff();
8587 return isl::map(*this).move_dims(dst_type, dst_pos, src_type, src_pos,
n);
8597 return isl::map(*this).order_lt(type1, pos1, type2, pos2);
8658 return isl::map(*this).
product(umap2);
8688 return isl::map(*this).range_lattice_tile();
8713 return isl::map(*this).range_simple_fixed_box_hull();
8718 return isl::map(*this).range_tuple_dim();
8723 return isl::map(*this).range_tuple_id();
8780 return isl::map(*this).
subtract(umap2);
8800 auto res = isl_basic_map_to_list(
copy());
8832 return isl::map(*this).
unite(umap2);
8870 os.setstate(std::ios_base::badbit);
8883 ptr = isl_basic_map_list_copy(
ptr);
8901 auto res = isl_basic_map_list_alloc(
ctx.release(),
n);
8907 auto res = isl_basic_map_list_from_basic_map(el.
release());
8912 std::swap(this->ptr,
obj.ptr);
8918 isl_basic_map_list_free(
ptr);
8922 return isl_basic_map_list_copy(
ptr);
8930 isl_basic_map_list *tmp =
ptr;
8936 return ptr ==
nullptr;
8951 auto res = isl_basic_map_list_get_at(
get(), index);
8962 auto res = isl_basic_map_list_clear(
copy());
8974 auto res = isl_basic_map_list_drop(
copy(), first,
n);
8984 auto *data =
static_cast<struct fn_data *
>(arg_1);
8985 auto ret = (data->func)(
manage(arg_0));
8986 return ret.release();
8988 auto res = isl_basic_map_list_foreach(
get(), fn_lambda, &fn_data);
9000 auto res = isl_basic_map_list_size(
get());
9006 char *
str = isl_basic_map_list_to_str(
obj.get());
9008 os.setstate(std::ios_base::badbit);
9018 return basic_set(ptr);
9028basic_set::basic_set(
const basic_set &
obj)
9043basic_set::basic_set(
isl::ctx ctx,
const std::string &
str)
9049basic_set &basic_set::operator=(basic_set
obj) {
9050 std::swap(this->ptr,
obj.ptr);
9054basic_set::~basic_set() {
9073bool basic_set::is_null()
const {
9074 return ptr ==
nullptr;
9099 return isl::set(*this).align_params(model);
9130 return isl::set(*this).basic_set_list();
9138isl::set basic_set::coalesce()
const
9143isl::set basic_set::complement()
const
9160 return isl::set(*this).convex_hull();
9224 return isl::set(*this).drop_constraints_involving_dims(
type, first,
n);
9277 return isl::set(*this).foreach_basic_set(
fn);
9328 return isl::set(*this).identity_union_pw_multi_aff();
9333 return isl::set(*this).indicator_function();
9390 return isl::set(*this).involves_locals();
9406 return isl::set(*this).is_disjoint(uset2);
9409boolean basic_set::is_empty()
const
9428 return isl::set(*this).is_equal(uset2);
9431boolean basic_set::is_equal(
const isl::point &bset2)
const
9438 return isl::set(*this).is_params();
9443 return isl::set(*this).is_singleton();
9446boolean basic_set::is_strict_subset(
const isl::set &
set2)
const
9451boolean basic_set::is_strict_subset(
const isl::union_set &uset2)
const
9453 return isl::set(*this).is_strict_subset(uset2);
9462boolean basic_set::is_subset(
const isl::set &
set2)
const
9469 return isl::set(*this).is_subset(uset2);
9472boolean basic_set::is_subset(
const isl::point &bset2)
const
9477boolean basic_set::is_wrapping()
const
9483boolean basic_set::isa_set()
const
9496 return isl::set(*this).lexmax_pw_multi_aff();
9507 return isl::set(*this).lexmin_pw_multi_aff();
9537 return isl::set(*this).max_multi_pw_aff();
9547 return isl::set(*this).min_multi_pw_aff();
9555class size basic_set::n_basic_set()
const
9557 return isl::set(*this).n_basic_set();
9573 return isl::set(*this).plain_multi_val_if_fixed();
9614 return isl::set(*this).project_out_all_params();
9622isl::set basic_set::project_out_param(
const std::string &
id)
const
9624 return this->project_out_param(
isl::id(ctx(),
id));
9634 return isl::set(*this).pw_multi_aff_on_domain(mv);
9644 return isl::set(*this).remove_divs();
9649 return isl::set(*this).remove_redundancies();
9654 return isl::set(*this).reset_tuple_id();
9686 return isl::set(*this).set_tuple_id(
id);
9696 return isl::set(*this).simple_fixed_box_hull();
9701 return isl::set(*this).simple_hull();
9732 auto res = isl_basic_set_to_list(copy());
9744 return isl::set(*this).to_union_set();
9747isl::map basic_set::translation()
const
9749 return isl::set(*this).translation();
9752class size basic_set::tuple_dim()
const
9754 return isl::set(*this).tuple_dim();
9764 return isl::set(*this).tuple_name();
9806 return isl::set(*this).unshifted_simple_hull();
9838 os.setstate(std::ios_base::badbit);
9851 ptr = isl_basic_set_list_copy(
ptr);
9869 auto res = isl_basic_set_list_alloc(
ctx.release(),
n);
9875 auto res = isl_basic_set_list_from_basic_set(el.
release());
9880 std::swap(this->ptr,
obj.ptr);
9886 isl_basic_set_list_free(
ptr);
9890 return isl_basic_set_list_copy(
ptr);
9904 return ptr ==
nullptr;
9919 auto res = isl_basic_set_list_get_at(
get(), index);
9930 auto res = isl_basic_set_list_clear(
copy());
9942 auto res = isl_basic_set_list_drop(
copy(), first,
n);
9952 auto *data =
static_cast<struct fn_data *
>(arg_1);
9953 auto ret = (data->func)(
manage(arg_0));
9954 return ret.release();
9956 auto res = isl_basic_set_list_foreach(
get(), fn_lambda, &fn_data);
9968 auto res = isl_basic_set_list_size(
get());
9974 char *
str = isl_basic_set_list_to_str(
obj.get());
9976 os.setstate(std::ios_base::badbit);
10006 std::swap(this->ptr,
obj.ptr);
10030 return ptr ==
nullptr;
10078 return fixed_box(ptr);
10094 std::swap(this->
ptr,
obj.ptr);
10118 return ptr ==
nullptr;
10168 os.setstate(std::ios_base::badbit);
10204 std::swap(this->
ptr,
obj.ptr);
10228 return ptr ==
nullptr;
10244 std::string tmp(
res);
10255 auto res = isl_id_to_list(
copy());
10270inline std::ostream &
operator<<(std::ostream &os,
const id &
obj)
10274 os.setstate(std::ios_base::badbit);
10287 ptr = isl_id_list_copy(ptr);
10305 auto res = isl_id_list_alloc(
ctx.release(),
n);
10311 auto res = isl_id_list_from_id(el.
release());
10317 auto res = isl_id_list_read_from_str(
ctx.release(),
str.c_str());
10322 std::swap(this->
ptr,
obj.ptr);
10328 isl_id_list_free(
ptr);
10332 return isl_id_list_copy(
ptr);
10340 isl_id_list *tmp =
ptr;
10346 return ptr ==
nullptr;
10350 return isl::ctx(isl_id_list_get_ctx(
ptr));
10361 return this->
add(isl::id(
ctx(), el));
10366 auto res = isl_id_list_get_at(
get(), index);
10377 auto res = isl_id_list_clear(
copy());
10387isl::id_list
id_list::drop(
unsigned int first,
unsigned int n)
const
10389 auto res = isl_id_list_drop(
copy(), first,
n);
10397 } fn_data = {
fn };
10399 auto *data =
static_cast<struct fn_data *
>(arg_1);
10400 auto ret = (data->func)(
manage(arg_0));
10401 return ret.release();
10403 auto res = isl_id_list_foreach(
get(), fn_lambda, &fn_data);
10420 auto res = isl_id_list_size(
get());
10426 char *
str = isl_id_list_to_str(
obj.get());
10428 os.setstate(std::ios_base::badbit);
10441 ptr = isl_id_to_ast_expr_copy(ptr);
10458 std::swap(this->
ptr,
obj.ptr);
10464 isl_id_to_ast_expr_free(
ptr);
10468 return isl_id_to_ast_expr_copy(
ptr);
10476 isl_id_to_ast_expr *tmp =
ptr;
10482 return ptr ==
nullptr;
10486 return isl::ctx(isl_id_to_ast_expr_get_ctx(
ptr));
10534 std::swap(this->ptr,
obj.ptr);
10558 return ptr ==
nullptr;
10599 std::swap(this->
ptr,
obj.ptr);
10623 return ptr ==
nullptr;
10688 return isl::union_map(*this).
as_map();
10693 return isl::union_map(*this).as_multi_union_pw_aff();
10704 return isl::union_map(*this).as_union_pw_multi_aff();
10815 return isl::union_map(*this).domain_map_union_pw_multi_aff();
10857isl::map
map::eq_at(isl::multi_pw_aff mpa)
const
10863isl::union_map
map::eq_at(
const isl::multi_union_pw_aff &
mupa)
const
10865 return isl::union_map(*this).
eq_at(
mupa);
10868isl::map
map::eq_at(
const isl::aff &mpa)
const
10870 return this->
eq_at(isl::multi_pw_aff(mpa));
10873isl::map
map::eq_at(
const isl::multi_aff &mpa)
const
10875 return this->
eq_at(isl::multi_pw_aff(mpa));
10878isl::map
map::eq_at(
const isl::pw_aff &mpa)
const
10880 return this->
eq_at(isl::multi_pw_aff(mpa));
10883isl::map
map::eq_at(
const isl::pw_multi_aff &mpa)
const
10885 return this->
eq_at(isl::multi_pw_aff(mpa));
10981 } fn_data = {
fn };
10983 auto *data =
static_cast<struct fn_data *
>(arg_1);
10984 auto ret = (data->func)(
manage(arg_0));
10985 return ret.release();
11083 return isl::union_map(*this).
gist_range(uset);
11280 return isl::union_map(*this).is_disjoint(umap2);
11302 return isl::union_map(*this).is_equal(umap2);
11330 return isl::union_map(*this).is_strict_subset(umap2);
11346 return isl::union_map(*this).is_subset(umap2);
11356 return isl::union_map(*this).isa_map();
11535isl::union_map
map::product(
const isl::union_map &umap2)
const
11537 return isl::union_map(*this).
product(umap2);
11704isl::union_map
map::subtract(
const isl::union_map &umap2)
const
11706 return isl::union_map(*this).
subtract(umap2);
11732 auto res = isl_map_to_list(
copy());
11765isl::union_map
map::unite(
const isl::union_map &umap2)
const
11767 return isl::union_map(*this).
unite(umap2);
11815 os.setstate(std::ios_base::badbit);
11828 ptr = isl_map_list_copy(ptr);
11846 auto res = isl_map_list_alloc(
ctx.release(),
n);
11852 auto res = isl_map_list_from_map(el.
release());
11858 auto res = isl_map_list_read_from_str(
ctx.release(),
str.c_str());
11863 std::swap(this->
ptr,
obj.ptr);
11869 isl_map_list_free(
ptr);
11873 return isl_map_list_copy(
ptr);
11881 isl_map_list *tmp =
ptr;
11887 return ptr ==
nullptr;
11891 return isl::ctx(isl_map_list_get_ctx(
ptr));
11902 auto res = isl_map_list_get_at(
get(), index);
11913 auto res = isl_map_list_clear(
copy());
11923isl::map_list
map_list::drop(
unsigned int first,
unsigned int n)
const
11925 auto res = isl_map_list_drop(
copy(), first,
n);
11933 } fn_data = {
fn };
11935 auto *data =
static_cast<struct fn_data *
>(arg_1);
11936 auto ret = (data->func)(
manage(arg_0));
11937 return ret.release();
11939 auto res = isl_map_list_foreach(
get(), fn_lambda, &fn_data);
11951 auto res = isl_map_list_size(
get());
11957 char *
str = isl_map_list_to_str(
obj.get());
11959 os.setstate(std::ios_base::badbit);
11972 ptr = isl_multi_aff_copy(ptr);
11996 auto res = isl_multi_aff_from_aff_list(
space.release(),
list.release());
12007 std::swap(this->
ptr,
obj.ptr);
12013 isl_multi_aff_free(
ptr);
12017 return isl_multi_aff_copy(
ptr);
12031 return ptr ==
nullptr;
12035 return isl::ctx(isl_multi_aff_get_ctx(
ptr));
12044isl::multi_pw_aff
multi_aff::add(
const isl::multi_pw_aff &multi2)
const
12046 return isl::pw_multi_aff(*this).
add(multi2);
12049isl::multi_union_pw_aff
multi_aff::add(
const isl::multi_union_pw_aff &multi2)
const
12051 return isl::pw_multi_aff(*this).
add(multi2);
12054isl::pw_multi_aff
multi_aff::add(
const isl::pw_multi_aff &pma2)
const
12056 return isl::pw_multi_aff(*this).
add(pma2);
12059isl::union_pw_multi_aff
multi_aff::add(
const isl::union_pw_multi_aff &upma2)
const
12061 return isl::pw_multi_aff(*this).
add(upma2);
12066 return this->
add(isl::multi_aff(multi2));
12071 auto res = isl_multi_aff_add_constant_multi_val(
copy(), mv.
release());
12109 return isl::pw_multi_aff(*this).as_multi_union_pw_aff();
12125 return isl::pw_multi_aff(*this).as_union_map();
12130 auto res = isl_multi_aff_get_at(
get(),
pos);
12147 auto res = isl_multi_aff_bind_domain(
copy(),
tuple.release());
12153 auto res = isl_multi_aff_bind_domain_wrapped_domain(
copy(),
tuple.release());
12159 return isl::pw_multi_aff(*this).
coalesce();
12202 auto res = isl_multi_aff_flat_range_product(
copy(), multi2.
release());
12265 auto res = isl_multi_aff_has_range_tuple_id(
get());
12271 auto res = isl_multi_aff_identity(
space.release());
12277 auto res = isl_multi_aff_identity_multi_aff(
copy());
12289 auto res = isl_multi_aff_insert_domain(
copy(),
domain.release());
12325 auto res = isl_multi_aff_involves_locals(
get());
12331 auto res = isl_multi_aff_involves_nan(
get());
12337 return isl::pw_multi_aff(*this).involves_param(
id);
12347 return isl::pw_multi_aff(*this).involves_param(
list);
12352 return isl::pw_multi_aff(*this).isa_multi_aff();
12357 return isl::pw_multi_aff(*this).isa_pw_multi_aff();
12362 auto res = isl_multi_aff_get_list(
get());
12371isl::multi_pw_aff
multi_aff::max(
const isl::multi_pw_aff &multi2)
const
12373 return isl::pw_multi_aff(*this).
max(multi2);
12378 return isl::pw_multi_aff(*this).max_multi_val();
12381isl::multi_pw_aff
multi_aff::min(
const isl::multi_pw_aff &multi2)
const
12383 return isl::pw_multi_aff(*this).
min(multi2);
12388 return isl::pw_multi_aff(*this).min_multi_val();
12399 return isl::pw_multi_aff(*this).n_piece();
12404 auto res = isl_multi_aff_neg(
copy());
12410 return isl::pw_multi_aff(*this).plain_is_empty();
12415 auto res = isl_multi_aff_plain_is_equal(
get(), multi2.
get());
12421 return isl::pw_multi_aff(*this).plain_is_equal(multi2);
12426 return isl::pw_multi_aff(*this).plain_is_equal(multi2);
12452 return isl::pw_multi_aff(*this).
product(multi2);
12457 return isl::pw_multi_aff(*this).
product(pma2);
12462 return this->
product(isl::multi_aff(multi2));
12473 return isl::pw_multi_aff(*this).
pullback(mpa2);
12478 return isl::pw_multi_aff(*this).
pullback(pma2);
12483 return isl::pw_multi_aff(*this).
pullback(upma2);
12488 return this->
pullback(isl::multi_aff(ma2));
12514 auto res = isl_multi_aff_range_product(
copy(), multi2.
release());
12545 auto res = isl_multi_aff_get_range_tuple_id(
get());
12556 auto res = isl_multi_aff_reset_range_tuple_id(
copy());
12580 return this->
scale(isl::val(
ctx(), v));
12585 auto res = isl_multi_aff_scale_down_multi_val(
copy(), mv.
release());
12619 return isl::pw_multi_aff(*this).
set_at(
pos, el);
12634 auto res = isl_multi_aff_set_range_tuple_id(
copy(),
id.
release());
12650 auto res = isl_multi_aff_size(
get());
12656 auto res = isl_multi_aff_get_space(
get());
12671isl::multi_pw_aff
multi_aff::sub(
const isl::multi_pw_aff &multi2)
const
12673 return isl::pw_multi_aff(*this).
sub(multi2);
12676isl::multi_union_pw_aff
multi_aff::sub(
const isl::multi_union_pw_aff &multi2)
const
12678 return isl::pw_multi_aff(*this).
sub(multi2);
12681isl::pw_multi_aff
multi_aff::sub(
const isl::pw_multi_aff &pma2)
const
12683 return isl::pw_multi_aff(*this).
sub(pma2);
12686isl::union_pw_multi_aff
multi_aff::sub(
const isl::union_pw_multi_aff &upma2)
const
12688 return isl::pw_multi_aff(*this).
sub(upma2);
12693 return this->
sub(isl::multi_aff(multi2));
12713 return isl::pw_multi_aff(*this).to_list();
12736 return isl::pw_multi_aff(*this).to_union_pw_multi_aff();
12746 auto res = isl_multi_aff_unbind_params_insert_domain(
copy(),
domain.release());
12757 return isl::pw_multi_aff(*this).
union_add(mupa2);
12762 return isl::pw_multi_aff(*this).
union_add(pma2);
12767 return isl::pw_multi_aff(*this).
union_add(upma2);
12772 auto res = isl_multi_aff_zero(
space.release());
12780 os.setstate(std::ios_base::badbit);
12793 ptr = isl_multi_id_copy(ptr);
12811 auto res = isl_multi_id_from_id_list(
space.release(),
list.release());
12822 std::swap(this->
ptr,
obj.ptr);
12828 isl_multi_id_free(
ptr);
12832 return isl_multi_id_copy(
ptr);
12846 return ptr ==
nullptr;
12850 return isl::ctx(isl_multi_id_get_ctx(
ptr));
12855 auto res = isl_multi_id_get_at(
get(),
pos);
12866 auto res = isl_multi_id_flat_range_product(
copy(), multi2.
release());
12872 auto res = isl_multi_id_get_list(
get());
12883 auto res = isl_multi_id_plain_is_equal(
get(), multi2.
get());
12889 auto res = isl_multi_id_range_product(
copy(), multi2.
release());
12917 auto res = isl_multi_id_size(
get());
12923 auto res = isl_multi_id_get_space(
get());
12936 os.setstate(std::ios_base::badbit);
12949 ptr = isl_multi_pw_aff_copy(ptr);
12985 auto res = isl_multi_pw_aff_from_pw_aff_list(
space.release(),
list.release());
13002 std::swap(this->
ptr,
obj.ptr);
13008 isl_multi_pw_aff_free(
ptr);
13012 return isl_multi_pw_aff_copy(
ptr);
13026 return ptr ==
nullptr;
13030 return isl::ctx(isl_multi_pw_aff_get_ctx(
ptr));
13039isl::multi_union_pw_aff
multi_pw_aff::add(
const isl::multi_union_pw_aff &multi2)
const
13041 return isl::multi_union_pw_aff(*this).
add(multi2);
13046 return this->
add(isl::multi_pw_aff(multi2));
13051 return this->
add(isl::multi_pw_aff(multi2));
13056 return this->
add(isl::multi_pw_aff(multi2));
13061 return this->
add(isl::multi_pw_aff(multi2));
13066 auto res = isl_multi_pw_aff_add_constant_multi_val(
copy(), mv.
release());
13072 auto res = isl_multi_pw_aff_add_constant_val(
copy(), v.
release());
13101 auto res = isl_multi_pw_aff_get_at(
get(),
pos);
13118 auto res = isl_multi_pw_aff_bind_domain(
copy(),
tuple.release());
13124 auto res = isl_multi_pw_aff_bind_domain_wrapped_domain(
copy(),
tuple.release());
13148 auto res = isl_multi_pw_aff_flat_range_product(
copy(), multi2.
release());
13185 return isl::multi_union_pw_aff(*this).
gist(
context);
13200 auto res = isl_multi_pw_aff_has_range_tuple_id(
get());
13206 auto res = isl_multi_pw_aff_identity(
space.release());
13212 auto res = isl_multi_pw_aff_identity_multi_pw_aff(
copy());
13218 auto res = isl_multi_pw_aff_identity_on_domain_space(
space.
release());
13224 auto res = isl_multi_pw_aff_insert_domain(
copy(),
domain.release());
13257 auto res = isl_multi_pw_aff_involves_nan(
get());
13263 auto res = isl_multi_pw_aff_involves_param_id(
get(),
id.
get());
13274 auto res = isl_multi_pw_aff_involves_param_id_list(
get(),
list.get());
13286 auto res = isl_multi_pw_aff_get_list(
get());
13321 auto res = isl_multi_pw_aff_neg(
copy());
13327 auto res = isl_multi_pw_aff_plain_is_equal(
get(), multi2.
get());
13333 return isl::multi_union_pw_aff(*this).plain_is_equal(multi2);
13382 return isl::multi_union_pw_aff(*this).
pullback(upma);
13387 auto res = isl_multi_pw_aff_range_product(
copy(), multi2.
release());
13393 return isl::multi_union_pw_aff(*this).
range_product(multi2);
13418 auto res = isl_multi_pw_aff_get_range_tuple_id(
get());
13429 auto res = isl_multi_pw_aff_reset_range_tuple_id(
copy());
13441 auto res = isl_multi_pw_aff_scale_multi_val(
copy(), mv.
release());
13453 return this->
scale(isl::val(
ctx(), v));
13458 auto res = isl_multi_pw_aff_scale_down_multi_val(
copy(), mv.
release());
13464 auto res = isl_multi_pw_aff_scale_down_val(
copy(), v.
release());
13481 return isl::multi_union_pw_aff(*this).
set_at(
pos, el);
13492 auto res = isl_multi_pw_aff_set_range_tuple_id(
copy(),
id.
release());
13508 auto res = isl_multi_pw_aff_size(
get());
13514 auto res = isl_multi_pw_aff_get_space(
get());
13529isl::multi_union_pw_aff
multi_pw_aff::sub(
const isl::multi_union_pw_aff &multi2)
const
13531 return isl::multi_union_pw_aff(*this).
sub(multi2);
13536 return this->
sub(isl::multi_pw_aff(multi2));
13541 return this->
sub(isl::multi_pw_aff(multi2));
13546 return this->
sub(isl::multi_pw_aff(multi2));
13551 return this->
sub(isl::multi_pw_aff(multi2));
13556 auto res = isl_multi_pw_aff_unbind_params_insert_domain(
copy(),
domain.release());
13568 return isl::multi_union_pw_aff(*this).
union_add(mupa2);
13573 return this->
union_add(isl::multi_pw_aff(mpa2));
13578 return this->
union_add(isl::multi_pw_aff(mpa2));
13583 return this->
union_add(isl::multi_pw_aff(mpa2));
13588 return this->
union_add(isl::multi_pw_aff(mpa2));
13593 auto res = isl_multi_pw_aff_zero(
space.release());
13601 os.setstate(std::ios_base::badbit);
13614 ptr = isl_multi_union_pw_aff_copy(ptr);
13644 auto res = isl_multi_union_pw_aff_from_union_pw_aff_list(
space.release(),
list.release());
13661 std::swap(this->ptr,
obj.ptr);
13667 isl_multi_union_pw_aff_free(
ptr);
13671 return isl_multi_union_pw_aff_copy(
ptr);
13685 return ptr ==
nullptr;
13689 return isl::ctx(isl_multi_union_pw_aff_get_ctx(
ptr));
13694 auto res = isl_multi_union_pw_aff_add(
copy(), multi2.
release());
13700 auto res = isl_multi_union_pw_aff_get_at(
get(),
pos);
13735 auto res = isl_multi_union_pw_aff_flat_range_product(
copy(), multi2.
release());
13753 auto res = isl_multi_union_pw_aff_has_range_tuple_id(
get());
13771 auto res = isl_multi_union_pw_aff_involves_nan(
get());
13777 auto res = isl_multi_union_pw_aff_get_list(
get());
13788 auto res = isl_multi_union_pw_aff_neg(
copy());
13794 auto res = isl_multi_union_pw_aff_plain_is_equal(
get(), multi2.
get());
13806 auto res = isl_multi_union_pw_aff_range_product(
copy(), multi2.
release());
13812 auto res = isl_multi_union_pw_aff_get_range_tuple_id(
get());
13823 auto res = isl_multi_union_pw_aff_reset_range_tuple_id(
copy());
13835 auto res = isl_multi_union_pw_aff_scale_multi_val(
copy(), mv.
release());
13841 auto res = isl_multi_union_pw_aff_scale_val(
copy(), v.
release());
13847 return this->
scale(isl::val(
ctx(), v));
13852 auto res = isl_multi_union_pw_aff_scale_down_multi_val(
copy(), mv.
release());
13858 auto res = isl_multi_union_pw_aff_scale_down_val(
copy(), v.
release());
13875 auto res = isl_multi_union_pw_aff_set_range_tuple_id(
copy(),
id.
release());
13892 auto res = isl_multi_union_pw_aff_size(
get());
13898 auto res = isl_multi_union_pw_aff_get_space(
get());
13909 auto res = isl_multi_union_pw_aff_sub(
copy(), multi2.
release());
13929 os.setstate(std::ios_base::badbit);
13942 ptr = isl_multi_val_copy(ptr);
13960 auto res = isl_multi_val_from_val_list(
space.release(),
list.release());
13971 std::swap(this->
ptr,
obj.ptr);
13977 isl_multi_val_free(
ptr);
13981 return isl_multi_val_copy(
ptr);
13995 return ptr ==
nullptr;
13999 return isl::ctx(isl_multi_val_get_ctx(
ptr));
14016 return this->
add(isl::val(
ctx(), v));
14021 auto res = isl_multi_val_get_at(
get(),
pos);
14038 auto res = isl_multi_val_flat_range_product(
copy(), multi2.
release());
14044 auto res = isl_multi_val_has_range_tuple_id(
get());
14050 auto res = isl_multi_val_involves_nan(
get());
14056 auto res = isl_multi_val_get_list(
get());
14079 auto res = isl_multi_val_neg(
copy());
14085 auto res = isl_multi_val_plain_is_equal(
get(), multi2.
get());
14097 auto res = isl_multi_val_range_product(
copy(), multi2.
release());
14103 auto res = isl_multi_val_get_range_tuple_id(
get());
14114 auto res = isl_multi_val_reset_range_tuple_id(
copy());
14138 return this->
scale(isl::val(
ctx(), v));
14143 auto res = isl_multi_val_scale_down_multi_val(
copy(), mv.
release());
14171 auto res = isl_multi_val_set_range_tuple_id(
copy(),
id.
release());
14193 auto res = isl_multi_val_size(
get());
14199 auto res = isl_multi_val_get_space(
get());
14216 auto res = isl_multi_val_zero(
space.release());
14224 os.setstate(std::ios_base::badbit);
14260 std::swap(this->ptr,
obj.ptr);
14284 return ptr ==
nullptr;
14321isl::union_set
point::apply(
const isl::union_map &umap)
const
14323 return isl::basic_set(*this).
apply(umap);
14333 return isl::basic_set(*this).
as_set();
14559 return isl::basic_set(*this).
intersect(uset2);
14599 return isl::basic_set(*this).is_empty();
14604 return isl::basic_set(*this).is_equal(bset2);
14609 return isl::basic_set(*this).is_equal(
set2);
14614 return isl::basic_set(*this).is_equal(uset2);
14634 return isl::basic_set(*this).is_strict_subset(uset2);
14639 return isl::basic_set(*this).is_subset(bset2);
14644 return isl::basic_set(*this).is_subset(
set2);
14649 return isl::basic_set(*this).is_subset(uset2);
14654 return isl::basic_set(*this).is_wrapping();
14659 return isl::basic_set(*this).isa_set();
14664 return isl::basic_set(*this).
lexmax();
14669 return isl::basic_set(*this).lexmax_pw_multi_aff();
14674 return isl::basic_set(*this).
lexmin();
14679 return isl::basic_set(*this).lexmin_pw_multi_aff();
14719 return isl::basic_set(*this).min_multi_pw_aff();
14724 return isl::basic_set(*this).min_val(
obj);
14740 return isl::basic_set(*this).n_basic_set();
14745 return isl::basic_set(*this).
params();
14770 return isl::basic_set(*this).
preimage(mpa);
14778isl::union_set
point::preimage(
const isl::union_pw_multi_aff &upma)
const
14780 return isl::basic_set(*this).
preimage(upma);
14815 return isl::basic_set(*this).pw_multi_aff_on_domain(mv);
14900 return isl::basic_set(*this).
subtract(uset2);
14905 return isl::basic_set(*this).to_list();
14916 return isl::basic_set(*this).to_union_set();
14921 return isl::basic_set(*this).translation();
14926 return isl::basic_set(*this).tuple_dim();
14951 return isl::basic_set(*this).
unite(bset2);
14956 return isl::basic_set(*this).
unite(
set2);
14959isl::union_set
point::unite(
const isl::union_set &uset2)
const
14961 return isl::basic_set(*this).
unite(uset2);
14971 return isl::basic_set(*this).unwrap();
14998 os.setstate(std::ios_base::badbit);
15052 std::swap(this->ptr,
obj.ptr);
15076 return ptr ==
nullptr;
15083isl::multi_pw_aff
pw_aff::add(
const isl::multi_pw_aff &multi2)
const
15085 return isl::pw_multi_aff(*this).
add(multi2);
15088isl::multi_union_pw_aff
pw_aff::add(
const isl::multi_union_pw_aff &multi2)
const
15090 return isl::union_pw_aff(*this).
add(multi2);
15099isl::pw_multi_aff
pw_aff::add(
const isl::pw_multi_aff &pma2)
const
15101 return isl::pw_multi_aff(*this).
add(pma2);
15104isl::union_pw_aff
pw_aff::add(
const isl::union_pw_aff &upa2)
const
15106 return isl::union_pw_aff(*this).
add(upa2);
15109isl::union_pw_multi_aff
pw_aff::add(
const isl::union_pw_multi_aff &upma2)
const
15111 return isl::union_pw_aff(*this).
add(upma2);
15114isl::pw_aff
pw_aff::add(
const isl::aff &pwaff2)
const
15116 return this->
add(isl::pw_aff(pwaff2));
15170 return isl::union_pw_aff(*this).as_multi_union_pw_aff();
15180 return isl::pw_multi_aff(*this).
as_set();
15185 return isl::union_pw_aff(*this).as_union_map();
15190 return isl::pw_multi_aff(*this).
at(
pos);
15195 return isl::multi_pw_aff(*this).
bind(
tuple);
15206 return this->
bind(isl::id(
ctx(),
id));
15233isl::pw_aff
pw_aff::cond(isl::pw_aff pwaff_true, isl::pw_aff pwaff_false)
const
15330 } fn_data = {
fn };
15332 auto *data =
static_cast<struct fn_data *
>(arg_2);
15333 auto ret = (data->func)(
manage(arg_0),
manage(arg_1));
15334 return ret.release();
15385 return isl::pw_multi_aff(*this).has_range_tuple_id();
15390 return isl::pw_multi_aff(*this).
identity();
15443 return isl::pw_multi_aff(*this).involves_locals();
15448 return isl::multi_pw_aff(*this).involves_nan();
15453 return isl::pw_multi_aff(*this).involves_param(
id);
15463 return isl::pw_multi_aff(*this).involves_param(
list);
15491 return isl::union_pw_aff(*this).isa_pw_multi_aff();
15502 return isl::multi_pw_aff(*this).list();
15511isl::multi_pw_aff
pw_aff::max(
const isl::multi_pw_aff &multi2)
const
15513 return isl::pw_multi_aff(*this).
max(multi2);
15522isl::pw_aff
pw_aff::max(
const isl::aff &pwaff2)
const
15524 return this->
max(isl::pw_aff(pwaff2));
15529 return isl::pw_multi_aff(*this).max_multi_val();
15532isl::multi_pw_aff
pw_aff::min(
const isl::multi_pw_aff &multi2)
const
15534 return isl::pw_multi_aff(*this).
min(multi2);
15543isl::pw_aff
pw_aff::min(
const isl::aff &pwaff2)
const
15545 return this->
min(isl::pw_aff(pwaff2));
15550 return isl::pw_multi_aff(*this).min_multi_val();
15561 return this->
mod(isl::val(
ctx(),
mod));
15572 return isl::pw_multi_aff(*this).n_piece();
15595 return isl::union_pw_aff(*this).plain_is_empty();
15600 return isl::pw_multi_aff(*this).plain_is_equal(multi2);
15605 return isl::union_pw_aff(*this).plain_is_equal(multi2);
15618isl::multi_pw_aff
pw_aff::product(
const isl::multi_pw_aff &multi2)
const
15620 return isl::pw_multi_aff(*this).
product(multi2);
15623isl::pw_multi_aff
pw_aff::product(
const isl::pw_multi_aff &pma2)
const
15625 return isl::pw_multi_aff(*this).
product(pma2);
15646isl::union_pw_aff
pw_aff::pullback(
const isl::union_pw_multi_aff &upma)
const
15648 return isl::union_pw_aff(*this).
pullback(upma);
15688 return isl::pw_multi_aff(*this).range_tuple_id();
15714 return this->
scale(isl::val(
ctx(), v));
15719 return isl::multi_pw_aff(*this).
scale_down(mv);
15735 return isl::pw_multi_aff(*this).
set_at(
pos, el);
15738isl::multi_union_pw_aff
pw_aff::set_at(
int pos,
const isl::union_pw_aff &el)
const
15740 return isl::union_pw_aff(*this).
set_at(
pos, el);
15795isl::multi_pw_aff
pw_aff::sub(
const isl::multi_pw_aff &multi2)
const
15797 return isl::pw_multi_aff(*this).
sub(multi2);
15800isl::multi_union_pw_aff
pw_aff::sub(
const isl::multi_union_pw_aff &multi2)
const
15802 return isl::union_pw_aff(*this).
sub(multi2);
15811isl::pw_multi_aff
pw_aff::sub(
const isl::pw_multi_aff &pma2)
const
15813 return isl::pw_multi_aff(*this).
sub(pma2);
15816isl::union_pw_aff
pw_aff::sub(
const isl::union_pw_aff &upa2)
const
15818 return isl::union_pw_aff(*this).
sub(upa2);
15821isl::union_pw_multi_aff
pw_aff::sub(
const isl::union_pw_multi_aff &upma2)
const
15823 return isl::union_pw_aff(*this).
sub(upma2);
15826isl::pw_aff
pw_aff::sub(
const isl::aff &pwaff2)
const
15828 return this->
sub(isl::pw_aff(pwaff2));
15871 auto res = isl_pw_aff_to_list(
copy());
15877 return isl::pw_multi_aff(*this).to_multi_pw_aff();
15888 return isl::pw_multi_aff(*this).to_union_pw_multi_aff();
15912isl::multi_union_pw_aff
pw_aff::union_add(
const isl::multi_union_pw_aff &mupa2)
const
15914 return isl::union_pw_aff(*this).
union_add(mupa2);
15925 return isl::pw_multi_aff(*this).
union_add(pma2);
15930 return isl::union_pw_aff(*this).
union_add(upa2);
15933isl::union_pw_multi_aff
pw_aff::union_add(
const isl::union_pw_multi_aff &upma2)
const
15935 return isl::union_pw_aff(*this).
union_add(upma2);
15940 return this->
union_add(isl::pw_aff(pwaff2));
15953 os.setstate(std::ios_base::badbit);
15966 ptr = isl_pw_aff_list_copy(ptr);
15984 auto res = isl_pw_aff_list_alloc(
ctx.release(),
n);
15990 auto res = isl_pw_aff_list_from_pw_aff(el.
release());
15996 auto res = isl_pw_aff_list_read_from_str(
ctx.release(),
str.c_str());
16001 std::swap(this->
ptr,
obj.ptr);
16007 isl_pw_aff_list_free(
ptr);
16011 return isl_pw_aff_list_copy(
ptr);
16019 isl_pw_aff_list *tmp =
ptr;
16025 return ptr ==
nullptr;
16029 return isl::ctx(isl_pw_aff_list_get_ctx(
ptr));
16040 auto res = isl_pw_aff_list_get_at(
get(), index);
16051 auto res = isl_pw_aff_list_clear(
copy());
16063 auto res = isl_pw_aff_list_drop(
copy(), first,
n);
16071 } fn_data = {
fn };
16073 auto *data =
static_cast<struct fn_data *
>(arg_1);
16074 auto ret = (data->func)(
manage(arg_0));
16075 return ret.release();
16077 auto res = isl_pw_aff_list_foreach(
get(), fn_lambda, &fn_data);
16089 auto res = isl_pw_aff_list_size(
get());
16095 char *
str = isl_pw_aff_list_to_str(
obj.get());
16097 os.setstate(std::ios_base::badbit);
16145 std::swap(this->
ptr,
obj.ptr);
16169 return ptr ==
nullptr;
16178 return isl::multi_pw_aff(*this).
add(multi2);
16181isl::multi_union_pw_aff
pw_multi_aff::add(
const isl::multi_union_pw_aff &multi2)
const
16183 return isl::multi_pw_aff(*this).
add(multi2);
16192isl::union_pw_multi_aff
pw_multi_aff::add(
const isl::union_pw_multi_aff &upma2)
const
16194 return isl::union_pw_multi_aff(*this).
add(upma2);
16199 return this->
add(isl::pw_multi_aff(pma2));
16204 return this->
add(isl::pw_multi_aff(pma2));
16248 return isl::union_pw_multi_aff(*this).as_multi_union_pw_aff();
16264 return isl::union_pw_multi_aff(*this).as_union_map();
16280 return isl::multi_pw_aff(*this).
bind(
tuple);
16365 } fn_data = {
fn };
16367 auto *data =
static_cast<struct fn_data *
>(arg_2);
16368 auto ret = (data->func)(
manage(arg_0),
manage(arg_1));
16369 return ret.release();
16410 return isl::multi_pw_aff(*this).
identity();
16475 return isl::multi_pw_aff(*this).involves_nan();
16480 return isl::multi_pw_aff(*this).involves_param(
id);
16490 return isl::multi_pw_aff(*this).involves_param(
list);
16501 return isl::union_pw_multi_aff(*this).isa_pw_multi_aff();
16506 return isl::multi_pw_aff(*this).list();
16511 return isl::multi_pw_aff(*this).
max(multi2);
16522 return isl::multi_pw_aff(*this).
min(multi2);
16545 return isl::multi_pw_aff(*this).
neg();
16550 return isl::union_pw_multi_aff(*this).plain_is_empty();
16555 return isl::multi_pw_aff(*this).plain_is_equal(multi2);
16560 return isl::multi_pw_aff(*this).plain_is_equal(multi2);
16586 return isl::multi_pw_aff(*this).
product(multi2);
16597 return this->
product(isl::pw_multi_aff(pma2));
16602 return this->
product(isl::pw_multi_aff(pma2));
16630 return isl::union_pw_multi_aff(*this).
pullback(upma2);
16674 return isl::union_pw_multi_aff(*this).
range_product(upma2);
16742 return isl::multi_pw_aff(*this).
set_at(
pos, el);
16747 return isl::multi_pw_aff(*this).
set_at(
pos, el);
16795 return isl::multi_pw_aff(*this).
sub(multi2);
16798isl::multi_union_pw_aff
pw_multi_aff::sub(
const isl::multi_union_pw_aff &multi2)
const
16800 return isl::multi_pw_aff(*this).
sub(multi2);
16809isl::union_pw_multi_aff
pw_multi_aff::sub(
const isl::union_pw_multi_aff &upma2)
const
16811 return isl::union_pw_multi_aff(*this).
sub(upma2);
16816 return this->
sub(isl::pw_multi_aff(pma2));
16821 return this->
sub(isl::pw_multi_aff(pma2));
16852 auto res = isl_pw_multi_aff_to_list(
copy());
16891 return isl::multi_pw_aff(*this).
union_add(mupa2);
16902 return isl::union_pw_multi_aff(*this).
union_add(upma2);
16907 return this->
union_add(isl::pw_multi_aff(pma2));
16912 return this->
union_add(isl::pw_multi_aff(pma2));
16925 os.setstate(std::ios_base::badbit);
16938 ptr = isl_pw_multi_aff_list_copy(ptr);
16956 auto res = isl_pw_multi_aff_list_alloc(
ctx.release(),
n);
16962 auto res = isl_pw_multi_aff_list_from_pw_multi_aff(el.
release());
16968 auto res = isl_pw_multi_aff_list_read_from_str(
ctx.release(),
str.c_str());
16973 std::swap(this->
ptr,
obj.ptr);
16979 isl_pw_multi_aff_list_free(
ptr);
16983 return isl_pw_multi_aff_list_copy(
ptr);
16991 isl_pw_multi_aff_list *tmp =
ptr;
16997 return ptr ==
nullptr;
17001 return isl::ctx(isl_pw_multi_aff_list_get_ctx(
ptr));
17012 auto res = isl_pw_multi_aff_list_get_at(
get(), index);
17023 auto res = isl_pw_multi_aff_list_clear(
copy());
17029 auto res = isl_pw_multi_aff_list_concat(
copy(), list2.
release());
17035 auto res = isl_pw_multi_aff_list_drop(
copy(), first,
n);
17043 } fn_data = {
fn };
17045 auto *data =
static_cast<struct fn_data *
>(arg_1);
17046 auto ret = (data->func)(
manage(arg_0));
17047 return ret.release();
17049 auto res = isl_pw_multi_aff_list_foreach(
get(), fn_lambda, &fn_data);
17061 auto res = isl_pw_multi_aff_list_size(
get());
17067 char *
str = isl_pw_multi_aff_list_to_str(
obj.get());
17069 os.setstate(std::ios_base::badbit);
17105 std::swap(this->
ptr,
obj.ptr);
17129 return ptr ==
nullptr;
17215 os.setstate(std::ios_base::badbit);
17251 std::swap(this->
ptr,
obj.ptr);
17275 return ptr ==
nullptr;
17405 os.setstate(std::ios_base::badbit);
17435 std::swap(this->
ptr,
obj.ptr);
17459 return ptr ==
nullptr;
17462template <
typename T,
typename>
17477 if (
isa<T>().is_false())
17535 } test_data = {
test };
17537 auto *data =
static_cast<struct test_data *
>(arg_1);
17539 return ret.release();
17555 } fn_data = {
fn };
17557 auto *data =
static_cast<struct fn_data *
>(arg_1);
17559 return ret.release();
17569 } fn_data = {
fn };
17571 auto *data =
static_cast<struct fn_data *
>(arg_1);
17573 return ret.release();
17689 std::function<isl::schedule_node(isl::schedule_node)> func;
17690 } fn_data = {
fn };
17692 auto *data =
static_cast<struct fn_data *
>(arg_1);
17693 auto ret = (data->func)(
manage(arg_0));
17694 return ret.release();
17827 return tree_depth();
17845 os.setstate(std::ios_base::badbit);
17866 std::swap(this->
ptr,
obj.ptr);
18012 os.setstate(std::ios_base::badbit);
18033 std::swap(this->
ptr,
obj.ptr);
18056 os.setstate(std::ios_base::badbit);
18077 std::swap(this->
ptr,
obj.ptr);
18100 os.setstate(std::ios_base::badbit);
18121 std::swap(this->
ptr,
obj.ptr);
18155 os.setstate(std::ios_base::badbit);
18176 std::swap(this->
ptr,
obj.ptr);
18199 os.setstate(std::ios_base::badbit);
18220 std::swap(this->
ptr,
obj.ptr);
18243 os.setstate(std::ios_base::badbit);
18264 std::swap(this->
ptr,
obj.ptr);