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;
3416 isl_pw_multi_aff_list *
ptr =
nullptr;
3560 template <typename T,
3561 typename = typename std::enable_if<std::is_same<
3563 const T>::value>::
type>
3566 template <class T> inline
boolean isa() const;
3567 template <class T> inline T
as() const;
4115 inline explicit space(
isl::ctx ctx,
unsigned int nparam,
unsigned int n_in,
unsigned int n_out);
4157 inline
boolean is_set() const;
4508 isl_union_pw_aff_list *
ptr =
nullptr;
4755 inline
boolean eq(
long v2) const;
4760 inline
boolean ge(
long v2) const;
4762 inline
boolean gt(
long v2) const;
4781 inline
boolean le(
long v2) const;
4783 inline
boolean lt(
long v2) const;
4794 inline
boolean ne(
long v2) const;
4819 isl_val_list *
ptr =
nullptr;
4891 std::swap(this->ptr,
obj.ptr);
4915 return ptr ==
nullptr;
4922isl::aff
aff::add(isl::aff aff2)
const
4928isl::multi_aff
aff::add(
const isl::multi_aff &multi2)
const
4930 return isl::multi_aff(*this).
add(multi2);
4933isl::multi_pw_aff
aff::add(
const isl::multi_pw_aff &multi2)
const
4935 return isl::pw_aff(*this).
add(multi2);
4938isl::multi_union_pw_aff
aff::add(
const isl::multi_union_pw_aff &multi2)
const
4940 return isl::pw_aff(*this).
add(multi2);
4943isl::pw_aff
aff::add(
const isl::pw_aff &pwaff2)
const
4945 return isl::pw_aff(*this).
add(pwaff2);
4948isl::pw_multi_aff
aff::add(
const isl::pw_multi_aff &pma2)
const
4950 return isl::pw_aff(*this).
add(pma2);
4953isl::union_pw_aff
aff::add(
const isl::union_pw_aff &upa2)
const
4955 return isl::pw_aff(*this).
add(upa2);
4958isl::union_pw_multi_aff
aff::add(
const isl::union_pw_multi_aff &upma2)
const
4960 return isl::pw_aff(*this).
add(upma2);
5007 return isl::pw_aff(*this).
as_map();
5017 return isl::pw_aff(*this).as_multi_union_pw_aff();
5027 return isl::multi_aff(*this).
as_set();
5032 return isl::pw_aff(*this).as_union_map();
5037 return isl::multi_aff(*this).
at(
pos);
5040isl::basic_set
aff::bind(isl::id
id)
const
5046isl::basic_set
aff::bind(
const std::string &
id)
const
5048 return this->
bind(isl::id(
ctx(),
id));
5053 return isl::multi_aff(*this).
bind(
tuple);
5074 return isl::pw_aff(*this).
coalesce();
5077isl::pw_aff
aff::cond(
const isl::pw_aff &pwaff_true,
const isl::pw_aff &pwaff_false)
const
5079 return isl::pw_aff(*this).
cond(pwaff_true, pwaff_false);
5084 return isl::multi_aff(*this).constant_multi_val();
5132 return isl::pw_aff(*this).domain();
5253 return isl::pw_aff(*this).gt_set(pwaff2);
5258 return isl::multi_aff(*this).has_range_tuple_id();
5263 return isl::multi_aff(*this).
identity();
5303 return isl::multi_aff(*this).involves_locals();
5308 return isl::multi_aff(*this).involves_nan();
5313 return isl::pw_aff(*this).involves_param(
id);
5323 return isl::pw_aff(*this).involves_param(
list);
5349 return isl::pw_aff(*this).isa_pw_multi_aff();
5360 return isl::pw_aff(*this).le_set(pwaff2);
5365 return isl::multi_aff(*this).list();
5376 return isl::pw_aff(*this).lt_set(pwaff2);
5379isl::multi_pw_aff
aff::max(
const isl::multi_pw_aff &multi2)
const
5381 return isl::pw_aff(*this).
max(multi2);
5384isl::pw_aff
aff::max(
const isl::pw_aff &pwaff2)
const
5386 return isl::pw_aff(*this).
max(pwaff2);
5391 return isl::pw_aff(*this).max_multi_val();
5394isl::multi_pw_aff
aff::min(
const isl::multi_pw_aff &multi2)
const
5396 return isl::pw_aff(*this).
min(multi2);
5399isl::pw_aff
aff::min(
const isl::pw_aff &pwaff2)
const
5401 return isl::pw_aff(*this).
min(pwaff2);
5406 return isl::pw_aff(*this).min_multi_val();
5409isl::aff
aff::mod(isl::val mod)
const
5420isl::aff
aff::mul(isl::aff aff2)
const
5426isl::pw_aff
aff::mul(
const isl::pw_aff &pwaff2)
const
5428 return isl::pw_aff(*this).
mul(pwaff2);
5433 return isl::pw_aff(*this).n_piece();
5444 return isl::pw_aff(*this).ne_set(pwaff2);
5455 return isl::pw_aff(*this).plain_is_empty();
5460 return isl::multi_aff(*this).plain_is_equal(multi2);
5465 return isl::pw_aff(*this).plain_is_equal(multi2);
5470 return isl::pw_aff(*this).plain_is_equal(multi2);
5483isl::multi_aff
aff::product(
const isl::multi_aff &multi2)
const
5485 return isl::multi_aff(*this).
product(multi2);
5488isl::multi_pw_aff
aff::product(
const isl::multi_pw_aff &multi2)
const
5490 return isl::pw_aff(*this).
product(multi2);
5493isl::pw_multi_aff
aff::product(
const isl::pw_multi_aff &pma2)
const
5495 return isl::pw_aff(*this).
product(pma2);
5504isl::pw_aff
aff::pullback(
const isl::multi_pw_aff &mpa)
const
5506 return isl::pw_aff(*this).
pullback(mpa);
5514isl::union_pw_aff
aff::pullback(
const isl::union_pw_multi_aff &upma)
const
5516 return isl::pw_aff(*this).
pullback(upma);
5549isl::multi_union_pw_aff
aff::range_product(
const isl::multi_union_pw_aff &multi2)
const
5559isl::union_pw_multi_aff
aff::range_product(
const isl::union_pw_multi_aff &upma2)
const
5566 return isl::multi_aff(*this).range_tuple_id();
5590isl::multi_aff
aff::scale(
const isl::multi_val &mv)
const
5592 return isl::multi_aff(*this).
scale(mv);
5626isl::multi_union_pw_aff
aff::set_at(
int pos,
const isl::union_pw_aff &el)
const
5628 return isl::pw_aff(*this).
set_at(
pos, el);
5682isl::aff
aff::sub(isl::aff aff2)
const
5688isl::multi_aff
aff::sub(
const isl::multi_aff &multi2)
const
5690 return isl::multi_aff(*this).
sub(multi2);
5693isl::multi_pw_aff
aff::sub(
const isl::multi_pw_aff &multi2)
const
5695 return isl::pw_aff(*this).
sub(multi2);
5698isl::multi_union_pw_aff
aff::sub(
const isl::multi_union_pw_aff &multi2)
const
5700 return isl::pw_aff(*this).
sub(multi2);
5703isl::pw_aff
aff::sub(
const isl::pw_aff &pwaff2)
const
5705 return isl::pw_aff(*this).
sub(pwaff2);
5708isl::pw_multi_aff
aff::sub(
const isl::pw_multi_aff &pma2)
const
5710 return isl::pw_aff(*this).
sub(pma2);
5713isl::union_pw_aff
aff::sub(
const isl::union_pw_aff &upa2)
const
5715 return isl::pw_aff(*this).
sub(upa2);
5718isl::union_pw_multi_aff
aff::sub(
const isl::union_pw_multi_aff &upma2)
const
5720 return isl::pw_aff(*this).
sub(upma2);
5738isl::pw_aff
aff::tdiv_q(
const isl::pw_aff &pa2)
const
5740 return isl::pw_aff(*this).
tdiv_q(pa2);
5743isl::pw_aff
aff::tdiv_r(
const isl::pw_aff &pa2)
const
5745 return isl::pw_aff(*this).
tdiv_r(pa2);
5750 auto res = isl_aff_to_list(
copy());
5756 return isl::multi_aff(*this).to_multi_pw_aff();
5761 return isl::multi_aff(*this).to_multi_union_pw_aff();
5766 return isl::multi_aff(*this).to_pw_multi_aff();
5771 return isl::pw_aff(*this).to_union_pw_aff();
5776 return isl::pw_aff(*this).to_union_pw_multi_aff();
5795isl::multi_union_pw_aff
aff::union_add(
const isl::multi_union_pw_aff &mupa2)
const
5797 return isl::pw_aff(*this).
union_add(mupa2);
5802 return isl::pw_aff(*this).
union_add(pwaff2);
5805isl::pw_multi_aff
aff::union_add(
const isl::pw_multi_aff &pma2)
const
5807 return isl::pw_aff(*this).
union_add(pma2);
5810isl::union_pw_aff
aff::union_add(
const isl::union_pw_aff &upa2)
const
5812 return isl::pw_aff(*this).
union_add(upa2);
5815isl::union_pw_multi_aff
aff::union_add(
const isl::union_pw_multi_aff &upma2)
const
5817 return isl::pw_aff(*this).
union_add(upma2);
5836 os.setstate(std::ios_base::badbit);
5849 ptr = isl_aff_list_copy(ptr);
5867 auto res = isl_aff_list_alloc(
ctx.release(),
n);
5873 auto res = isl_aff_list_from_aff(el.
release());
5879 auto res = isl_aff_list_read_from_str(
ctx.release(),
str.c_str());
5884 std::swap(this->
ptr,
obj.ptr);
5890 isl_aff_list_free(
ptr);
5894 return isl_aff_list_copy(
ptr);
5902 isl_aff_list *tmp =
ptr;
5908 return ptr ==
nullptr;
5912 return isl::ctx(isl_aff_list_get_ctx(
ptr));
5923 auto res = isl_aff_list_get_at(
get(), index);
5934 auto res = isl_aff_list_clear(
copy());
5946 auto res = isl_aff_list_drop(
copy(), first,
n);
5956 auto *data =
static_cast<struct fn_data *
>(arg_1);
5957 auto ret = (data->func)(
manage(arg_0));
5958 return ret.release();
5960 auto res = isl_aff_list_foreach(
get(), fn_lambda, &fn_data);
5972 auto res = isl_aff_list_size(
get());
5978 char *
str = isl_aff_list_to_str(
obj.get());
5980 os.setstate(std::ios_base::badbit);
6004 copy_callbacks(
obj);
6017 std::swap(this->
ptr,
obj.ptr);
6044 return ptr ==
nullptr;
6061 return ret.release();
6074 copy.set_at_each_domain_data(
fn);
6171 std::swap(this->
ptr,
obj.ptr);
6195 return ptr ==
nullptr;
6198template <
typename T,
typename>
6283 std::string tmp(
res);
6303 os.setstate(std::ios_base::badbit);
6324 std::swap(this->
ptr,
obj.ptr);
6347 os.setstate(std::ios_base::badbit);
6368 std::swap(this->
ptr,
obj.ptr);
6391 os.setstate(std::ios_base::badbit);
6412 std::swap(this->
ptr,
obj.ptr);
6416template <
typename T,
typename>
6466 os.setstate(std::ios_base::badbit);
6487 std::swap(this->
ptr,
obj.ptr);
6499 os.setstate(std::ios_base::badbit);
6520 std::swap(this->
ptr,
obj.ptr);
6532 os.setstate(std::ios_base::badbit);
6553 std::swap(this->
ptr,
obj.ptr);
6565 os.setstate(std::ios_base::badbit);
6586 std::swap(this->
ptr,
obj.ptr);
6598 os.setstate(std::ios_base::badbit);
6619 std::swap(this->
ptr,
obj.ptr);
6631 os.setstate(std::ios_base::badbit);
6652 std::swap(this->
ptr,
obj.ptr);
6664 os.setstate(std::ios_base::badbit);
6685 std::swap(this->
ptr,
obj.ptr);
6697 os.setstate(std::ios_base::badbit);
6718 std::swap(this->
ptr,
obj.ptr);
6730 os.setstate(std::ios_base::badbit);
6751 std::swap(this->
ptr,
obj.ptr);
6763 os.setstate(std::ios_base::badbit);
6784 std::swap(this->
ptr,
obj.ptr);
6796 os.setstate(std::ios_base::badbit);
6817 std::swap(this->
ptr,
obj.ptr);
6829 os.setstate(std::ios_base::badbit);
6850 std::swap(this->
ptr,
obj.ptr);
6862 os.setstate(std::ios_base::badbit);
6883 std::swap(this->
ptr,
obj.ptr);
6895 os.setstate(std::ios_base::badbit);
6916 std::swap(this->
ptr,
obj.ptr);
6928 os.setstate(std::ios_base::badbit);
6949 std::swap(this->
ptr,
obj.ptr);
6961 os.setstate(std::ios_base::badbit);
6982 std::swap(this->
ptr,
obj.ptr);
6994 os.setstate(std::ios_base::badbit);
7015 std::swap(this->
ptr,
obj.ptr);
7027 os.setstate(std::ios_base::badbit);
7048 std::swap(this->
ptr,
obj.ptr);
7060 os.setstate(std::ios_base::badbit);
7081 std::swap(this->
ptr,
obj.ptr);
7093 os.setstate(std::ios_base::badbit);
7114 std::swap(this->
ptr,
obj.ptr);
7126 os.setstate(std::ios_base::badbit);
7147 std::swap(this->
ptr,
obj.ptr);
7159 os.setstate(std::ios_base::badbit);
7180 std::swap(this->
ptr,
obj.ptr);
7192 os.setstate(std::ios_base::badbit);
7213 std::swap(this->
ptr,
obj.ptr);
7225 os.setstate(std::ios_base::badbit);
7246 std::swap(this->
ptr,
obj.ptr);
7258 os.setstate(std::ios_base::badbit);
7279 std::swap(this->
ptr,
obj.ptr);
7291 os.setstate(std::ios_base::badbit);
7312 std::swap(this->
ptr,
obj.ptr);
7324 os.setstate(std::ios_base::badbit);
7354 std::swap(this->
ptr,
obj.ptr);
7378 return ptr ==
nullptr;
7381template <
typename T,
typename>
7419 std::string tmp(
res);
7426 auto res = isl_ast_node_to_list(
copy());
7434 os.setstate(std::ios_base::badbit);
7455 std::swap(this->
ptr,
obj.ptr);
7478 os.setstate(std::ios_base::badbit);
7499 std::swap(this->
ptr,
obj.ptr);
7572 os.setstate(std::ios_base::badbit);
7593 std::swap(this->
ptr,
obj.ptr);
7644 os.setstate(std::ios_base::badbit);
7657 ptr = isl_ast_node_list_copy(ptr);
7675 auto res = isl_ast_node_list_alloc(
ctx.release(),
n);
7681 auto res = isl_ast_node_list_from_ast_node(el.
release());
7686 std::swap(this->
ptr,
obj.ptr);
7692 isl_ast_node_list_free(
ptr);
7696 return isl_ast_node_list_copy(
ptr);
7704 isl_ast_node_list *tmp =
ptr;
7710 return ptr ==
nullptr;
7714 return isl::ctx(isl_ast_node_list_get_ctx(
ptr));
7725 auto res = isl_ast_node_list_get_at(
get(), index);
7736 auto res = isl_ast_node_list_clear(
copy());
7748 auto res = isl_ast_node_list_drop(
copy(), first,
n);
7758 auto *data =
static_cast<struct fn_data *
>(arg_1);
7759 auto ret = (data->func)(
manage(arg_0));
7760 return ret.release();
7762 auto res = isl_ast_node_list_foreach(
get(), fn_lambda, &fn_data);
7774 auto res = isl_ast_node_list_size(
get());
7780 char *
str = isl_ast_node_list_to_str(
obj.get());
7782 os.setstate(std::ios_base::badbit);
7803 std::swap(this->
ptr,
obj.ptr);
7837 os.setstate(std::ios_base::badbit);
7858 std::swap(this->
ptr,
obj.ptr);
7881 os.setstate(std::ios_base::badbit);
7917 std::swap(this->
ptr,
obj.ptr);
7941 return ptr ==
nullptr;
7966 return isl::map(*this).align_params(model);
8003 return isl::map(*this).
as_map();
8008 return isl::map(*this).as_multi_union_pw_aff();
8018 return isl::map(*this).as_union_pw_multi_aff();
8023 return isl::map(*this).basic_map_list();
8038 return isl::map(*this).can_curry();
8058 return isl::map(*this).
curry();
8111 return isl::map(*this).domain_map_union_pw_multi_aff();
8126 return isl::map(*this).domain_tuple_dim();
8131 return isl::map(*this).domain_tuple_id();
8136 return isl::map(*this).
eq_at(mpa);
8210 return isl::map(*this).flat_range_product(umap2);
8233 return isl::map(*this).floordiv_val(d);
8301 return isl::map(*this).has_domain_tuple_id();
8337 return isl::map(*this).
intersect(umap2);
8454 return isl::map(*this).is_disjoint(umap2);
8471 return isl::map(*this).is_equal(
map2);
8476 return isl::map(*this).is_equal(umap2);
8481 return isl::map(*this).is_injective();
8486 return isl::map(*this).is_single_valued();
8491 return isl::map(*this).is_strict_subset(
map2);
8496 return isl::map(*this).is_strict_subset(umap2);
8507 return isl::map(*this).is_subset(
map2);
8512 return isl::map(*this).is_subset(umap2);
8517 return isl::map(*this).isa_map();
8548 return isl::map(*this).lexmax_pw_multi_aff();
8559 return isl::map(*this).lexmin_pw_multi_aff();
8584 return isl::map(*this).min_multi_pw_aff();
8589 return isl::map(*this).move_dims(dst_type, dst_pos, src_type, src_pos,
n);
8599 return isl::map(*this).order_lt(type1, pos1, type2, pos2);
8660 return isl::map(*this).
product(umap2);
8690 return isl::map(*this).range_lattice_tile();
8715 return isl::map(*this).range_simple_fixed_box_hull();
8720 return isl::map(*this).range_tuple_dim();
8725 return isl::map(*this).range_tuple_id();
8782 return isl::map(*this).
subtract(umap2);
8802 auto res = isl_basic_map_to_list(
copy());
8834 return isl::map(*this).
unite(umap2);
8872 os.setstate(std::ios_base::badbit);
8885 ptr = isl_basic_map_list_copy(
ptr);
8903 auto res = isl_basic_map_list_alloc(
ctx.release(),
n);
8909 auto res = isl_basic_map_list_from_basic_map(el.
release());
8914 std::swap(this->ptr,
obj.ptr);
8920 isl_basic_map_list_free(
ptr);
8924 return isl_basic_map_list_copy(
ptr);
8932 isl_basic_map_list *tmp =
ptr;
8938 return ptr ==
nullptr;
8953 auto res = isl_basic_map_list_get_at(
get(), index);
8964 auto res = isl_basic_map_list_clear(
copy());
8976 auto res = isl_basic_map_list_drop(
copy(), first,
n);
8986 auto *data =
static_cast<struct fn_data *
>(arg_1);
8987 auto ret = (data->func)(
manage(arg_0));
8988 return ret.release();
8990 auto res = isl_basic_map_list_foreach(
get(), fn_lambda, &fn_data);
9002 auto res = isl_basic_map_list_size(
get());
9008 char *
str = isl_basic_map_list_to_str(
obj.get());
9010 os.setstate(std::ios_base::badbit);
9020 return basic_set(ptr);
9030basic_set::basic_set(
const basic_set &
obj)
9045basic_set::basic_set(
isl::ctx ctx,
const std::string &
str)
9051basic_set &basic_set::operator=(basic_set
obj) {
9052 std::swap(this->ptr,
obj.ptr);
9056basic_set::~basic_set() {
9075bool basic_set::is_null()
const {
9076 return ptr ==
nullptr;
9101 return isl::set(*this).align_params(model);
9132 return isl::set(*this).basic_set_list();
9140isl::set basic_set::coalesce()
const
9145isl::set basic_set::complement()
const
9162 return isl::set(*this).convex_hull();
9226 return isl::set(*this).drop_constraints_involving_dims(
type, first,
n);
9279 return isl::set(*this).foreach_basic_set(
fn);
9330 return isl::set(*this).identity_union_pw_multi_aff();
9335 return isl::set(*this).indicator_function();
9392 return isl::set(*this).involves_locals();
9408 return isl::set(*this).is_disjoint(uset2);
9411boolean basic_set::is_empty()
const
9430 return isl::set(*this).is_equal(uset2);
9433boolean basic_set::is_equal(
const isl::point &bset2)
const
9440 return isl::set(*this).is_params();
9445 return isl::set(*this).is_singleton();
9448boolean basic_set::is_strict_subset(
const isl::set &
set2)
const
9453boolean basic_set::is_strict_subset(
const isl::union_set &uset2)
const
9455 return isl::set(*this).is_strict_subset(uset2);
9464boolean basic_set::is_subset(
const isl::set &
set2)
const
9471 return isl::set(*this).is_subset(uset2);
9474boolean basic_set::is_subset(
const isl::point &bset2)
const
9479boolean basic_set::is_wrapping()
const
9485boolean basic_set::isa_set()
const
9498 return isl::set(*this).lexmax_pw_multi_aff();
9509 return isl::set(*this).lexmin_pw_multi_aff();
9539 return isl::set(*this).max_multi_pw_aff();
9549 return isl::set(*this).min_multi_pw_aff();
9557class size basic_set::n_basic_set()
const
9559 return isl::set(*this).n_basic_set();
9575 return isl::set(*this).plain_multi_val_if_fixed();
9616 return isl::set(*this).project_out_all_params();
9624isl::set basic_set::project_out_param(
const std::string &
id)
const
9626 return this->project_out_param(
isl::id(ctx(),
id));
9636 return isl::set(*this).pw_multi_aff_on_domain(mv);
9646 return isl::set(*this).remove_divs();
9651 return isl::set(*this).remove_redundancies();
9656 return isl::set(*this).reset_tuple_id();
9688 return isl::set(*this).set_tuple_id(
id);
9698 return isl::set(*this).simple_fixed_box_hull();
9703 return isl::set(*this).simple_hull();
9734 auto res = isl_basic_set_to_list(copy());
9746 return isl::set(*this).to_union_set();
9749isl::map basic_set::translation()
const
9751 return isl::set(*this).translation();
9754class size basic_set::tuple_dim()
const
9756 return isl::set(*this).tuple_dim();
9766 return isl::set(*this).tuple_name();
9808 return isl::set(*this).unshifted_simple_hull();
9840 os.setstate(std::ios_base::badbit);
9853 ptr = isl_basic_set_list_copy(
ptr);
9871 auto res = isl_basic_set_list_alloc(
ctx.release(),
n);
9877 auto res = isl_basic_set_list_from_basic_set(el.
release());
9882 std::swap(this->ptr,
obj.ptr);
9888 isl_basic_set_list_free(
ptr);
9892 return isl_basic_set_list_copy(
ptr);
9906 return ptr ==
nullptr;
9921 auto res = isl_basic_set_list_get_at(
get(), index);
9932 auto res = isl_basic_set_list_clear(
copy());
9944 auto res = isl_basic_set_list_drop(
copy(), first,
n);
9954 auto *data =
static_cast<struct fn_data *
>(arg_1);
9955 auto ret = (data->func)(
manage(arg_0));
9956 return ret.release();
9958 auto res = isl_basic_set_list_foreach(
get(), fn_lambda, &fn_data);
9970 auto res = isl_basic_set_list_size(
get());
9976 char *
str = isl_basic_set_list_to_str(
obj.get());
9978 os.setstate(std::ios_base::badbit);
10008 std::swap(this->ptr,
obj.ptr);
10032 return ptr ==
nullptr;
10080 return fixed_box(ptr);
10096 std::swap(this->
ptr,
obj.ptr);
10120 return ptr ==
nullptr;
10170 os.setstate(std::ios_base::badbit);
10206 std::swap(this->
ptr,
obj.ptr);
10230 return ptr ==
nullptr;
10246 std::string tmp(
res);
10257 auto res = isl_id_to_list(
copy());
10272inline std::ostream &
operator<<(std::ostream &os,
const id &
obj)
10276 os.setstate(std::ios_base::badbit);
10289 ptr = isl_id_list_copy(ptr);
10307 auto res = isl_id_list_alloc(
ctx.release(),
n);
10313 auto res = isl_id_list_from_id(el.
release());
10319 auto res = isl_id_list_read_from_str(
ctx.release(),
str.c_str());
10324 std::swap(this->
ptr,
obj.ptr);
10330 isl_id_list_free(
ptr);
10334 return isl_id_list_copy(
ptr);
10342 isl_id_list *tmp =
ptr;
10348 return ptr ==
nullptr;
10352 return isl::ctx(isl_id_list_get_ctx(
ptr));
10363 return this->
add(isl::id(
ctx(), el));
10368 auto res = isl_id_list_get_at(
get(), index);
10379 auto res = isl_id_list_clear(
copy());
10389isl::id_list
id_list::drop(
unsigned int first,
unsigned int n)
const
10391 auto res = isl_id_list_drop(
copy(), first,
n);
10399 } fn_data = {
fn };
10401 auto *data =
static_cast<struct fn_data *
>(arg_1);
10402 auto ret = (data->func)(
manage(arg_0));
10403 return ret.release();
10405 auto res = isl_id_list_foreach(
get(), fn_lambda, &fn_data);
10422 auto res = isl_id_list_size(
get());
10428 char *
str = isl_id_list_to_str(
obj.get());
10430 os.setstate(std::ios_base::badbit);
10443 ptr = isl_id_to_ast_expr_copy(ptr);
10460 std::swap(this->
ptr,
obj.ptr);
10466 isl_id_to_ast_expr_free(
ptr);
10470 return isl_id_to_ast_expr_copy(
ptr);
10478 isl_id_to_ast_expr *tmp =
ptr;
10484 return ptr ==
nullptr;
10488 return isl::ctx(isl_id_to_ast_expr_get_ctx(
ptr));
10536 std::swap(this->ptr,
obj.ptr);
10560 return ptr ==
nullptr;
10601 std::swap(this->
ptr,
obj.ptr);
10625 return ptr ==
nullptr;
10690 return isl::union_map(*this).
as_map();
10695 return isl::union_map(*this).as_multi_union_pw_aff();
10706 return isl::union_map(*this).as_union_pw_multi_aff();
10817 return isl::union_map(*this).domain_map_union_pw_multi_aff();
10859isl::map
map::eq_at(isl::multi_pw_aff mpa)
const
10865isl::union_map
map::eq_at(
const isl::multi_union_pw_aff &
mupa)
const
10867 return isl::union_map(*this).
eq_at(
mupa);
10870isl::map
map::eq_at(
const isl::aff &mpa)
const
10872 return this->
eq_at(isl::multi_pw_aff(mpa));
10875isl::map
map::eq_at(
const isl::multi_aff &mpa)
const
10877 return this->
eq_at(isl::multi_pw_aff(mpa));
10880isl::map
map::eq_at(
const isl::pw_aff &mpa)
const
10882 return this->
eq_at(isl::multi_pw_aff(mpa));
10885isl::map
map::eq_at(
const isl::pw_multi_aff &mpa)
const
10887 return this->
eq_at(isl::multi_pw_aff(mpa));
10983 } fn_data = {
fn };
10985 auto *data =
static_cast<struct fn_data *
>(arg_1);
10986 auto ret = (data->func)(
manage(arg_0));
10987 return ret.release();
11085 return isl::union_map(*this).
gist_range(uset);
11282 return isl::union_map(*this).is_disjoint(umap2);
11304 return isl::union_map(*this).is_equal(umap2);
11332 return isl::union_map(*this).is_strict_subset(umap2);
11348 return isl::union_map(*this).is_subset(umap2);
11358 return isl::union_map(*this).isa_map();
11537isl::union_map
map::product(
const isl::union_map &umap2)
const
11539 return isl::union_map(*this).
product(umap2);
11706isl::union_map
map::subtract(
const isl::union_map &umap2)
const
11708 return isl::union_map(*this).
subtract(umap2);
11734 auto res = isl_map_to_list(
copy());
11767isl::union_map
map::unite(
const isl::union_map &umap2)
const
11769 return isl::union_map(*this).
unite(umap2);
11817 os.setstate(std::ios_base::badbit);
11830 ptr = isl_map_list_copy(ptr);
11848 auto res = isl_map_list_alloc(
ctx.release(),
n);
11854 auto res = isl_map_list_from_map(el.
release());
11860 auto res = isl_map_list_read_from_str(
ctx.release(),
str.c_str());
11865 std::swap(this->
ptr,
obj.ptr);
11871 isl_map_list_free(
ptr);
11875 return isl_map_list_copy(
ptr);
11883 isl_map_list *tmp =
ptr;
11889 return ptr ==
nullptr;
11893 return isl::ctx(isl_map_list_get_ctx(
ptr));
11904 auto res = isl_map_list_get_at(
get(), index);
11915 auto res = isl_map_list_clear(
copy());
11925isl::map_list
map_list::drop(
unsigned int first,
unsigned int n)
const
11927 auto res = isl_map_list_drop(
copy(), first,
n);
11935 } fn_data = {
fn };
11937 auto *data =
static_cast<struct fn_data *
>(arg_1);
11938 auto ret = (data->func)(
manage(arg_0));
11939 return ret.release();
11941 auto res = isl_map_list_foreach(
get(), fn_lambda, &fn_data);
11953 auto res = isl_map_list_size(
get());
11959 char *
str = isl_map_list_to_str(
obj.get());
11961 os.setstate(std::ios_base::badbit);
11974 ptr = isl_multi_aff_copy(ptr);
11998 auto res = isl_multi_aff_from_aff_list(
space.release(),
list.release());
12009 std::swap(this->
ptr,
obj.ptr);
12015 isl_multi_aff_free(
ptr);
12019 return isl_multi_aff_copy(
ptr);
12033 return ptr ==
nullptr;
12037 return isl::ctx(isl_multi_aff_get_ctx(
ptr));
12046isl::multi_pw_aff
multi_aff::add(
const isl::multi_pw_aff &multi2)
const
12048 return isl::pw_multi_aff(*this).
add(multi2);
12051isl::multi_union_pw_aff
multi_aff::add(
const isl::multi_union_pw_aff &multi2)
const
12053 return isl::pw_multi_aff(*this).
add(multi2);
12056isl::pw_multi_aff
multi_aff::add(
const isl::pw_multi_aff &pma2)
const
12058 return isl::pw_multi_aff(*this).
add(pma2);
12061isl::union_pw_multi_aff
multi_aff::add(
const isl::union_pw_multi_aff &upma2)
const
12063 return isl::pw_multi_aff(*this).
add(upma2);
12068 return this->
add(isl::multi_aff(multi2));
12073 auto res = isl_multi_aff_add_constant_multi_val(
copy(), mv.
release());
12111 return isl::pw_multi_aff(*this).as_multi_union_pw_aff();
12127 return isl::pw_multi_aff(*this).as_union_map();
12132 auto res = isl_multi_aff_get_at(
get(),
pos);
12149 auto res = isl_multi_aff_bind_domain(
copy(),
tuple.release());
12155 auto res = isl_multi_aff_bind_domain_wrapped_domain(
copy(),
tuple.release());
12161 return isl::pw_multi_aff(*this).
coalesce();
12204 auto res = isl_multi_aff_flat_range_product(
copy(), multi2.
release());
12267 auto res = isl_multi_aff_has_range_tuple_id(
get());
12273 auto res = isl_multi_aff_identity(
space.release());
12279 auto res = isl_multi_aff_identity_multi_aff(
copy());
12291 auto res = isl_multi_aff_insert_domain(
copy(),
domain.release());
12327 auto res = isl_multi_aff_involves_locals(
get());
12333 auto res = isl_multi_aff_involves_nan(
get());
12339 return isl::pw_multi_aff(*this).involves_param(
id);
12349 return isl::pw_multi_aff(*this).involves_param(
list);
12354 return isl::pw_multi_aff(*this).isa_multi_aff();
12359 return isl::pw_multi_aff(*this).isa_pw_multi_aff();
12364 auto res = isl_multi_aff_get_list(
get());
12373isl::multi_pw_aff
multi_aff::max(
const isl::multi_pw_aff &multi2)
const
12375 return isl::pw_multi_aff(*this).
max(multi2);
12380 return isl::pw_multi_aff(*this).max_multi_val();
12383isl::multi_pw_aff
multi_aff::min(
const isl::multi_pw_aff &multi2)
const
12385 return isl::pw_multi_aff(*this).
min(multi2);
12390 return isl::pw_multi_aff(*this).min_multi_val();
12401 return isl::pw_multi_aff(*this).n_piece();
12406 auto res = isl_multi_aff_neg(
copy());
12412 return isl::pw_multi_aff(*this).plain_is_empty();
12417 auto res = isl_multi_aff_plain_is_equal(
get(), multi2.
get());
12423 return isl::pw_multi_aff(*this).plain_is_equal(multi2);
12428 return isl::pw_multi_aff(*this).plain_is_equal(multi2);
12454 return isl::pw_multi_aff(*this).
product(multi2);
12459 return isl::pw_multi_aff(*this).
product(pma2);
12464 return this->
product(isl::multi_aff(multi2));
12475 return isl::pw_multi_aff(*this).
pullback(mpa2);
12480 return isl::pw_multi_aff(*this).
pullback(pma2);
12485 return isl::pw_multi_aff(*this).
pullback(upma2);
12490 return this->
pullback(isl::multi_aff(ma2));
12516 auto res = isl_multi_aff_range_product(
copy(), multi2.
release());
12547 auto res = isl_multi_aff_get_range_tuple_id(
get());
12558 auto res = isl_multi_aff_reset_range_tuple_id(
copy());
12582 return this->
scale(isl::val(
ctx(), v));
12587 auto res = isl_multi_aff_scale_down_multi_val(
copy(), mv.
release());
12621 return isl::pw_multi_aff(*this).
set_at(
pos, el);
12636 auto res = isl_multi_aff_set_range_tuple_id(
copy(),
id.
release());
12652 auto res = isl_multi_aff_size(
get());
12658 auto res = isl_multi_aff_get_space(
get());
12673isl::multi_pw_aff
multi_aff::sub(
const isl::multi_pw_aff &multi2)
const
12675 return isl::pw_multi_aff(*this).
sub(multi2);
12678isl::multi_union_pw_aff
multi_aff::sub(
const isl::multi_union_pw_aff &multi2)
const
12680 return isl::pw_multi_aff(*this).
sub(multi2);
12683isl::pw_multi_aff
multi_aff::sub(
const isl::pw_multi_aff &pma2)
const
12685 return isl::pw_multi_aff(*this).
sub(pma2);
12688isl::union_pw_multi_aff
multi_aff::sub(
const isl::union_pw_multi_aff &upma2)
const
12690 return isl::pw_multi_aff(*this).
sub(upma2);
12695 return this->
sub(isl::multi_aff(multi2));
12715 return isl::pw_multi_aff(*this).to_list();
12738 return isl::pw_multi_aff(*this).to_union_pw_multi_aff();
12748 auto res = isl_multi_aff_unbind_params_insert_domain(
copy(),
domain.release());
12759 return isl::pw_multi_aff(*this).
union_add(mupa2);
12764 return isl::pw_multi_aff(*this).
union_add(pma2);
12769 return isl::pw_multi_aff(*this).
union_add(upma2);
12774 auto res = isl_multi_aff_zero(
space.release());
12782 os.setstate(std::ios_base::badbit);
12795 ptr = isl_multi_id_copy(ptr);
12813 auto res = isl_multi_id_from_id_list(
space.release(),
list.release());
12824 std::swap(this->
ptr,
obj.ptr);
12830 isl_multi_id_free(
ptr);
12834 return isl_multi_id_copy(
ptr);
12848 return ptr ==
nullptr;
12852 return isl::ctx(isl_multi_id_get_ctx(
ptr));
12857 auto res = isl_multi_id_get_at(
get(),
pos);
12868 auto res = isl_multi_id_flat_range_product(
copy(), multi2.
release());
12874 auto res = isl_multi_id_get_list(
get());
12885 auto res = isl_multi_id_plain_is_equal(
get(), multi2.
get());
12891 auto res = isl_multi_id_range_product(
copy(), multi2.
release());
12919 auto res = isl_multi_id_size(
get());
12925 auto res = isl_multi_id_get_space(
get());
12938 os.setstate(std::ios_base::badbit);
12951 ptr = isl_multi_pw_aff_copy(ptr);
12987 auto res = isl_multi_pw_aff_from_pw_aff_list(
space.release(),
list.release());
13004 std::swap(this->
ptr,
obj.ptr);
13010 isl_multi_pw_aff_free(
ptr);
13014 return isl_multi_pw_aff_copy(
ptr);
13028 return ptr ==
nullptr;
13032 return isl::ctx(isl_multi_pw_aff_get_ctx(
ptr));
13041isl::multi_union_pw_aff
multi_pw_aff::add(
const isl::multi_union_pw_aff &multi2)
const
13043 return isl::multi_union_pw_aff(*this).
add(multi2);
13048 return this->
add(isl::multi_pw_aff(multi2));
13053 return this->
add(isl::multi_pw_aff(multi2));
13058 return this->
add(isl::multi_pw_aff(multi2));
13063 return this->
add(isl::multi_pw_aff(multi2));
13068 auto res = isl_multi_pw_aff_add_constant_multi_val(
copy(), mv.
release());
13074 auto res = isl_multi_pw_aff_add_constant_val(
copy(), v.
release());
13103 auto res = isl_multi_pw_aff_get_at(
get(),
pos);
13120 auto res = isl_multi_pw_aff_bind_domain(
copy(),
tuple.release());
13126 auto res = isl_multi_pw_aff_bind_domain_wrapped_domain(
copy(),
tuple.release());
13150 auto res = isl_multi_pw_aff_flat_range_product(
copy(), multi2.
release());
13187 return isl::multi_union_pw_aff(*this).
gist(
context);
13202 auto res = isl_multi_pw_aff_has_range_tuple_id(
get());
13208 auto res = isl_multi_pw_aff_identity(
space.release());
13214 auto res = isl_multi_pw_aff_identity_multi_pw_aff(
copy());
13220 auto res = isl_multi_pw_aff_identity_on_domain_space(
space.
release());
13226 auto res = isl_multi_pw_aff_insert_domain(
copy(),
domain.release());
13259 auto res = isl_multi_pw_aff_involves_nan(
get());
13265 auto res = isl_multi_pw_aff_involves_param_id(
get(),
id.
get());
13276 auto res = isl_multi_pw_aff_involves_param_id_list(
get(),
list.get());
13288 auto res = isl_multi_pw_aff_get_list(
get());
13323 auto res = isl_multi_pw_aff_neg(
copy());
13329 auto res = isl_multi_pw_aff_plain_is_equal(
get(), multi2.
get());
13335 return isl::multi_union_pw_aff(*this).plain_is_equal(multi2);
13384 return isl::multi_union_pw_aff(*this).
pullback(upma);
13389 auto res = isl_multi_pw_aff_range_product(
copy(), multi2.
release());
13395 return isl::multi_union_pw_aff(*this).
range_product(multi2);
13420 auto res = isl_multi_pw_aff_get_range_tuple_id(
get());
13431 auto res = isl_multi_pw_aff_reset_range_tuple_id(
copy());
13443 auto res = isl_multi_pw_aff_scale_multi_val(
copy(), mv.
release());
13455 return this->
scale(isl::val(
ctx(), v));
13460 auto res = isl_multi_pw_aff_scale_down_multi_val(
copy(), mv.
release());
13466 auto res = isl_multi_pw_aff_scale_down_val(
copy(), v.
release());
13483 return isl::multi_union_pw_aff(*this).
set_at(
pos, el);
13494 auto res = isl_multi_pw_aff_set_range_tuple_id(
copy(),
id.
release());
13510 auto res = isl_multi_pw_aff_size(
get());
13516 auto res = isl_multi_pw_aff_get_space(
get());
13531isl::multi_union_pw_aff
multi_pw_aff::sub(
const isl::multi_union_pw_aff &multi2)
const
13533 return isl::multi_union_pw_aff(*this).
sub(multi2);
13538 return this->
sub(isl::multi_pw_aff(multi2));
13543 return this->
sub(isl::multi_pw_aff(multi2));
13548 return this->
sub(isl::multi_pw_aff(multi2));
13553 return this->
sub(isl::multi_pw_aff(multi2));
13558 auto res = isl_multi_pw_aff_unbind_params_insert_domain(
copy(),
domain.release());
13570 return isl::multi_union_pw_aff(*this).
union_add(mupa2);
13575 return this->
union_add(isl::multi_pw_aff(mpa2));
13580 return this->
union_add(isl::multi_pw_aff(mpa2));
13585 return this->
union_add(isl::multi_pw_aff(mpa2));
13590 return this->
union_add(isl::multi_pw_aff(mpa2));
13595 auto res = isl_multi_pw_aff_zero(
space.release());
13603 os.setstate(std::ios_base::badbit);
13616 ptr = isl_multi_union_pw_aff_copy(ptr);
13646 auto res = isl_multi_union_pw_aff_from_union_pw_aff_list(
space.release(),
list.release());
13663 std::swap(this->ptr,
obj.ptr);
13669 isl_multi_union_pw_aff_free(
ptr);
13673 return isl_multi_union_pw_aff_copy(
ptr);
13687 return ptr ==
nullptr;
13691 return isl::ctx(isl_multi_union_pw_aff_get_ctx(
ptr));
13696 auto res = isl_multi_union_pw_aff_add(
copy(), multi2.
release());
13702 auto res = isl_multi_union_pw_aff_get_at(
get(),
pos);
13737 auto res = isl_multi_union_pw_aff_flat_range_product(
copy(), multi2.
release());
13755 auto res = isl_multi_union_pw_aff_has_range_tuple_id(
get());
13773 auto res = isl_multi_union_pw_aff_involves_nan(
get());
13779 auto res = isl_multi_union_pw_aff_get_list(
get());
13790 auto res = isl_multi_union_pw_aff_neg(
copy());
13796 auto res = isl_multi_union_pw_aff_plain_is_equal(
get(), multi2.
get());
13808 auto res = isl_multi_union_pw_aff_range_product(
copy(), multi2.
release());
13814 auto res = isl_multi_union_pw_aff_get_range_tuple_id(
get());
13825 auto res = isl_multi_union_pw_aff_reset_range_tuple_id(
copy());
13837 auto res = isl_multi_union_pw_aff_scale_multi_val(
copy(), mv.
release());
13843 auto res = isl_multi_union_pw_aff_scale_val(
copy(), v.
release());
13849 return this->
scale(isl::val(
ctx(), v));
13854 auto res = isl_multi_union_pw_aff_scale_down_multi_val(
copy(), mv.
release());
13860 auto res = isl_multi_union_pw_aff_scale_down_val(
copy(), v.
release());
13877 auto res = isl_multi_union_pw_aff_set_range_tuple_id(
copy(),
id.
release());
13894 auto res = isl_multi_union_pw_aff_size(
get());
13900 auto res = isl_multi_union_pw_aff_get_space(
get());
13911 auto res = isl_multi_union_pw_aff_sub(
copy(), multi2.
release());
13931 os.setstate(std::ios_base::badbit);
13944 ptr = isl_multi_val_copy(ptr);
13962 auto res = isl_multi_val_from_val_list(
space.release(),
list.release());
13973 std::swap(this->
ptr,
obj.ptr);
13979 isl_multi_val_free(
ptr);
13983 return isl_multi_val_copy(
ptr);
13997 return ptr ==
nullptr;
14001 return isl::ctx(isl_multi_val_get_ctx(
ptr));
14018 return this->
add(isl::val(
ctx(), v));
14023 auto res = isl_multi_val_get_at(
get(),
pos);
14040 auto res = isl_multi_val_flat_range_product(
copy(), multi2.
release());
14046 auto res = isl_multi_val_has_range_tuple_id(
get());
14052 auto res = isl_multi_val_involves_nan(
get());
14058 auto res = isl_multi_val_get_list(
get());
14081 auto res = isl_multi_val_neg(
copy());
14087 auto res = isl_multi_val_plain_is_equal(
get(), multi2.
get());
14099 auto res = isl_multi_val_range_product(
copy(), multi2.
release());
14105 auto res = isl_multi_val_get_range_tuple_id(
get());
14116 auto res = isl_multi_val_reset_range_tuple_id(
copy());
14140 return this->
scale(isl::val(
ctx(), v));
14145 auto res = isl_multi_val_scale_down_multi_val(
copy(), mv.
release());
14173 auto res = isl_multi_val_set_range_tuple_id(
copy(),
id.
release());
14195 auto res = isl_multi_val_size(
get());
14201 auto res = isl_multi_val_get_space(
get());
14218 auto res = isl_multi_val_zero(
space.release());
14226 os.setstate(std::ios_base::badbit);
14262 std::swap(this->ptr,
obj.ptr);
14286 return ptr ==
nullptr;
14323isl::union_set
point::apply(
const isl::union_map &umap)
const
14325 return isl::basic_set(*this).
apply(umap);
14335 return isl::basic_set(*this).
as_set();
14561 return isl::basic_set(*this).
intersect(uset2);
14601 return isl::basic_set(*this).is_empty();
14606 return isl::basic_set(*this).is_equal(bset2);
14611 return isl::basic_set(*this).is_equal(
set2);
14616 return isl::basic_set(*this).is_equal(uset2);
14636 return isl::basic_set(*this).is_strict_subset(uset2);
14641 return isl::basic_set(*this).is_subset(bset2);
14646 return isl::basic_set(*this).is_subset(
set2);
14651 return isl::basic_set(*this).is_subset(uset2);
14656 return isl::basic_set(*this).is_wrapping();
14661 return isl::basic_set(*this).isa_set();
14666 return isl::basic_set(*this).
lexmax();
14671 return isl::basic_set(*this).lexmax_pw_multi_aff();
14676 return isl::basic_set(*this).
lexmin();
14681 return isl::basic_set(*this).lexmin_pw_multi_aff();
14721 return isl::basic_set(*this).min_multi_pw_aff();
14726 return isl::basic_set(*this).min_val(
obj);
14742 return isl::basic_set(*this).n_basic_set();
14747 return isl::basic_set(*this).
params();
14772 return isl::basic_set(*this).
preimage(mpa);
14780isl::union_set
point::preimage(
const isl::union_pw_multi_aff &upma)
const
14782 return isl::basic_set(*this).
preimage(upma);
14817 return isl::basic_set(*this).pw_multi_aff_on_domain(mv);
14902 return isl::basic_set(*this).
subtract(uset2);
14907 return isl::basic_set(*this).to_list();
14918 return isl::basic_set(*this).to_union_set();
14923 return isl::basic_set(*this).translation();
14928 return isl::basic_set(*this).tuple_dim();
14953 return isl::basic_set(*this).
unite(bset2);
14958 return isl::basic_set(*this).
unite(
set2);
14961isl::union_set
point::unite(
const isl::union_set &uset2)
const
14963 return isl::basic_set(*this).
unite(uset2);
14973 return isl::basic_set(*this).unwrap();
15000 os.setstate(std::ios_base::badbit);
15054 std::swap(this->ptr,
obj.ptr);
15078 return ptr ==
nullptr;
15085isl::multi_pw_aff
pw_aff::add(
const isl::multi_pw_aff &multi2)
const
15087 return isl::pw_multi_aff(*this).
add(multi2);
15090isl::multi_union_pw_aff
pw_aff::add(
const isl::multi_union_pw_aff &multi2)
const
15092 return isl::union_pw_aff(*this).
add(multi2);
15101isl::pw_multi_aff
pw_aff::add(
const isl::pw_multi_aff &pma2)
const
15103 return isl::pw_multi_aff(*this).
add(pma2);
15106isl::union_pw_aff
pw_aff::add(
const isl::union_pw_aff &upa2)
const
15108 return isl::union_pw_aff(*this).
add(upa2);
15111isl::union_pw_multi_aff
pw_aff::add(
const isl::union_pw_multi_aff &upma2)
const
15113 return isl::union_pw_aff(*this).
add(upma2);
15116isl::pw_aff
pw_aff::add(
const isl::aff &pwaff2)
const
15118 return this->
add(isl::pw_aff(pwaff2));
15172 return isl::union_pw_aff(*this).as_multi_union_pw_aff();
15182 return isl::pw_multi_aff(*this).
as_set();
15187 return isl::union_pw_aff(*this).as_union_map();
15192 return isl::pw_multi_aff(*this).
at(
pos);
15197 return isl::multi_pw_aff(*this).
bind(
tuple);
15208 return this->
bind(isl::id(
ctx(),
id));
15235isl::pw_aff
pw_aff::cond(isl::pw_aff pwaff_true, isl::pw_aff pwaff_false)
const
15332 } fn_data = {
fn };
15334 auto *data =
static_cast<struct fn_data *
>(arg_2);
15335 auto ret = (data->func)(
manage(arg_0),
manage(arg_1));
15336 return ret.release();
15387 return isl::pw_multi_aff(*this).has_range_tuple_id();
15392 return isl::pw_multi_aff(*this).
identity();
15445 return isl::pw_multi_aff(*this).involves_locals();
15450 return isl::multi_pw_aff(*this).involves_nan();
15455 return isl::pw_multi_aff(*this).involves_param(
id);
15465 return isl::pw_multi_aff(*this).involves_param(
list);
15493 return isl::union_pw_aff(*this).isa_pw_multi_aff();
15504 return isl::multi_pw_aff(*this).list();
15513isl::multi_pw_aff
pw_aff::max(
const isl::multi_pw_aff &multi2)
const
15515 return isl::pw_multi_aff(*this).
max(multi2);
15524isl::pw_aff
pw_aff::max(
const isl::aff &pwaff2)
const
15526 return this->
max(isl::pw_aff(pwaff2));
15531 return isl::pw_multi_aff(*this).max_multi_val();
15534isl::multi_pw_aff
pw_aff::min(
const isl::multi_pw_aff &multi2)
const
15536 return isl::pw_multi_aff(*this).
min(multi2);
15545isl::pw_aff
pw_aff::min(
const isl::aff &pwaff2)
const
15547 return this->
min(isl::pw_aff(pwaff2));
15552 return isl::pw_multi_aff(*this).min_multi_val();
15563 return this->
mod(isl::val(
ctx(),
mod));
15574 return isl::pw_multi_aff(*this).n_piece();
15597 return isl::union_pw_aff(*this).plain_is_empty();
15602 return isl::pw_multi_aff(*this).plain_is_equal(multi2);
15607 return isl::union_pw_aff(*this).plain_is_equal(multi2);
15620isl::multi_pw_aff
pw_aff::product(
const isl::multi_pw_aff &multi2)
const
15622 return isl::pw_multi_aff(*this).
product(multi2);
15625isl::pw_multi_aff
pw_aff::product(
const isl::pw_multi_aff &pma2)
const
15627 return isl::pw_multi_aff(*this).
product(pma2);
15648isl::union_pw_aff
pw_aff::pullback(
const isl::union_pw_multi_aff &upma)
const
15650 return isl::union_pw_aff(*this).
pullback(upma);
15690 return isl::pw_multi_aff(*this).range_tuple_id();
15716 return this->
scale(isl::val(
ctx(), v));
15721 return isl::multi_pw_aff(*this).
scale_down(mv);
15737 return isl::pw_multi_aff(*this).
set_at(
pos, el);
15740isl::multi_union_pw_aff
pw_aff::set_at(
int pos,
const isl::union_pw_aff &el)
const
15742 return isl::union_pw_aff(*this).
set_at(
pos, el);
15797isl::multi_pw_aff
pw_aff::sub(
const isl::multi_pw_aff &multi2)
const
15799 return isl::pw_multi_aff(*this).
sub(multi2);
15802isl::multi_union_pw_aff
pw_aff::sub(
const isl::multi_union_pw_aff &multi2)
const
15804 return isl::union_pw_aff(*this).
sub(multi2);
15813isl::pw_multi_aff
pw_aff::sub(
const isl::pw_multi_aff &pma2)
const
15815 return isl::pw_multi_aff(*this).
sub(pma2);
15818isl::union_pw_aff
pw_aff::sub(
const isl::union_pw_aff &upa2)
const
15820 return isl::union_pw_aff(*this).
sub(upa2);
15823isl::union_pw_multi_aff
pw_aff::sub(
const isl::union_pw_multi_aff &upma2)
const
15825 return isl::union_pw_aff(*this).
sub(upma2);
15828isl::pw_aff
pw_aff::sub(
const isl::aff &pwaff2)
const
15830 return this->
sub(isl::pw_aff(pwaff2));
15873 auto res = isl_pw_aff_to_list(
copy());
15879 return isl::pw_multi_aff(*this).to_multi_pw_aff();
15890 return isl::pw_multi_aff(*this).to_union_pw_multi_aff();
15914isl::multi_union_pw_aff
pw_aff::union_add(
const isl::multi_union_pw_aff &mupa2)
const
15916 return isl::union_pw_aff(*this).
union_add(mupa2);
15927 return isl::pw_multi_aff(*this).
union_add(pma2);
15932 return isl::union_pw_aff(*this).
union_add(upa2);
15935isl::union_pw_multi_aff
pw_aff::union_add(
const isl::union_pw_multi_aff &upma2)
const
15937 return isl::union_pw_aff(*this).
union_add(upma2);
15942 return this->
union_add(isl::pw_aff(pwaff2));
15955 os.setstate(std::ios_base::badbit);
15968 ptr = isl_pw_aff_list_copy(ptr);
15986 auto res = isl_pw_aff_list_alloc(
ctx.release(),
n);
15992 auto res = isl_pw_aff_list_from_pw_aff(el.
release());
15998 auto res = isl_pw_aff_list_read_from_str(
ctx.release(),
str.c_str());
16003 std::swap(this->
ptr,
obj.ptr);
16009 isl_pw_aff_list_free(
ptr);
16013 return isl_pw_aff_list_copy(
ptr);
16021 isl_pw_aff_list *tmp =
ptr;
16027 return ptr ==
nullptr;
16031 return isl::ctx(isl_pw_aff_list_get_ctx(
ptr));
16042 auto res = isl_pw_aff_list_get_at(
get(), index);
16053 auto res = isl_pw_aff_list_clear(
copy());
16065 auto res = isl_pw_aff_list_drop(
copy(), first,
n);
16073 } fn_data = {
fn };
16075 auto *data =
static_cast<struct fn_data *
>(arg_1);
16076 auto ret = (data->func)(
manage(arg_0));
16077 return ret.release();
16079 auto res = isl_pw_aff_list_foreach(
get(), fn_lambda, &fn_data);
16091 auto res = isl_pw_aff_list_size(
get());
16097 char *
str = isl_pw_aff_list_to_str(
obj.get());
16099 os.setstate(std::ios_base::badbit);
16147 std::swap(this->
ptr,
obj.ptr);
16171 return ptr ==
nullptr;
16180 return isl::multi_pw_aff(*this).
add(multi2);
16183isl::multi_union_pw_aff
pw_multi_aff::add(
const isl::multi_union_pw_aff &multi2)
const
16185 return isl::multi_pw_aff(*this).
add(multi2);
16194isl::union_pw_multi_aff
pw_multi_aff::add(
const isl::union_pw_multi_aff &upma2)
const
16196 return isl::union_pw_multi_aff(*this).
add(upma2);
16201 return this->
add(isl::pw_multi_aff(pma2));
16206 return this->
add(isl::pw_multi_aff(pma2));
16250 return isl::union_pw_multi_aff(*this).as_multi_union_pw_aff();
16266 return isl::union_pw_multi_aff(*this).as_union_map();
16282 return isl::multi_pw_aff(*this).
bind(
tuple);
16367 } fn_data = {
fn };
16369 auto *data =
static_cast<struct fn_data *
>(arg_2);
16370 auto ret = (data->func)(
manage(arg_0),
manage(arg_1));
16371 return ret.release();
16403 return isl::union_pw_multi_aff(*this).
gist(
context);
16424 return isl::multi_pw_aff(*this).
identity();
16489 return isl::multi_pw_aff(*this).involves_nan();
16494 return isl::multi_pw_aff(*this).involves_param(
id);
16504 return isl::multi_pw_aff(*this).involves_param(
list);
16515 return isl::union_pw_multi_aff(*this).isa_pw_multi_aff();
16520 return isl::multi_pw_aff(*this).list();
16525 return isl::multi_pw_aff(*this).
max(multi2);
16536 return isl::multi_pw_aff(*this).
min(multi2);
16559 return isl::multi_pw_aff(*this).
neg();
16564 return isl::union_pw_multi_aff(*this).plain_is_empty();
16569 return isl::multi_pw_aff(*this).plain_is_equal(multi2);
16574 return isl::multi_pw_aff(*this).plain_is_equal(multi2);
16600 return isl::multi_pw_aff(*this).
product(multi2);
16611 return this->
product(isl::pw_multi_aff(pma2));
16616 return this->
product(isl::pw_multi_aff(pma2));
16644 return isl::union_pw_multi_aff(*this).
pullback(upma2);
16688 return isl::union_pw_multi_aff(*this).
range_product(upma2);
16756 return isl::multi_pw_aff(*this).
set_at(
pos, el);
16761 return isl::multi_pw_aff(*this).
set_at(
pos, el);
16809 return isl::multi_pw_aff(*this).
sub(multi2);
16812isl::multi_union_pw_aff
pw_multi_aff::sub(
const isl::multi_union_pw_aff &multi2)
const
16814 return isl::multi_pw_aff(*this).
sub(multi2);
16823isl::union_pw_multi_aff
pw_multi_aff::sub(
const isl::union_pw_multi_aff &upma2)
const
16825 return isl::union_pw_multi_aff(*this).
sub(upma2);
16830 return this->
sub(isl::pw_multi_aff(pma2));
16835 return this->
sub(isl::pw_multi_aff(pma2));
16866 auto res = isl_pw_multi_aff_to_list(
copy());
16905 return isl::multi_pw_aff(*this).
union_add(mupa2);
16916 return isl::union_pw_multi_aff(*this).
union_add(upma2);
16921 return this->
union_add(isl::pw_multi_aff(pma2));
16926 return this->
union_add(isl::pw_multi_aff(pma2));
16939 os.setstate(std::ios_base::badbit);
16952 ptr = isl_pw_multi_aff_list_copy(ptr);
16970 auto res = isl_pw_multi_aff_list_alloc(
ctx.release(),
n);
16976 auto res = isl_pw_multi_aff_list_from_pw_multi_aff(el.
release());
16982 auto res = isl_pw_multi_aff_list_read_from_str(
ctx.release(),
str.c_str());
16987 std::swap(this->
ptr,
obj.ptr);
16993 isl_pw_multi_aff_list_free(
ptr);
16997 return isl_pw_multi_aff_list_copy(
ptr);
17005 isl_pw_multi_aff_list *tmp =
ptr;
17011 return ptr ==
nullptr;
17015 return isl::ctx(isl_pw_multi_aff_list_get_ctx(
ptr));
17026 auto res = isl_pw_multi_aff_list_get_at(
get(), index);
17037 auto res = isl_pw_multi_aff_list_clear(
copy());
17043 auto res = isl_pw_multi_aff_list_concat(
copy(), list2.
release());
17049 auto res = isl_pw_multi_aff_list_drop(
copy(), first,
n);
17057 } fn_data = {
fn };
17059 auto *data =
static_cast<struct fn_data *
>(arg_1);
17060 auto ret = (data->func)(
manage(arg_0));
17061 return ret.release();
17063 auto res = isl_pw_multi_aff_list_foreach(
get(), fn_lambda, &fn_data);
17075 auto res = isl_pw_multi_aff_list_size(
get());
17081 char *
str = isl_pw_multi_aff_list_to_str(
obj.get());
17083 os.setstate(std::ios_base::badbit);
17119 std::swap(this->
ptr,
obj.ptr);
17143 return ptr ==
nullptr;
17229 os.setstate(std::ios_base::badbit);
17265 std::swap(this->
ptr,
obj.ptr);
17289 return ptr ==
nullptr;
17419 os.setstate(std::ios_base::badbit);
17449 std::swap(this->
ptr,
obj.ptr);
17473 return ptr ==
nullptr;
17476template <
typename T,
typename>
17491 if (
isa<T>().is_false())
17549 } test_data = {
test };
17551 auto *data =
static_cast<struct test_data *
>(arg_1);
17553 return ret.release();
17569 } fn_data = {
fn };
17571 auto *data =
static_cast<struct fn_data *
>(arg_1);
17573 return ret.release();
17583 } fn_data = {
fn };
17585 auto *data =
static_cast<struct fn_data *
>(arg_1);
17587 return ret.release();
17703 std::function<isl::schedule_node(isl::schedule_node)> func;
17704 } fn_data = {
fn };
17706 auto *data =
static_cast<struct fn_data *
>(arg_1);
17707 auto ret = (data->func)(
manage(arg_0));
17708 return ret.release();
17841 return tree_depth();
17859 os.setstate(std::ios_base::badbit);
17880 std::swap(this->
ptr,
obj.ptr);
18026 os.setstate(std::ios_base::badbit);
18047 std::swap(this->
ptr,
obj.ptr);
18070 os.setstate(std::ios_base::badbit);
18091 std::swap(this->
ptr,
obj.ptr);
18114 os.setstate(std::ios_base::badbit);
18135 std::swap(this->
ptr,
obj.ptr);
18169 os.setstate(std::ios_base::badbit);
18190 std::swap(this->
ptr,
obj.ptr);
18213 os.setstate(std::ios_base::badbit);
18234 std::swap(this->
ptr,
obj.ptr);
18257 os.setstate(std::ios_base::badbit);