#ifndef ISL_CPP_CHECKED
#define ISL_CPP_CHECKED
-#include <isl/id.h>
-#include <isl/space.h>
-#include <isl/val.h>
-#include <isl/aff.h>
-#include <isl/set.h>
-#include <isl/id.h>
-#include <isl/map.h>
-#include <isl/vec.h>
-#include <isl/ilp.h>
-#include <isl/union_set.h>
-#include <isl/union_map.h>
-#include <isl/flow.h>
-#include <isl/schedule.h>
-#include <isl/schedule_node.h>
-#include <isl/ast_build.h>
-#include <isl/fixed_box.h>
-#include <isl/constraint.h>
-#include <isl/polynomial.h>
-#include <isl/mat.h>
-#include <isl/fixed_box.h>
#include <stdio.h>
#include <stdlib.h>
+#include <isl/set.h>
#include <functional>
+#include <memory>
+#include <ostream>
#include <string>
+#include <type_traits>
namespace isl {
-inline namespace noexceptions {
#define ISLPP_STRINGIZE_(X) #X
#define ISLPP_STRINGIZE(X) ISLPP_STRINGIZE_(X)
abort(); \
} while (0)
+/* Class used to check that isl::checked::boolean,
+ * isl::checked::stat and isl::checked::size values are checked for errors.
+ */
+struct checker {
+ bool checked = false;
+ ~checker() {
+ //ISLPP_ASSERT(checked, "IMPLEMENTATION ERROR: Unchecked state");
+ }
+};
+
class boolean {
private:
- mutable bool checked = false;
+ mutable std::shared_ptr<checker> check = std::make_shared<checker>();
isl_bool val;
friend boolean manage(isl_bool val);
boolean(isl_bool val): val(val) {}
public:
+ static boolean error() {
+ return boolean(isl_bool_error);
+ }
boolean()
: val(isl_bool_error) {}
- ~boolean() {
- // ISLPP_ASSERT(checked, "IMPLEMENTATION ERROR: Unchecked state");
- }
/* implicit */ boolean(bool val)
: val(val ? isl_bool_true : isl_bool_false) {}
- bool is_error() const { checked = true; return val == isl_bool_error; }
- bool is_false() const { checked = true; return val == isl_bool_false; }
- bool is_true() const { checked = true; return val == isl_bool_true; }
+ isl_bool release() {
+ auto tmp = val;
+ val = isl_bool_error;
+ check->checked = true;
+ return tmp;
+ }
+
+ bool is_error() const { check->checked = true; return val == isl_bool_error; }
+ bool is_false() const { check->checked = true; return val == isl_bool_false; }
+ bool is_true() const { check->checked = true; return val == isl_bool_true; }
operator bool() const {
- // ISLPP_ASSERT(checked, "IMPLEMENTATION ERROR: Unchecked error state");
+ //ISLPP_ASSERT(check->checked, "IMPLEMENTATION ERROR: Unchecked error state");
ISLPP_ASSERT(!is_error(), "IMPLEMENTATION ERROR: Unhandled error state");
return is_true();
}
+ boolean negate() {
+ if (val == isl_bool_true)
+ val = isl_bool_false;
+ else if (val == isl_bool_false)
+ val = isl_bool_true;
+ return *this;
+ }
+
boolean operator!() const {
- if (is_error())
- return *this;
- return !is_true();
+ return boolean(*this).negate();
}
};
*/
class stat {
private:
- mutable bool checked = false;
+ mutable std::shared_ptr<checker> check = std::make_shared<checker>();
isl_stat val;
friend stat manage(isl_stat val);
+ stat(isl_stat val) : val(val) {}
public:
- constexpr stat(isl_stat val) : val(val) {}
static stat ok() {
return stat(isl_stat_ok);
}
return stat(isl_stat_error);
}
stat() : val(isl_stat_error) {}
- ~stat() {
- // ISLPP_ASSERT(checked, "IMPLEMENTATION ERROR: Unchecked state");
- }
isl_stat release() {
- checked = true;
+ check->checked = true;
return val;
}
bool is_error() const {
- checked = true;
+ check->checked = true;
return val == isl_stat_error;
}
bool is_ok() const {
- checked = true;
+ check->checked = true;
return val == isl_stat_ok;
}
};
-
inline stat manage(isl_stat val)
{
return stat(val);
}
+/* Class encapsulating an isl_size value.
+ */
+class size {
+private:
+ mutable std::shared_ptr<checker> check = std::make_shared<checker>();
+ isl_size val;
+
+ friend size manage(isl_size val);
+ size(isl_size val) : val(val) {}
+public:
+ size() : val(isl_size_error) {}
+
+ isl_size release() {
+ auto tmp = val;
+ val = isl_size_error;
+ check->checked = true;
+ return tmp;
+ }
+
+ bool is_error() const {
+ check->checked = true;
+ return val == isl_size_error;
+ }
+
+ explicit operator unsigned() const {
+ ISLPP_ASSERT(check->checked,
+ "IMPLEMENTATION ERROR: Unchecked error state");
+ ISLPP_ASSERT(!is_error(),
+ "IMPLEMENTATION ERROR: Unhandled error state");
+ return val;
+ }
+};
+
+inline size manage(isl_size val)
+{
+ return size(val);
+}
+
enum class dim {
cst = isl_dim_cst,
param = isl_dim_param,
all = isl_dim_all
};
-}
} // namespace isl
-namespace isl {
+#include <isl/id.h>
+#include <isl/space.h>
+#include <isl/val.h>
+#include <isl/aff.h>
+#include <isl/set.h>
+#include <isl/map.h>
+#include <isl/ilp.h>
+#include <isl/constraint.h>
+#include <isl/union_set.h>
+#include <isl/union_map.h>
+#include <isl/flow.h>
+#include <isl/schedule.h>
+#include <isl/schedule_node.h>
+#include <isl/ast_build.h>
+#include <isl/fixed_box.h>
-inline namespace noexceptions {
+namespace isl {
// forward declarations
class aff;
class aff_list;
class ast_build;
class ast_expr;
-class ast_expr_list;
+class ast_expr_id;
+class ast_expr_int;
+class ast_expr_op;
+class ast_expr_op_access;
+class ast_expr_op_add;
+class ast_expr_op_address_of;
+class ast_expr_op_and;
+class ast_expr_op_and_then;
+class ast_expr_op_call;
+class ast_expr_op_cond;
+class ast_expr_op_div;
+class ast_expr_op_eq;
+class ast_expr_op_fdiv_q;
+class ast_expr_op_ge;
+class ast_expr_op_gt;
+class ast_expr_op_le;
+class ast_expr_op_lt;
+class ast_expr_op_max;
+class ast_expr_op_member;
+class ast_expr_op_min;
+class ast_expr_op_minus;
+class ast_expr_op_mul;
+class ast_expr_op_or;
+class ast_expr_op_or_else;
+class ast_expr_op_pdiv_q;
+class ast_expr_op_pdiv_r;
+class ast_expr_op_select;
+class ast_expr_op_sub;
+class ast_expr_op_zdiv_r;
class ast_node;
+class ast_node_block;
+class ast_node_for;
+class ast_node_if;
class ast_node_list;
+class ast_node_mark;
+class ast_node_user;
class basic_map;
class basic_map_list;
class basic_set;
class basic_set_list;
class constraint;
-class constraint_list;
class fixed_box;
class id;
class id_list;
class local_space;
class map;
class map_list;
-class mat;
class multi_aff;
class multi_id;
class multi_pw_aff;
class pw_aff_list;
class pw_multi_aff;
class pw_multi_aff_list;
-class pw_qpolynomial;
-class pw_qpolynomial_fold_list;
-class pw_qpolynomial_list;
-class qpolynomial;
-class qpolynomial_list;
class schedule;
class schedule_constraints;
class schedule_node;
+class schedule_node_band;
+class schedule_node_context;
+class schedule_node_domain;
+class schedule_node_expansion;
+class schedule_node_extension;
+class schedule_node_filter;
+class schedule_node_guard;
+class schedule_node_leaf;
+class schedule_node_mark;
+class schedule_node_sequence;
+class schedule_node_set;
class set;
class set_list;
class space;
-class term;
class union_access_info;
class union_flow;
class union_map;
-class union_map_list;
class union_pw_aff;
class union_pw_aff_list;
class union_pw_multi_aff;
-class union_pw_multi_aff_list;
-class union_pw_qpolynomial;
class union_set;
class union_set_list;
class val;
class val_list;
-class vec;
// declarations for isl::aff
inline aff manage(__isl_take isl_aff *ptr);
friend inline aff manage(__isl_take isl_aff *ptr);
friend inline aff manage_copy(__isl_keep isl_aff *ptr);
+protected:
isl_aff *ptr = nullptr;
inline explicit aff(__isl_take isl_aff *ptr);
inline __isl_give isl_aff *release();
inline bool is_null() const;
inline isl::ctx ctx() const;
- inline void dump() const;
inline isl::aff add(isl::aff aff2) const;
- inline isl::aff add_coefficient_si(isl::dim type, int pos, int v) const;
- inline isl::aff add_coefficient_val(isl::dim type, int pos, isl::val v) const;
+ inline isl::multi_aff add(const isl::multi_aff &multi2) const;
+ inline isl::multi_pw_aff add(const isl::multi_pw_aff &multi2) const;
+ inline isl::multi_union_pw_aff add(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::pw_aff add(const isl::pw_aff &pwaff2) const;
+ inline isl::pw_multi_aff add(const isl::pw_multi_aff &pma2) const;
+ inline isl::union_pw_aff add(const isl::union_pw_aff &upa2) const;
+ inline isl::union_pw_multi_aff add(const isl::union_pw_multi_aff &upma2) const;
inline isl::aff add_constant(isl::val v) const;
- inline isl::aff add_constant_num_si(int v) const;
+ inline isl::aff add_constant(long v) const;
+ inline isl::multi_aff add_constant(const isl::multi_val &mv) const;
inline isl::aff add_constant_si(int v) const;
- inline isl::aff add_dims(isl::dim type, unsigned int n) const;
- inline isl::aff align_params(isl::space model) const;
+ inline isl::pw_aff add_dims(isl::dim type, unsigned int n) const;
+ inline isl::union_pw_multi_aff add_pw_multi_aff(const isl::pw_multi_aff &pma) const;
+ inline isl::union_pw_multi_aff apply(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::aff as_aff() const;
+ inline isl::map as_map() const;
+ inline isl::multi_aff as_multi_aff() const;
+ inline isl::multi_union_pw_aff as_multi_union_pw_aff() const;
+ inline isl::pw_multi_aff as_pw_multi_aff() const;
+ inline isl::set as_set() const;
+ inline isl::union_map as_union_map() const;
+ inline isl::aff at(int pos) const;
inline isl::basic_set bind(isl::id id) const;
+ inline isl::basic_set bind(const std::string &id) const;
+ inline isl::basic_set bind(const isl::multi_id &tuple) const;
+ inline isl::pw_aff bind_domain(const isl::multi_id &tuple) const;
+ inline isl::pw_aff bind_domain_wrapped_domain(const isl::multi_id &tuple) const;
inline isl::aff ceil() const;
- inline int coefficient_sgn(isl::dim type, int pos) const;
- inline isl_size dim(isl::dim type) const;
+ inline isl::pw_aff coalesce() const;
+ inline isl::pw_aff cond(const isl::pw_aff &pwaff_true, const isl::pw_aff &pwaff_false) const;
+ inline isl::multi_val constant_multi_val() const;
+ inline isl::val constant_val() const;
+ inline isl::val get_constant_val() const;
+ inline isl::val denominator_val() const;
+ inline isl::val get_denominator_val() const;
+ inline class size dim(isl::dim type) const;
+ inline isl::id dim_id(isl::dim type, unsigned int pos) const;
inline isl::aff div(isl::aff aff2) const;
- inline isl::aff drop_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::basic_set eq_basic_set(isl::aff aff2) const;
+ inline isl::pw_aff div(const isl::pw_aff &pa2) const;
+ inline isl::set domain() const;
+ inline isl::space domain_space() const;
+ inline isl::pw_multi_aff drop_dims(isl::dim type, unsigned int first, unsigned int n) const;
inline isl::set eq_set(isl::aff aff2) const;
+ inline isl::set eq_set(const isl::pw_aff &pwaff2) const;
inline isl::val eval(isl::point pnt) const;
- inline int find_dim_by_name(isl::dim type, const std::string &name) const;
+ inline isl::pw_multi_aff extract_pw_multi_aff(const isl::space &space) const;
+ inline isl::multi_aff flat_range_product(const isl::multi_aff &multi2) const;
+ inline isl::multi_pw_aff flat_range_product(const isl::multi_pw_aff &multi2) const;
+ inline isl::multi_union_pw_aff flat_range_product(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::pw_multi_aff flat_range_product(const isl::pw_multi_aff &pma2) const;
+ inline isl::union_pw_multi_aff flat_range_product(const isl::union_pw_multi_aff &upma2) const;
inline isl::aff floor() const;
- inline isl::aff from_range() const;
- inline isl::basic_set ge_basic_set(isl::aff aff2) const;
+ inline stat foreach_piece(const std::function<stat(isl::set, isl::aff)> &fn) const;
+ inline stat foreach_piece(const std::function<stat(isl::set, isl::multi_aff)> &fn) const;
+ inline stat foreach_pw_aff(const std::function<stat(isl::pw_aff)> &fn) const;
inline isl::set ge_set(isl::aff aff2) const;
- inline isl::val get_coefficient_val(isl::dim type, int pos) const;
- inline isl::val get_constant_val() const;
- inline isl::val get_denominator_val() const;
- inline std::string get_dim_name(isl::dim type, unsigned int pos) const;
- inline isl::aff get_div(int pos) const;
- inline isl::local_space get_domain_local_space() const;
- inline isl::space get_domain_space() const;
- inline uint32_t get_hash() const;
- inline isl::local_space get_local_space() const;
- inline isl::space get_space() const;
+ inline isl::set ge_set(const isl::pw_aff &pwaff2) const;
inline isl::aff gist(isl::set context) const;
- inline isl::aff gist_params(isl::set context) const;
- inline isl::basic_set gt_basic_set(isl::aff aff2) const;
+ inline isl::union_pw_aff gist(const isl::union_set &context) const;
+ inline isl::aff gist(const isl::basic_set &context) const;
+ inline isl::aff gist(const isl::point &context) const;
inline isl::set gt_set(isl::aff aff2) const;
- inline isl::aff insert_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline boolean involves_dims(isl::dim type, unsigned int first, unsigned int n) const;
+ inline isl::set gt_set(const isl::pw_aff &pwaff2) const;
+ inline boolean has_range_tuple_id() const;
+ inline isl::multi_aff identity() const;
+ inline isl::pw_aff insert_domain(const isl::space &domain) const;
+ inline isl::pw_aff intersect_domain(const isl::set &set) const;
+ inline isl::union_pw_aff intersect_domain(const isl::space &space) const;
+ inline isl::union_pw_aff intersect_domain(const isl::union_set &uset) const;
+ inline isl::union_pw_aff intersect_domain_wrapped_domain(const isl::union_set &uset) const;
+ inline isl::union_pw_aff intersect_domain_wrapped_range(const isl::union_set &uset) const;
+ inline isl::pw_aff intersect_params(const isl::set &set) const;
inline boolean involves_locals() const;
+ inline boolean involves_nan() const;
+ inline boolean involves_param(const isl::id &id) const;
+ inline boolean involves_param(const std::string &id) const;
+ inline boolean involves_param(const isl::id_list &list) const;
inline boolean is_cst() const;
- inline boolean is_nan() const;
- inline isl::basic_set le_basic_set(isl::aff aff2) const;
+ inline boolean is_equal(const isl::pw_aff &pa2) const;
+ inline boolean isa_aff() const;
+ inline boolean isa_multi_aff() const;
+ inline boolean isa_pw_multi_aff() const;
inline isl::set le_set(isl::aff aff2) const;
- inline isl::basic_set lt_basic_set(isl::aff aff2) const;
+ inline isl::set le_set(const isl::pw_aff &pwaff2) const;
+ inline isl::aff_list list() const;
inline isl::set lt_set(isl::aff aff2) const;
+ inline isl::set lt_set(const isl::pw_aff &pwaff2) const;
+ inline isl::multi_pw_aff max(const isl::multi_pw_aff &multi2) const;
+ inline isl::pw_aff max(const isl::pw_aff &pwaff2) const;
+ inline isl::multi_val max_multi_val() const;
+ inline isl::multi_pw_aff min(const isl::multi_pw_aff &multi2) const;
+ inline isl::pw_aff min(const isl::pw_aff &pwaff2) const;
+ inline isl::multi_val min_multi_val() const;
inline isl::aff mod(isl::val mod) const;
- inline isl::aff move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const;
+ inline isl::aff mod(long mod) const;
inline isl::aff mul(isl::aff aff2) const;
- static inline isl::aff nan_on_domain(isl::local_space ls);
- static inline isl::aff nan_on_domain_space(isl::space space);
+ inline isl::pw_aff mul(const isl::pw_aff &pwaff2) const;
+ inline class size n_piece() const;
inline isl::set ne_set(isl::aff aff2) const;
+ inline isl::set ne_set(const isl::pw_aff &pwaff2) const;
inline isl::aff neg() const;
- inline isl::basic_set neg_basic_set() const;
- static inline isl::aff param_on_domain_space_id(isl::space space, isl::id id);
- inline boolean plain_is_equal(const isl::aff &aff2) const;
- inline boolean plain_is_zero() const;
- inline isl::aff project_domain_on_params() const;
+ inline boolean plain_is_empty() const;
+ inline boolean plain_is_equal(const isl::multi_aff &multi2) const;
+ inline boolean plain_is_equal(const isl::multi_pw_aff &multi2) const;
+ inline boolean plain_is_equal(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::pw_multi_aff preimage_domain_wrapped_domain(const isl::pw_multi_aff &pma2) const;
+ inline isl::union_pw_multi_aff preimage_domain_wrapped_domain(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::multi_aff product(const isl::multi_aff &multi2) const;
+ inline isl::multi_pw_aff product(const isl::multi_pw_aff &multi2) const;
+ inline isl::pw_multi_aff product(const isl::pw_multi_aff &pma2) const;
inline isl::aff pullback(isl::multi_aff ma) const;
- inline isl::aff pullback_aff(isl::aff aff2) const;
+ inline isl::pw_aff pullback(const isl::multi_pw_aff &mpa) const;
+ inline isl::pw_aff pullback(const isl::pw_multi_aff &pma) const;
+ inline isl::union_pw_aff pullback(const isl::union_pw_multi_aff &upma) const;
+ inline isl::aff pullback(const isl::aff &ma) const;
+ inline isl::pw_multi_aff_list pw_multi_aff_list() const;
+ inline isl::pw_multi_aff range_factor_domain() const;
+ inline isl::pw_multi_aff range_factor_range() const;
+ inline isl::multi_aff range_product(const isl::multi_aff &multi2) const;
+ inline isl::multi_pw_aff range_product(const isl::multi_pw_aff &multi2) const;
+ inline isl::multi_union_pw_aff range_product(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::pw_multi_aff range_product(const isl::pw_multi_aff &pma2) const;
+ inline isl::union_pw_multi_aff range_product(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::id range_tuple_id() const;
+ inline isl::multi_aff reset_range_tuple_id() const;
+ inline isl::multi_aff reset_tuple_id(isl::dim type) const;
inline isl::aff scale(isl::val v) const;
+ inline isl::aff scale(long v) const;
+ inline isl::multi_aff scale(const isl::multi_val &mv) const;
inline isl::aff scale_down(isl::val v) const;
- inline isl::aff scale_down_ui(unsigned int f) const;
- inline isl::aff set_coefficient_si(isl::dim type, int pos, int v) const;
- inline isl::aff set_coefficient_val(isl::dim type, int pos, isl::val v) const;
+ inline isl::aff scale_down(long v) const;
+ inline isl::multi_aff scale_down(const isl::multi_val &mv) const;
+ inline isl::multi_aff set_aff(int pos, const isl::aff &el) const;
+ inline isl::multi_aff set_at(int pos, const isl::aff &el) const;
+ inline isl::multi_pw_aff set_at(int pos, const isl::pw_aff &el) const;
+ inline isl::multi_union_pw_aff set_at(int pos, const isl::union_pw_aff &el) const;
inline isl::aff set_constant_si(int v) const;
- inline isl::aff set_constant_val(isl::val v) const;
- inline isl::aff set_dim_id(isl::dim type, unsigned int pos, isl::id id) const;
- inline isl::aff set_tuple_id(isl::dim type, isl::id id) const;
+ inline isl::multi_pw_aff set_pw_aff(int pos, const isl::pw_aff &el) const;
+ inline isl::pw_multi_aff set_pw_aff(unsigned int pos, const isl::pw_aff &pa) const;
+ inline isl::multi_aff set_range_tuple(const isl::id &id) const;
+ inline isl::multi_aff set_range_tuple(const std::string &id) const;
+ inline isl::pw_aff set_tuple_id(isl::dim type, const isl::id &id) const;
+ inline isl::pw_aff set_tuple_id(isl::dim type, const std::string &id) const;
+ inline isl::multi_union_pw_aff set_union_pw_aff(int pos, const isl::union_pw_aff &el) const;
+ inline class size size() const;
+ inline isl::space space() const;
inline isl::aff sub(isl::aff aff2) const;
+ inline isl::multi_aff sub(const isl::multi_aff &multi2) const;
+ inline isl::multi_pw_aff sub(const isl::multi_pw_aff &multi2) const;
+ inline isl::multi_union_pw_aff sub(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::pw_aff sub(const isl::pw_aff &pwaff2) const;
+ inline isl::pw_multi_aff sub(const isl::pw_multi_aff &pma2) const;
+ inline isl::union_pw_aff sub(const isl::union_pw_aff &upa2) const;
+ inline isl::union_pw_multi_aff sub(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::pw_aff subtract_domain(const isl::set &set) const;
+ inline isl::union_pw_aff subtract_domain(const isl::space &space) const;
+ inline isl::union_pw_aff subtract_domain(const isl::union_set &uset) const;
+ inline isl::pw_aff tdiv_q(const isl::pw_aff &pa2) const;
+ inline isl::pw_aff tdiv_r(const isl::pw_aff &pa2) const;
+ inline isl::aff_list to_list() const;
+ inline isl::multi_pw_aff to_multi_pw_aff() const;
+ inline isl::multi_union_pw_aff to_multi_union_pw_aff() const;
+ inline isl::pw_multi_aff to_pw_multi_aff() const;
+ inline isl::union_pw_aff to_union_pw_aff() const;
+ inline isl::union_pw_multi_aff to_union_pw_multi_aff() const;
+ inline isl::id tuple_id(isl::dim type) const;
inline isl::aff unbind_params_insert_domain(isl::multi_id domain) const;
- static inline isl::aff val_on_domain_space(isl::space space, isl::val val);
+ inline isl::multi_pw_aff union_add(const isl::multi_pw_aff &mpa2) const;
+ inline isl::multi_union_pw_aff union_add(const isl::multi_union_pw_aff &mupa2) const;
+ inline isl::pw_aff union_add(const isl::pw_aff &pwaff2) const;
+ inline isl::pw_multi_aff union_add(const isl::pw_multi_aff &pma2) const;
+ inline isl::union_pw_aff union_add(const isl::union_pw_aff &upa2) const;
+ inline isl::union_pw_multi_aff union_add(const isl::union_pw_multi_aff &upma2) const;
static inline isl::aff var_on_domain(isl::local_space ls, isl::dim type, unsigned int pos);
- inline isl::basic_set zero_basic_set() const;
static inline isl::aff zero_on_domain(isl::space space);
};
friend inline aff_list manage(__isl_take isl_aff_list *ptr);
friend inline aff_list manage_copy(__isl_keep isl_aff_list *ptr);
+protected:
isl_aff_list *ptr = nullptr;
inline explicit aff_list(__isl_take isl_aff_list *ptr);
public:
inline /* implicit */ aff_list();
inline /* implicit */ aff_list(const aff_list &obj);
+ inline explicit aff_list(isl::ctx ctx, int n);
+ inline explicit aff_list(isl::aff el);
+ inline explicit aff_list(isl::ctx ctx, const std::string &str);
inline aff_list &operator=(aff_list obj);
inline ~aff_list();
inline __isl_give isl_aff_list *copy() const &;
inline __isl_give isl_aff_list *release();
inline bool is_null() const;
inline isl::ctx ctx() const;
- inline void dump() const;
inline isl::aff_list add(isl::aff el) const;
- static inline isl::aff_list alloc(isl::ctx ctx, int n);
+ inline isl::aff at(int index) const;
+ inline isl::aff get_at(int index) const;
inline isl::aff_list clear() const;
inline isl::aff_list concat(isl::aff_list list2) const;
inline isl::aff_list drop(unsigned int first, unsigned int n) const;
- inline stat foreach(const std::function<stat(aff)> &fn) const;
- static inline isl::aff_list from_aff(isl::aff el);
- inline isl::aff get_aff(int index) const;
- inline isl::aff get_at(int index) const;
+ inline stat foreach(const std::function<stat(isl::aff)> &fn) const;
inline isl::aff_list insert(unsigned int pos, isl::aff el) const;
- inline isl_size n_aff() const;
- inline isl::aff_list reverse() const;
- inline isl::aff_list set_aff(int index, isl::aff el) const;
- inline isl_size size() const;
- inline isl::aff_list swap(unsigned int pos1, unsigned int pos2) const;
+ inline class size size() const;
};
// declarations for isl::ast_build
friend inline ast_build manage(__isl_take isl_ast_build *ptr);
friend inline ast_build manage_copy(__isl_keep isl_ast_build *ptr);
+protected:
isl_ast_build *ptr = nullptr;
inline explicit ast_build(__isl_take isl_ast_build *ptr);
inline bool is_null() const;
inline isl::ctx ctx() const;
+private:
+ inline ast_build ©_callbacks(const ast_build &obj);
+ struct at_each_domain_data {
+ std::function<isl::ast_node(isl::ast_node, isl::ast_build)> func;
+ };
+ std::shared_ptr<at_each_domain_data> at_each_domain_data;
+ static inline isl_ast_node *at_each_domain(isl_ast_node *arg_0, isl_ast_build *arg_1, void *arg_2);
+ inline void set_at_each_domain_data(const std::function<isl::ast_node(isl::ast_node, isl::ast_build)> &fn);
+public:
+ inline isl::ast_build set_at_each_domain(const std::function<isl::ast_node(isl::ast_node, isl::ast_build)> &fn) const;
inline isl::ast_expr access_from(isl::multi_pw_aff mpa) const;
inline isl::ast_expr access_from(isl::pw_multi_aff pma) const;
- inline isl::ast_node ast_from_schedule(isl::union_map schedule) const;
inline isl::ast_expr call_from(isl::multi_pw_aff mpa) const;
inline isl::ast_expr call_from(isl::pw_multi_aff pma) const;
inline isl::ast_expr expr_from(isl::pw_aff pa) const;
inline isl::ast_expr expr_from(isl::set set) const;
static inline isl::ast_build from_context(isl::set set);
- inline isl::union_map get_schedule() const;
- inline isl::space get_schedule_space() const;
inline isl::ast_node node_from(isl::schedule schedule) const;
inline isl::ast_node node_from_schedule_map(isl::union_map schedule) const;
inline isl::ast_build restrict(isl::set set) const;
+ inline isl::union_map schedule() const;
+ inline isl::union_map get_schedule() const;
};
// declarations for isl::ast_expr
friend inline ast_expr manage(__isl_take isl_ast_expr *ptr);
friend inline ast_expr manage_copy(__isl_keep isl_ast_expr *ptr);
+protected:
isl_ast_expr *ptr = nullptr;
inline explicit ast_expr(__isl_take isl_ast_expr *ptr);
inline __isl_keep isl_ast_expr *get() const;
inline __isl_give isl_ast_expr *release();
inline bool is_null() const;
+private:
+ template <typename T,
+ typename = typename std::enable_if<std::is_same<
+ const decltype(isl_ast_expr_get_type(NULL)),
+ const T>::value>::type>
+ inline boolean isa_type(T subtype) const;
+public:
+ template <class T> inline boolean isa() const;
+ template <class T> inline T as() const;
inline isl::ctx ctx() const;
- inline void dump() const;
- inline isl::ast_expr access(isl::ast_expr_list indices) const;
inline isl::ast_expr add(isl::ast_expr expr2) const;
inline isl::ast_expr address_of() const;
- inline isl::ast_expr call(isl::ast_expr_list arguments) const;
- inline isl::ast_expr div(isl::ast_expr expr2) const;
inline isl::ast_expr eq(isl::ast_expr expr2) const;
- static inline isl::ast_expr from_id(isl::id id);
static inline isl::ast_expr from_val(isl::val v);
- inline isl::ast_expr ge(isl::ast_expr expr2) const;
+ inline isl::id id() const;
inline isl::id get_id() const;
- inline isl::ast_expr get_op_arg(int pos) const;
- inline isl_size get_op_n_arg() const;
- inline isl::val get_val() const;
- inline isl::ast_expr gt(isl::ast_expr expr2) const;
- inline isl::id id_get_id() const;
- inline isl::val int_get_val() const;
- inline boolean is_equal(const isl::ast_expr &expr2) const;
inline isl::ast_expr le(isl::ast_expr expr2) const;
- inline isl::ast_expr lt(isl::ast_expr expr2) const;
inline isl::ast_expr mul(isl::ast_expr expr2) const;
- inline isl::ast_expr neg() const;
- inline isl::ast_expr op_get_arg(int pos) const;
- inline isl_size op_get_n_arg() const;
- inline isl::ast_expr pdiv_q(isl::ast_expr expr2) const;
- inline isl::ast_expr pdiv_r(isl::ast_expr expr2) const;
- inline isl::ast_expr set_op_arg(int pos, isl::ast_expr arg) const;
- inline isl::ast_expr sub(isl::ast_expr expr2) const;
- inline isl::ast_expr substitute_ids(isl::id_to_ast_expr id2expr) const;
+ inline isl::ast_expr op_arg(int pos) const;
+ inline isl::ast_expr get_op_arg(int pos) const;
inline std::string to_C_str() const;
+ inline isl::val val() const;
+ inline isl::val get_val() const;
};
-// declarations for isl::ast_expr_list
-inline ast_expr_list manage(__isl_take isl_ast_expr_list *ptr);
-inline ast_expr_list manage_copy(__isl_keep isl_ast_expr_list *ptr);
-
-class ast_expr_list {
- friend inline ast_expr_list manage(__isl_take isl_ast_expr_list *ptr);
- friend inline ast_expr_list manage_copy(__isl_keep isl_ast_expr_list *ptr);
+// declarations for isl::ast_expr_id
- isl_ast_expr_list *ptr = nullptr;
+class ast_expr_id : public ast_expr {
+ template <class T>
+ friend boolean ast_expr::isa() const;
+ friend ast_expr_id ast_expr::as<ast_expr_id>() const;
+ static const auto type = isl_ast_expr_id;
- inline explicit ast_expr_list(__isl_take isl_ast_expr_list *ptr);
+protected:
+ inline explicit ast_expr_id(__isl_take isl_ast_expr *ptr);
public:
- inline /* implicit */ ast_expr_list();
- inline /* implicit */ ast_expr_list(const ast_expr_list &obj);
- inline ast_expr_list &operator=(ast_expr_list obj);
- inline ~ast_expr_list();
- inline __isl_give isl_ast_expr_list *copy() const &;
- inline __isl_give isl_ast_expr_list *copy() && = delete;
- inline __isl_keep isl_ast_expr_list *get() const;
- inline __isl_give isl_ast_expr_list *release();
- inline bool is_null() const;
+ inline /* implicit */ ast_expr_id();
+ inline /* implicit */ ast_expr_id(const ast_expr_id &obj);
+ inline ast_expr_id &operator=(ast_expr_id obj);
inline isl::ctx ctx() const;
- inline void dump() const;
-
- inline isl::ast_expr_list add(isl::ast_expr el) const;
- static inline isl::ast_expr_list alloc(isl::ctx ctx, int n);
- inline isl::ast_expr_list clear() const;
- inline isl::ast_expr_list concat(isl::ast_expr_list list2) const;
- inline isl::ast_expr_list drop(unsigned int first, unsigned int n) const;
- inline stat foreach(const std::function<stat(ast_expr)> &fn) const;
- static inline isl::ast_expr_list from_ast_expr(isl::ast_expr el);
- inline isl::ast_expr get_ast_expr(int index) const;
- inline isl::ast_expr get_at(int index) const;
- inline isl::ast_expr_list insert(unsigned int pos, isl::ast_expr el) const;
- inline isl_size n_ast_expr() const;
- inline isl::ast_expr_list reverse() const;
- inline isl::ast_expr_list set_ast_expr(int index, isl::ast_expr el) const;
- inline isl_size size() const;
- inline isl::ast_expr_list swap(unsigned int pos1, unsigned int pos2) const;
-};
-// declarations for isl::ast_node
-inline ast_node manage(__isl_take isl_ast_node *ptr);
-inline ast_node manage_copy(__isl_keep isl_ast_node *ptr);
+ inline isl::id id() const;
+ inline isl::id get_id() const;
+};
-class ast_node {
- friend inline ast_node manage(__isl_take isl_ast_node *ptr);
- friend inline ast_node manage_copy(__isl_keep isl_ast_node *ptr);
+// declarations for isl::ast_expr_int
- isl_ast_node *ptr = nullptr;
+class ast_expr_int : public ast_expr {
+ template <class T>
+ friend boolean ast_expr::isa() const;
+ friend ast_expr_int ast_expr::as<ast_expr_int>() const;
+ static const auto type = isl_ast_expr_int;
- inline explicit ast_node(__isl_take isl_ast_node *ptr);
+protected:
+ inline explicit ast_expr_int(__isl_take isl_ast_expr *ptr);
public:
- inline /* implicit */ ast_node();
- inline /* implicit */ ast_node(const ast_node &obj);
- inline ast_node &operator=(ast_node obj);
- inline ~ast_node();
- inline __isl_give isl_ast_node *copy() const &;
- inline __isl_give isl_ast_node *copy() && = delete;
- inline __isl_keep isl_ast_node *get() const;
- inline __isl_give isl_ast_node *release();
- inline bool is_null() const;
+ inline /* implicit */ ast_expr_int();
+ inline /* implicit */ ast_expr_int(const ast_expr_int &obj);
+ inline ast_expr_int &operator=(ast_expr_int obj);
inline isl::ctx ctx() const;
- inline void dump() const;
-
- static inline isl::ast_node alloc_user(isl::ast_expr expr);
- inline isl::ast_node_list block_get_children() const;
- inline isl::ast_node for_get_body() const;
- inline isl::ast_expr for_get_cond() const;
- inline isl::ast_expr for_get_inc() const;
- inline isl::ast_expr for_get_init() const;
- inline isl::ast_expr for_get_iterator() const;
- inline boolean for_is_degenerate() const;
- inline isl::id get_annotation() const;
- inline isl::ast_expr if_get_cond() const;
- inline isl::ast_node if_get_else() const;
- inline isl::ast_node if_get_else_node() const;
- inline isl::ast_node if_get_then() const;
- inline isl::ast_node if_get_then_node() const;
- inline boolean if_has_else() const;
- inline boolean if_has_else_node() const;
- inline isl::id mark_get_id() const;
- inline isl::ast_node mark_get_node() const;
- inline isl::ast_node set_annotation(isl::id annotation) const;
- inline std::string to_C_str() const;
- inline isl::ast_expr user_get_expr() const;
-};
-// declarations for isl::ast_node_list
-inline ast_node_list manage(__isl_take isl_ast_node_list *ptr);
-inline ast_node_list manage_copy(__isl_keep isl_ast_node_list *ptr);
+ inline isl::val val() const;
+ inline isl::val get_val() const;
+};
-class ast_node_list {
- friend inline ast_node_list manage(__isl_take isl_ast_node_list *ptr);
- friend inline ast_node_list manage_copy(__isl_keep isl_ast_node_list *ptr);
+// declarations for isl::ast_expr_op
- isl_ast_node_list *ptr = nullptr;
+class ast_expr_op : public ast_expr {
+ template <class T>
+ friend boolean ast_expr::isa() const;
+ friend ast_expr_op ast_expr::as<ast_expr_op>() const;
+ static const auto type = isl_ast_expr_op;
- inline explicit ast_node_list(__isl_take isl_ast_node_list *ptr);
+protected:
+ inline explicit ast_expr_op(__isl_take isl_ast_expr *ptr);
public:
- inline /* implicit */ ast_node_list();
- inline /* implicit */ ast_node_list(const ast_node_list &obj);
- inline ast_node_list &operator=(ast_node_list obj);
- inline ~ast_node_list();
- inline __isl_give isl_ast_node_list *copy() const &;
- inline __isl_give isl_ast_node_list *copy() && = delete;
- inline __isl_keep isl_ast_node_list *get() const;
- inline __isl_give isl_ast_node_list *release();
- inline bool is_null() const;
+ inline /* implicit */ ast_expr_op();
+ inline /* implicit */ ast_expr_op(const ast_expr_op &obj);
+ inline ast_expr_op &operator=(ast_expr_op obj);
+private:
+ template <typename T,
+ typename = typename std::enable_if<std::is_same<
+ const decltype(isl_ast_expr_op_get_type(NULL)),
+ const T>::value>::type>
+ inline boolean isa_type(T subtype) const;
+public:
+ template <class T> inline boolean isa() const;
+ template <class T> inline T as() const;
inline isl::ctx ctx() const;
- inline void dump() const;
- inline isl::ast_node_list add(isl::ast_node el) const;
- static inline isl::ast_node_list alloc(isl::ctx ctx, int n);
- inline isl::ast_node_list clear() const;
- inline isl::ast_node_list concat(isl::ast_node_list list2) const;
- inline isl::ast_node_list drop(unsigned int first, unsigned int n) const;
- inline stat foreach(const std::function<stat(ast_node)> &fn) const;
- static inline isl::ast_node_list from_ast_node(isl::ast_node el);
- inline isl::ast_node get_ast_node(int index) const;
- inline isl::ast_node get_at(int index) const;
- inline isl::ast_node_list insert(unsigned int pos, isl::ast_node el) const;
- inline isl_size n_ast_node() const;
- inline isl::ast_node_list reverse() const;
- inline isl::ast_node_list set_ast_node(int index, isl::ast_node el) const;
- inline isl_size size() const;
- inline isl::ast_node_list swap(unsigned int pos1, unsigned int pos2) const;
+ inline isl::ast_expr arg(int pos) const;
+ inline isl::ast_expr get_arg(int pos) const;
+ inline class size n_arg() const;
+ inline class size get_n_arg() const;
};
-// declarations for isl::basic_map
-inline basic_map manage(__isl_take isl_basic_map *ptr);
-inline basic_map manage_copy(__isl_keep isl_basic_map *ptr);
-
-class basic_map {
- friend inline basic_map manage(__isl_take isl_basic_map *ptr);
- friend inline basic_map manage_copy(__isl_keep isl_basic_map *ptr);
+// declarations for isl::ast_expr_op_access
- isl_basic_map *ptr = nullptr;
+class ast_expr_op_access : public ast_expr_op {
+ template <class T>
+ friend boolean ast_expr_op::isa() const;
+ friend ast_expr_op_access ast_expr_op::as<ast_expr_op_access>() const;
+ static const auto type = isl_ast_expr_op_access;
- inline explicit basic_map(__isl_take isl_basic_map *ptr);
+protected:
+ inline explicit ast_expr_op_access(__isl_take isl_ast_expr *ptr);
public:
- inline /* implicit */ basic_map();
- inline /* implicit */ basic_map(const basic_map &obj);
- inline explicit basic_map(isl::ctx ctx, const std::string &str);
- inline basic_map &operator=(basic_map obj);
- inline ~basic_map();
- inline __isl_give isl_basic_map *copy() const &;
- inline __isl_give isl_basic_map *copy() && = delete;
- inline __isl_keep isl_basic_map *get() const;
- inline __isl_give isl_basic_map *release();
- inline bool is_null() const;
+ inline /* implicit */ ast_expr_op_access();
+ inline /* implicit */ ast_expr_op_access(const ast_expr_op_access &obj);
+ inline ast_expr_op_access &operator=(ast_expr_op_access obj);
inline isl::ctx ctx() const;
- inline void dump() const;
- inline isl::basic_map add_constraint(isl::constraint constraint) const;
- inline isl::basic_map add_dims(isl::dim type, unsigned int n) const;
- inline isl::basic_map affine_hull() const;
- inline isl::basic_map align_params(isl::space model) const;
- inline isl::basic_map apply_domain(isl::basic_map bmap2) const;
- inline isl::basic_map apply_range(isl::basic_map bmap2) const;
- inline boolean can_curry() const;
- inline boolean can_uncurry() const;
- inline boolean can_zip() const;
- inline isl::basic_map curry() const;
- inline isl::basic_set deltas() const;
- inline isl::basic_map deltas_map() const;
- inline isl::basic_map detect_equalities() const;
- inline isl_size dim(isl::dim type) const;
- inline isl::basic_set domain() const;
- inline isl::basic_map domain_map() const;
- inline isl::basic_map domain_product(isl::basic_map bmap2) const;
- inline isl::basic_map drop_constraints_involving_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::basic_map drop_constraints_not_involving_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::basic_map drop_unused_params() const;
- inline isl::basic_map eliminate(isl::dim type, unsigned int first, unsigned int n) const;
- static inline isl::basic_map empty(isl::space space);
- static inline isl::basic_map equal(isl::space space, unsigned int n_equal);
- inline isl::mat equalities_matrix(isl::dim c1, isl::dim c2, isl::dim c3, isl::dim c4, isl::dim c5) const;
- inline isl::basic_map equate(isl::dim type1, int pos1, isl::dim type2, int pos2) const;
- inline int find_dim_by_name(isl::dim type, const std::string &name) const;
- inline isl::basic_map fix_si(isl::dim type, unsigned int pos, int value) const;
- inline isl::basic_map fix_val(isl::dim type, unsigned int pos, isl::val v) const;
- inline isl::basic_map flat_product(isl::basic_map bmap2) const;
- inline isl::basic_map flat_range_product(isl::basic_map bmap2) const;
- inline isl::basic_map flatten() const;
- inline isl::basic_map flatten_domain() const;
- inline isl::basic_map flatten_range() const;
- inline stat foreach_constraint(const std::function<stat(constraint)> &fn) const;
- static inline isl::basic_map from_aff(isl::aff aff);
- static inline isl::basic_map from_aff_list(isl::space domain_space, isl::aff_list list);
- static inline isl::basic_map from_constraint(isl::constraint constraint);
- static inline isl::basic_map from_domain(isl::basic_set bset);
- static inline isl::basic_map from_domain_and_range(isl::basic_set domain, isl::basic_set range);
- static inline isl::basic_map from_multi_aff(isl::multi_aff maff);
- static inline isl::basic_map from_qpolynomial(isl::qpolynomial qp);
- static inline isl::basic_map from_range(isl::basic_set bset);
- inline isl::constraint_list get_constraint_list() const;
- inline std::string get_dim_name(isl::dim type, unsigned int pos) const;
- inline isl::aff get_div(int pos) const;
- inline isl::local_space get_local_space() const;
- inline isl::space get_space() const;
- inline std::string get_tuple_name(isl::dim type) const;
- inline isl::basic_map gist(isl::basic_map context) const;
- inline isl::basic_map gist_domain(isl::basic_set context) const;
- inline boolean has_dim_id(isl::dim type, unsigned int pos) const;
- static inline isl::basic_map identity(isl::space space);
- inline boolean image_is_bounded() const;
- inline isl::mat inequalities_matrix(isl::dim c1, isl::dim c2, isl::dim c3, isl::dim c4, isl::dim c5) const;
- inline isl::basic_map insert_dims(isl::dim type, unsigned int pos, unsigned int n) const;
- inline isl::basic_map intersect(isl::basic_map bmap2) const;
- inline isl::basic_map intersect_domain(isl::basic_set bset) const;
- inline isl::basic_map intersect_range(isl::basic_set bset) const;
- inline boolean involves_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline boolean is_disjoint(const isl::basic_map &bmap2) const;
- inline boolean is_empty() const;
- inline boolean is_equal(const isl::basic_map &bmap2) const;
- inline boolean is_rational() const;
- inline boolean is_single_valued() const;
- inline boolean is_strict_subset(const isl::basic_map &bmap2) const;
- inline boolean is_subset(const isl::basic_map &bmap2) const;
- inline boolean is_universe() const;
- static inline isl::basic_map less_at(isl::space space, unsigned int pos);
- inline isl::map lexmax() const;
- inline isl::map lexmin() const;
- inline isl::pw_multi_aff lexmin_pw_multi_aff() const;
- inline isl::basic_map lower_bound_si(isl::dim type, unsigned int pos, int value) const;
- static inline isl::basic_map more_at(isl::space space, unsigned int pos);
- inline isl::basic_map move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const;
- inline isl_size n_constraint() const;
- static inline isl::basic_map nat_universe(isl::space space);
- inline isl::basic_map neg() const;
- inline isl::basic_map order_ge(isl::dim type1, int pos1, isl::dim type2, int pos2) const;
- inline isl::basic_map order_gt(isl::dim type1, int pos1, isl::dim type2, int pos2) const;
- inline isl::val plain_get_val_if_fixed(isl::dim type, unsigned int pos) const;
- inline boolean plain_is_empty() const;
- inline boolean plain_is_universe() const;
- inline isl::basic_map preimage_domain_multi_aff(isl::multi_aff ma) const;
- inline isl::basic_map preimage_range_multi_aff(isl::multi_aff ma) const;
- inline isl::basic_map product(isl::basic_map bmap2) const;
- inline isl::basic_map project_out(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::basic_set range() const;
- inline isl::basic_map range_map() const;
- inline isl::basic_map range_product(isl::basic_map bmap2) const;
- inline isl::basic_map remove_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::basic_map remove_divs() const;
- inline isl::basic_map remove_divs_involving_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::basic_map remove_redundancies() const;
- inline isl::basic_map reverse() const;
- inline isl::basic_map sample() const;
- inline isl::basic_map set_tuple_id(isl::dim type, isl::id id) const;
- inline isl::basic_map set_tuple_name(isl::dim type, const std::string &s) const;
- inline isl::basic_map sum(isl::basic_map bmap2) const;
- inline isl::basic_map uncurry() const;
- inline isl::map unite(isl::basic_map bmap2) const;
- static inline isl::basic_map universe(isl::space space);
- inline isl::basic_map upper_bound_si(isl::dim type, unsigned int pos, int value) const;
- inline isl::basic_set wrap() const;
- inline isl::basic_map zip() const;
};
-// declarations for isl::basic_map_list
-inline basic_map_list manage(__isl_take isl_basic_map_list *ptr);
-inline basic_map_list manage_copy(__isl_keep isl_basic_map_list *ptr);
-
-class basic_map_list {
- friend inline basic_map_list manage(__isl_take isl_basic_map_list *ptr);
- friend inline basic_map_list manage_copy(__isl_keep isl_basic_map_list *ptr);
+// declarations for isl::ast_expr_op_add
- isl_basic_map_list *ptr = nullptr;
+class ast_expr_op_add : public ast_expr_op {
+ template <class T>
+ friend boolean ast_expr_op::isa() const;
+ friend ast_expr_op_add ast_expr_op::as<ast_expr_op_add>() const;
+ static const auto type = isl_ast_expr_op_add;
- inline explicit basic_map_list(__isl_take isl_basic_map_list *ptr);
+protected:
+ inline explicit ast_expr_op_add(__isl_take isl_ast_expr *ptr);
public:
- inline /* implicit */ basic_map_list();
- inline /* implicit */ basic_map_list(const basic_map_list &obj);
- inline basic_map_list &operator=(basic_map_list obj);
- inline ~basic_map_list();
- inline __isl_give isl_basic_map_list *copy() const &;
- inline __isl_give isl_basic_map_list *copy() && = delete;
- inline __isl_keep isl_basic_map_list *get() const;
- inline __isl_give isl_basic_map_list *release();
- inline bool is_null() const;
+ inline /* implicit */ ast_expr_op_add();
+ inline /* implicit */ ast_expr_op_add(const ast_expr_op_add &obj);
+ inline ast_expr_op_add &operator=(ast_expr_op_add obj);
inline isl::ctx ctx() const;
- inline void dump() const;
- inline isl::basic_map_list add(isl::basic_map el) const;
- static inline isl::basic_map_list alloc(isl::ctx ctx, int n);
- inline isl::basic_map_list clear() const;
- inline isl::basic_map_list concat(isl::basic_map_list list2) const;
- inline isl::basic_map_list drop(unsigned int first, unsigned int n) const;
- inline stat foreach(const std::function<stat(basic_map)> &fn) const;
- static inline isl::basic_map_list from_basic_map(isl::basic_map el);
- inline isl::basic_map get_at(int index) const;
- inline isl::basic_map get_basic_map(int index) const;
- inline isl::basic_map_list insert(unsigned int pos, isl::basic_map el) const;
- inline isl_size n_basic_map() const;
- inline isl::basic_map_list reverse() const;
- inline isl::basic_map_list set_basic_map(int index, isl::basic_map el) const;
- inline isl_size size() const;
- inline isl::basic_map_list swap(unsigned int pos1, unsigned int pos2) const;
};
-// declarations for isl::basic_set
-inline basic_set manage(__isl_take isl_basic_set *ptr);
-inline basic_set manage_copy(__isl_keep isl_basic_set *ptr);
-
-class basic_set {
- friend inline basic_set manage(__isl_take isl_basic_set *ptr);
- friend inline basic_set manage_copy(__isl_keep isl_basic_set *ptr);
+// declarations for isl::ast_expr_op_address_of
- isl_basic_set *ptr = nullptr;
+class ast_expr_op_address_of : public ast_expr_op {
+ template <class T>
+ friend boolean ast_expr_op::isa() const;
+ friend ast_expr_op_address_of ast_expr_op::as<ast_expr_op_address_of>() const;
+ static const auto type = isl_ast_expr_op_address_of;
- inline explicit basic_set(__isl_take isl_basic_set *ptr);
+protected:
+ inline explicit ast_expr_op_address_of(__isl_take isl_ast_expr *ptr);
public:
- inline /* implicit */ basic_set();
- inline /* implicit */ basic_set(const basic_set &obj);
- inline /* implicit */ basic_set(isl::point pnt);
- inline explicit basic_set(isl::ctx ctx, const std::string &str);
- inline basic_set &operator=(basic_set obj);
- inline ~basic_set();
- inline __isl_give isl_basic_set *copy() const &;
- inline __isl_give isl_basic_set *copy() && = delete;
- inline __isl_keep isl_basic_set *get() const;
- inline __isl_give isl_basic_set *release();
- inline bool is_null() const;
+ inline /* implicit */ ast_expr_op_address_of();
+ inline /* implicit */ ast_expr_op_address_of(const ast_expr_op_address_of &obj);
+ inline ast_expr_op_address_of &operator=(ast_expr_op_address_of obj);
inline isl::ctx ctx() const;
- inline void dump() const;
- inline isl::basic_set affine_hull() const;
- inline isl::basic_set align_params(isl::space model) const;
- inline isl::basic_set apply(isl::basic_map bmap) const;
- static inline isl::basic_set box_from_points(isl::point pnt1, isl::point pnt2);
- inline isl::basic_set coefficients() const;
- inline isl::basic_set detect_equalities() const;
- inline isl_size dim(isl::dim type) const;
- inline isl::val dim_max_val(int pos) const;
- inline isl::basic_set drop_constraints_involving_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::basic_set drop_constraints_not_involving_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::basic_set drop_unused_params() const;
- inline isl::basic_set eliminate(isl::dim type, unsigned int first, unsigned int n) const;
- static inline isl::basic_set empty(isl::space space);
- inline isl::mat equalities_matrix(isl::dim c1, isl::dim c2, isl::dim c3, isl::dim c4) const;
- inline isl::basic_set fix_si(isl::dim type, unsigned int pos, int value) const;
- inline isl::basic_set fix_val(isl::dim type, unsigned int pos, isl::val v) const;
- inline isl::basic_set flat_product(isl::basic_set bset2) const;
- inline isl::basic_set flatten() const;
- inline stat foreach_bound_pair(isl::dim type, unsigned int pos, const std::function<stat(constraint, constraint, basic_set)> &fn) const;
- inline stat foreach_constraint(const std::function<stat(constraint)> &fn) const;
- static inline isl::basic_set from_constraint(isl::constraint constraint);
- static inline isl::basic_set from_multi_aff(isl::multi_aff ma);
- inline isl::basic_set from_params() const;
- inline isl::constraint_list get_constraint_list() const;
- inline isl::id get_dim_id(isl::dim type, unsigned int pos) const;
- inline std::string get_dim_name(isl::dim type, unsigned int pos) const;
- inline isl::aff get_div(int pos) const;
- inline isl::local_space get_local_space() const;
- inline isl::space get_space() const;
- inline std::string get_tuple_name() const;
- inline isl::basic_set gist(isl::basic_set context) const;
- inline isl::mat inequalities_matrix(isl::dim c1, isl::dim c2, isl::dim c3, isl::dim c4) const;
- inline isl::basic_set insert_dims(isl::dim type, unsigned int pos, unsigned int n) const;
- inline isl::basic_set intersect(isl::basic_set bset2) const;
- inline isl::basic_set intersect_params(isl::basic_set bset2) const;
- inline boolean involves_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline boolean is_bounded() const;
- inline boolean is_disjoint(const isl::basic_set &bset2) const;
- inline boolean is_empty() const;
- inline boolean is_equal(const isl::basic_set &bset2) const;
- inline int is_rational() const;
- inline boolean is_subset(const isl::basic_set &bset2) const;
- inline boolean is_universe() const;
- inline boolean is_wrapping() const;
- inline isl::set lexmax() const;
- inline isl::set lexmin() const;
- inline isl::basic_set lower_bound_val(isl::dim type, unsigned int pos, isl::val value) const;
- inline isl::val max_val(const isl::aff &obj) const;
- inline isl::basic_set move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const;
- inline isl_size n_constraint() const;
- inline isl_size n_dim() const;
- static inline isl::basic_set nat_universe(isl::space space);
- inline isl::basic_set neg() const;
- inline isl::basic_set params() const;
- inline boolean plain_is_empty() const;
- inline boolean plain_is_equal(const isl::basic_set &bset2) const;
- inline boolean plain_is_universe() const;
- static inline isl::basic_set positive_orthant(isl::space space);
- inline isl::basic_set preimage_multi_aff(isl::multi_aff ma) const;
- inline isl::basic_set project_out(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::mat reduced_basis() const;
- inline isl::basic_set remove_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::basic_set remove_divs() const;
- inline isl::basic_set remove_divs_involving_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::basic_set remove_redundancies() const;
- inline isl::basic_set remove_unknown_divs() const;
- inline isl::basic_set sample() const;
- inline isl::point sample_point() const;
- inline isl::basic_set set_tuple_id(isl::id id) const;
- inline isl::basic_set set_tuple_name(const std::string &s) const;
- inline isl::basic_set solutions() const;
- inline isl::set unite(isl::basic_set bset2) const;
- static inline isl::basic_set universe(isl::space space);
- inline isl::basic_map unwrap() const;
- inline isl::basic_set upper_bound_val(isl::dim type, unsigned int pos, isl::val value) const;
};
-// declarations for isl::basic_set_list
-inline basic_set_list manage(__isl_take isl_basic_set_list *ptr);
-inline basic_set_list manage_copy(__isl_keep isl_basic_set_list *ptr);
-
-class basic_set_list {
- friend inline basic_set_list manage(__isl_take isl_basic_set_list *ptr);
- friend inline basic_set_list manage_copy(__isl_keep isl_basic_set_list *ptr);
+// declarations for isl::ast_expr_op_and
- isl_basic_set_list *ptr = nullptr;
+class ast_expr_op_and : public ast_expr_op {
+ template <class T>
+ friend boolean ast_expr_op::isa() const;
+ friend ast_expr_op_and ast_expr_op::as<ast_expr_op_and>() const;
+ static const auto type = isl_ast_expr_op_and;
- inline explicit basic_set_list(__isl_take isl_basic_set_list *ptr);
+protected:
+ inline explicit ast_expr_op_and(__isl_take isl_ast_expr *ptr);
public:
- inline /* implicit */ basic_set_list();
- inline /* implicit */ basic_set_list(const basic_set_list &obj);
- inline basic_set_list &operator=(basic_set_list obj);
- inline ~basic_set_list();
- inline __isl_give isl_basic_set_list *copy() const &;
- inline __isl_give isl_basic_set_list *copy() && = delete;
- inline __isl_keep isl_basic_set_list *get() const;
- inline __isl_give isl_basic_set_list *release();
- inline bool is_null() const;
+ inline /* implicit */ ast_expr_op_and();
+ inline /* implicit */ ast_expr_op_and(const ast_expr_op_and &obj);
+ inline ast_expr_op_and &operator=(ast_expr_op_and obj);
inline isl::ctx ctx() const;
- inline void dump() const;
- inline isl::basic_set_list add(isl::basic_set el) const;
- static inline isl::basic_set_list alloc(isl::ctx ctx, int n);
- inline isl::basic_set_list clear() const;
- inline isl::basic_set_list coefficients() const;
- inline isl::basic_set_list concat(isl::basic_set_list list2) const;
- inline isl::basic_set_list drop(unsigned int first, unsigned int n) const;
- inline stat foreach(const std::function<stat(basic_set)> &fn) const;
- static inline isl::basic_set_list from_basic_set(isl::basic_set el);
- inline isl::basic_set get_at(int index) const;
- inline isl::basic_set get_basic_set(int index) const;
- inline isl::basic_set_list insert(unsigned int pos, isl::basic_set el) const;
- inline isl_size n_basic_set() const;
- inline isl::basic_set_list reverse() const;
- inline isl::basic_set_list set_basic_set(int index, isl::basic_set el) const;
- inline isl_size size() const;
- inline isl::basic_set_list swap(unsigned int pos1, unsigned int pos2) const;
};
-// declarations for isl::constraint
-inline constraint manage(__isl_take isl_constraint *ptr);
-inline constraint manage_copy(__isl_keep isl_constraint *ptr);
-
-class constraint {
- friend inline constraint manage(__isl_take isl_constraint *ptr);
- friend inline constraint manage_copy(__isl_keep isl_constraint *ptr);
+// declarations for isl::ast_expr_op_and_then
- isl_constraint *ptr = nullptr;
+class ast_expr_op_and_then : public ast_expr_op {
+ template <class T>
+ friend boolean ast_expr_op::isa() const;
+ friend ast_expr_op_and_then ast_expr_op::as<ast_expr_op_and_then>() const;
+ static const auto type = isl_ast_expr_op_and_then;
- inline explicit constraint(__isl_take isl_constraint *ptr);
+protected:
+ inline explicit ast_expr_op_and_then(__isl_take isl_ast_expr *ptr);
public:
- inline /* implicit */ constraint();
- inline /* implicit */ constraint(const constraint &obj);
- inline constraint &operator=(constraint obj);
- inline ~constraint();
- inline __isl_give isl_constraint *copy() const &;
- inline __isl_give isl_constraint *copy() && = delete;
- inline __isl_keep isl_constraint *get() const;
- inline __isl_give isl_constraint *release();
- inline bool is_null() const;
+ inline /* implicit */ ast_expr_op_and_then();
+ inline /* implicit */ ast_expr_op_and_then(const ast_expr_op_and_then &obj);
+ inline ast_expr_op_and_then &operator=(ast_expr_op_and_then obj);
inline isl::ctx ctx() const;
- inline void dump() const;
- static inline isl::constraint alloc_equality(isl::local_space ls);
- static inline isl::constraint alloc_inequality(isl::local_space ls);
- inline int cmp_last_non_zero(const isl::constraint &c2) const;
- inline isl::aff get_aff() const;
- inline isl::aff get_bound(isl::dim type, int pos) const;
- inline isl::val get_coefficient_val(isl::dim type, int pos) const;
- inline isl::val get_constant_val() const;
- inline std::string get_dim_name(isl::dim type, unsigned int pos) const;
- inline isl::aff get_div(int pos) const;
- inline isl::local_space get_local_space() const;
- inline isl::space get_space() const;
- inline boolean involves_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline boolean is_div_constraint() const;
- inline boolean is_lower_bound(isl::dim type, unsigned int pos) const;
- inline boolean is_upper_bound(isl::dim type, unsigned int pos) const;
- inline int plain_cmp(const isl::constraint &c2) const;
- inline isl::constraint set_coefficient_si(isl::dim type, int pos, int v) const;
- inline isl::constraint set_coefficient_val(isl::dim type, int pos, isl::val v) const;
- inline isl::constraint set_constant_si(int v) const;
- inline isl::constraint set_constant_val(isl::val v) const;
};
-// declarations for isl::constraint_list
-inline constraint_list manage(__isl_take isl_constraint_list *ptr);
-inline constraint_list manage_copy(__isl_keep isl_constraint_list *ptr);
-
-class constraint_list {
- friend inline constraint_list manage(__isl_take isl_constraint_list *ptr);
- friend inline constraint_list manage_copy(__isl_keep isl_constraint_list *ptr);
+// declarations for isl::ast_expr_op_call
- isl_constraint_list *ptr = nullptr;
+class ast_expr_op_call : public ast_expr_op {
+ template <class T>
+ friend boolean ast_expr_op::isa() const;
+ friend ast_expr_op_call ast_expr_op::as<ast_expr_op_call>() const;
+ static const auto type = isl_ast_expr_op_call;
- inline explicit constraint_list(__isl_take isl_constraint_list *ptr);
+protected:
+ inline explicit ast_expr_op_call(__isl_take isl_ast_expr *ptr);
public:
- inline /* implicit */ constraint_list();
- inline /* implicit */ constraint_list(const constraint_list &obj);
- inline constraint_list &operator=(constraint_list obj);
- inline ~constraint_list();
- inline __isl_give isl_constraint_list *copy() const &;
- inline __isl_give isl_constraint_list *copy() && = delete;
- inline __isl_keep isl_constraint_list *get() const;
- inline __isl_give isl_constraint_list *release();
- inline bool is_null() const;
+ inline /* implicit */ ast_expr_op_call();
+ inline /* implicit */ ast_expr_op_call(const ast_expr_op_call &obj);
+ inline ast_expr_op_call &operator=(ast_expr_op_call obj);
inline isl::ctx ctx() const;
- inline void dump() const;
-
- inline isl::constraint_list add(isl::constraint el) const;
- static inline isl::constraint_list alloc(isl::ctx ctx, int n);
- inline isl::constraint_list clear() const;
- inline isl::constraint_list concat(isl::constraint_list list2) const;
- inline isl::constraint_list drop(unsigned int first, unsigned int n) const;
- inline stat foreach(const std::function<stat(constraint)> &fn) const;
- static inline isl::constraint_list from_constraint(isl::constraint el);
- inline isl::constraint get_at(int index) const;
- inline isl::constraint get_constraint(int index) const;
- inline isl::constraint_list insert(unsigned int pos, isl::constraint el) const;
- inline isl_size n_constraint() const;
- inline isl::constraint_list reverse() const;
- inline isl::constraint_list set_constraint(int index, isl::constraint el) const;
- inline isl_size size() const;
- inline isl::constraint_list swap(unsigned int pos1, unsigned int pos2) const;
-};
-// declarations for isl::fixed_box
-inline fixed_box manage(__isl_take isl_fixed_box *ptr);
-inline fixed_box manage_copy(__isl_keep isl_fixed_box *ptr);
+};
-class fixed_box {
- friend inline fixed_box manage(__isl_take isl_fixed_box *ptr);
- friend inline fixed_box manage_copy(__isl_keep isl_fixed_box *ptr);
+// declarations for isl::ast_expr_op_cond
- isl_fixed_box *ptr = nullptr;
+class ast_expr_op_cond : public ast_expr_op {
+ template <class T>
+ friend boolean ast_expr_op::isa() const;
+ friend ast_expr_op_cond ast_expr_op::as<ast_expr_op_cond>() const;
+ static const auto type = isl_ast_expr_op_cond;
- inline explicit fixed_box(__isl_take isl_fixed_box *ptr);
+protected:
+ inline explicit ast_expr_op_cond(__isl_take isl_ast_expr *ptr);
public:
- inline /* implicit */ fixed_box();
- inline /* implicit */ fixed_box(const fixed_box &obj);
- inline fixed_box &operator=(fixed_box obj);
- inline ~fixed_box();
- inline __isl_give isl_fixed_box *copy() const &;
- inline __isl_give isl_fixed_box *copy() && = delete;
- inline __isl_keep isl_fixed_box *get() const;
- inline __isl_give isl_fixed_box *release();
- inline bool is_null() const;
+ inline /* implicit */ ast_expr_op_cond();
+ inline /* implicit */ ast_expr_op_cond(const ast_expr_op_cond &obj);
+ inline ast_expr_op_cond &operator=(ast_expr_op_cond obj);
inline isl::ctx ctx() const;
- inline void dump() const;
- inline isl::multi_aff get_offset() const;
- inline isl::multi_val get_size() const;
- inline isl::space get_space() const;
- inline boolean is_valid() const;
};
-// declarations for isl::id
-inline id manage(__isl_take isl_id *ptr);
-inline id manage_copy(__isl_keep isl_id *ptr);
-
-class id {
- friend inline id manage(__isl_take isl_id *ptr);
- friend inline id manage_copy(__isl_keep isl_id *ptr);
+// declarations for isl::ast_expr_op_div
- isl_id *ptr = nullptr;
+class ast_expr_op_div : public ast_expr_op {
+ template <class T>
+ friend boolean ast_expr_op::isa() const;
+ friend ast_expr_op_div ast_expr_op::as<ast_expr_op_div>() const;
+ static const auto type = isl_ast_expr_op_div;
- inline explicit id(__isl_take isl_id *ptr);
+protected:
+ inline explicit ast_expr_op_div(__isl_take isl_ast_expr *ptr);
public:
- inline /* implicit */ id();
- inline /* implicit */ id(const id &obj);
- inline explicit id(isl::ctx ctx, const std::string &str);
- inline id &operator=(id obj);
- inline ~id();
- inline __isl_give isl_id *copy() const &;
- inline __isl_give isl_id *copy() && = delete;
- inline __isl_keep isl_id *get() const;
- inline __isl_give isl_id *release();
- inline bool is_null() const;
+ inline /* implicit */ ast_expr_op_div();
+ inline /* implicit */ ast_expr_op_div(const ast_expr_op_div &obj);
+ inline ast_expr_op_div &operator=(ast_expr_op_div obj);
inline isl::ctx ctx() const;
- inline void dump() const;
- static inline isl::id alloc(isl::ctx ctx, const std::string &name, void * user);
- inline uint32_t get_hash() const;
- inline std::string get_name() const;
- inline void * get_user() const;
};
-// declarations for isl::id_list
-inline id_list manage(__isl_take isl_id_list *ptr);
-inline id_list manage_copy(__isl_keep isl_id_list *ptr);
+// declarations for isl::ast_expr_op_eq
-class id_list {
- friend inline id_list manage(__isl_take isl_id_list *ptr);
- friend inline id_list manage_copy(__isl_keep isl_id_list *ptr);
+class ast_expr_op_eq : public ast_expr_op {
+ template <class T>
+ friend boolean ast_expr_op::isa() const;
+ friend ast_expr_op_eq ast_expr_op::as<ast_expr_op_eq>() const;
+ static const auto type = isl_ast_expr_op_eq;
- isl_id_list *ptr = nullptr;
+protected:
+ inline explicit ast_expr_op_eq(__isl_take isl_ast_expr *ptr);
- inline explicit id_list(__isl_take isl_id_list *ptr);
+public:
+ inline /* implicit */ ast_expr_op_eq();
+ inline /* implicit */ ast_expr_op_eq(const ast_expr_op_eq &obj);
+ inline ast_expr_op_eq &operator=(ast_expr_op_eq obj);
+ inline isl::ctx ctx() const;
+
+};
+
+// declarations for isl::ast_expr_op_fdiv_q
+
+class ast_expr_op_fdiv_q : public ast_expr_op {
+ template <class T>
+ friend boolean ast_expr_op::isa() const;
+ friend ast_expr_op_fdiv_q ast_expr_op::as<ast_expr_op_fdiv_q>() const;
+ static const auto type = isl_ast_expr_op_fdiv_q;
+
+protected:
+ inline explicit ast_expr_op_fdiv_q(__isl_take isl_ast_expr *ptr);
public:
- inline /* implicit */ id_list();
- inline /* implicit */ id_list(const id_list &obj);
- inline id_list &operator=(id_list obj);
- inline ~id_list();
- inline __isl_give isl_id_list *copy() const &;
- inline __isl_give isl_id_list *copy() && = delete;
- inline __isl_keep isl_id_list *get() const;
- inline __isl_give isl_id_list *release();
- inline bool is_null() const;
+ inline /* implicit */ ast_expr_op_fdiv_q();
+ inline /* implicit */ ast_expr_op_fdiv_q(const ast_expr_op_fdiv_q &obj);
+ inline ast_expr_op_fdiv_q &operator=(ast_expr_op_fdiv_q obj);
inline isl::ctx ctx() const;
- inline void dump() const;
- inline isl::id_list add(isl::id el) const;
- static inline isl::id_list alloc(isl::ctx ctx, int n);
- inline isl::id_list clear() const;
- inline isl::id_list concat(isl::id_list list2) const;
- inline isl::id_list drop(unsigned int first, unsigned int n) const;
- inline stat foreach(const std::function<stat(id)> &fn) const;
- static inline isl::id_list from_id(isl::id el);
- inline isl::id get_at(int index) const;
- inline isl::id get_id(int index) const;
- inline isl::id_list insert(unsigned int pos, isl::id el) const;
- inline isl_size n_id() const;
- inline isl::id_list reverse() const;
- inline isl::id_list set_id(int index, isl::id el) const;
- inline isl_size size() const;
- inline isl::id_list swap(unsigned int pos1, unsigned int pos2) const;
};
-// declarations for isl::id_to_ast_expr
-inline id_to_ast_expr manage(__isl_take isl_id_to_ast_expr *ptr);
-inline id_to_ast_expr manage_copy(__isl_keep isl_id_to_ast_expr *ptr);
+// declarations for isl::ast_expr_op_ge
-class id_to_ast_expr {
- friend inline id_to_ast_expr manage(__isl_take isl_id_to_ast_expr *ptr);
- friend inline id_to_ast_expr manage_copy(__isl_keep isl_id_to_ast_expr *ptr);
+class ast_expr_op_ge : public ast_expr_op {
+ template <class T>
+ friend boolean ast_expr_op::isa() const;
+ friend ast_expr_op_ge ast_expr_op::as<ast_expr_op_ge>() const;
+ static const auto type = isl_ast_expr_op_ge;
- isl_id_to_ast_expr *ptr = nullptr;
+protected:
+ inline explicit ast_expr_op_ge(__isl_take isl_ast_expr *ptr);
- inline explicit id_to_ast_expr(__isl_take isl_id_to_ast_expr *ptr);
+public:
+ inline /* implicit */ ast_expr_op_ge();
+ inline /* implicit */ ast_expr_op_ge(const ast_expr_op_ge &obj);
+ inline ast_expr_op_ge &operator=(ast_expr_op_ge obj);
+ inline isl::ctx ctx() const;
+
+};
+
+// declarations for isl::ast_expr_op_gt
+
+class ast_expr_op_gt : public ast_expr_op {
+ template <class T>
+ friend boolean ast_expr_op::isa() const;
+ friend ast_expr_op_gt ast_expr_op::as<ast_expr_op_gt>() const;
+ static const auto type = isl_ast_expr_op_gt;
+
+protected:
+ inline explicit ast_expr_op_gt(__isl_take isl_ast_expr *ptr);
public:
- inline /* implicit */ id_to_ast_expr();
- inline /* implicit */ id_to_ast_expr(const id_to_ast_expr &obj);
- inline id_to_ast_expr &operator=(id_to_ast_expr obj);
- inline ~id_to_ast_expr();
- inline __isl_give isl_id_to_ast_expr *copy() const &;
- inline __isl_give isl_id_to_ast_expr *copy() && = delete;
- inline __isl_keep isl_id_to_ast_expr *get() const;
- inline __isl_give isl_id_to_ast_expr *release();
- inline bool is_null() const;
+ inline /* implicit */ ast_expr_op_gt();
+ inline /* implicit */ ast_expr_op_gt(const ast_expr_op_gt &obj);
+ inline ast_expr_op_gt &operator=(ast_expr_op_gt obj);
inline isl::ctx ctx() const;
- inline void dump() const;
- static inline isl::id_to_ast_expr alloc(isl::ctx ctx, int min_size);
- inline isl::id_to_ast_expr drop(isl::id key) const;
- inline stat foreach(const std::function<stat(id, ast_expr)> &fn) const;
- inline isl::ast_expr get(isl::id key) const;
- inline boolean has(const isl::id &key) const;
- inline isl::id_to_ast_expr set(isl::id key, isl::ast_expr val) const;
};
-// declarations for isl::local_space
-inline local_space manage(__isl_take isl_local_space *ptr);
-inline local_space manage_copy(__isl_keep isl_local_space *ptr);
+// declarations for isl::ast_expr_op_le
-class local_space {
- friend inline local_space manage(__isl_take isl_local_space *ptr);
- friend inline local_space manage_copy(__isl_keep isl_local_space *ptr);
+class ast_expr_op_le : public ast_expr_op {
+ template <class T>
+ friend boolean ast_expr_op::isa() const;
+ friend ast_expr_op_le ast_expr_op::as<ast_expr_op_le>() const;
+ static const auto type = isl_ast_expr_op_le;
- isl_local_space *ptr = nullptr;
+protected:
+ inline explicit ast_expr_op_le(__isl_take isl_ast_expr *ptr);
- inline explicit local_space(__isl_take isl_local_space *ptr);
+public:
+ inline /* implicit */ ast_expr_op_le();
+ inline /* implicit */ ast_expr_op_le(const ast_expr_op_le &obj);
+ inline ast_expr_op_le &operator=(ast_expr_op_le obj);
+ inline isl::ctx ctx() const;
+
+};
+
+// declarations for isl::ast_expr_op_lt
+
+class ast_expr_op_lt : public ast_expr_op {
+ template <class T>
+ friend boolean ast_expr_op::isa() const;
+ friend ast_expr_op_lt ast_expr_op::as<ast_expr_op_lt>() const;
+ static const auto type = isl_ast_expr_op_lt;
+
+protected:
+ inline explicit ast_expr_op_lt(__isl_take isl_ast_expr *ptr);
public:
- inline /* implicit */ local_space();
- inline /* implicit */ local_space(const local_space &obj);
- inline explicit local_space(isl::space space);
- inline local_space &operator=(local_space obj);
- inline ~local_space();
- inline __isl_give isl_local_space *copy() const &;
- inline __isl_give isl_local_space *copy() && = delete;
- inline __isl_keep isl_local_space *get() const;
- inline __isl_give isl_local_space *release();
- inline bool is_null() const;
+ inline /* implicit */ ast_expr_op_lt();
+ inline /* implicit */ ast_expr_op_lt(const ast_expr_op_lt &obj);
+ inline ast_expr_op_lt &operator=(ast_expr_op_lt obj);
inline isl::ctx ctx() const;
- inline void dump() const;
-
- inline isl::local_space add_dims(isl::dim type, unsigned int n) const;
- inline isl_size dim(isl::dim type) const;
- inline isl::local_space domain() const;
- inline isl::local_space drop_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline int find_dim_by_name(isl::dim type, const std::string &name) const;
- inline isl::local_space flatten_domain() const;
- inline isl::local_space flatten_range() const;
- inline isl::local_space from_domain() const;
- inline isl::id get_dim_id(isl::dim type, unsigned int pos) const;
- inline std::string get_dim_name(isl::dim type, unsigned int pos) const;
- inline isl::aff get_div(int pos) const;
- inline isl::space get_space() const;
- inline boolean has_dim_id(isl::dim type, unsigned int pos) const;
- inline boolean has_dim_name(isl::dim type, unsigned int pos) const;
- inline isl::local_space insert_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::local_space intersect(isl::local_space ls2) const;
- inline boolean is_equal(const isl::local_space &ls2) const;
- inline boolean is_params() const;
- inline boolean is_set() const;
- inline isl::local_space range() const;
- inline isl::local_space set_dim_id(isl::dim type, unsigned int pos, isl::id id) const;
- inline isl::local_space set_from_params() const;
- inline isl::local_space set_tuple_id(isl::dim type, isl::id id) const;
- inline isl::local_space wrap() const;
+
};
-// declarations for isl::map
-inline map manage(__isl_take isl_map *ptr);
-inline map manage_copy(__isl_keep isl_map *ptr);
+// declarations for isl::ast_expr_op_max
-class map {
- friend inline map manage(__isl_take isl_map *ptr);
- friend inline map manage_copy(__isl_keep isl_map *ptr);
+class ast_expr_op_max : public ast_expr_op {
+ template <class T>
+ friend boolean ast_expr_op::isa() const;
+ friend ast_expr_op_max ast_expr_op::as<ast_expr_op_max>() const;
+ static const auto type = isl_ast_expr_op_max;
- isl_map *ptr = nullptr;
+protected:
+ inline explicit ast_expr_op_max(__isl_take isl_ast_expr *ptr);
- inline explicit map(__isl_take isl_map *ptr);
+public:
+ inline /* implicit */ ast_expr_op_max();
+ inline /* implicit */ ast_expr_op_max(const ast_expr_op_max &obj);
+ inline ast_expr_op_max &operator=(ast_expr_op_max obj);
+ inline isl::ctx ctx() const;
+
+};
+
+// declarations for isl::ast_expr_op_member
+
+class ast_expr_op_member : public ast_expr_op {
+ template <class T>
+ friend boolean ast_expr_op::isa() const;
+ friend ast_expr_op_member ast_expr_op::as<ast_expr_op_member>() const;
+ static const auto type = isl_ast_expr_op_member;
+
+protected:
+ inline explicit ast_expr_op_member(__isl_take isl_ast_expr *ptr);
public:
- inline /* implicit */ map();
- inline /* implicit */ map(const map &obj);
- inline /* implicit */ map(isl::basic_map bmap);
- inline explicit map(isl::ctx ctx, const std::string &str);
- inline map &operator=(map obj);
- inline ~map();
- inline __isl_give isl_map *copy() const &;
- inline __isl_give isl_map *copy() && = delete;
- inline __isl_keep isl_map *get() const;
- inline __isl_give isl_map *release();
- inline bool is_null() const;
+ inline /* implicit */ ast_expr_op_member();
+ inline /* implicit */ ast_expr_op_member(const ast_expr_op_member &obj);
+ inline ast_expr_op_member &operator=(ast_expr_op_member obj);
inline isl::ctx ctx() const;
- inline void dump() const;
- inline isl::map add_constraint(isl::constraint constraint) const;
- inline isl::map add_dims(isl::dim type, unsigned int n) const;
- inline isl::basic_map affine_hull() const;
- inline isl::map align_params(isl::space model) const;
- inline isl::map apply_domain(isl::map map2) const;
- inline isl::map apply_range(isl::map map2) const;
- inline isl::set bind_domain(isl::multi_id tuple) const;
- inline isl::set bind_range(isl::multi_id tuple) const;
- inline boolean can_curry() const;
- inline boolean can_range_curry() const;
- inline boolean can_uncurry() const;
- inline boolean can_zip() const;
- inline isl::map coalesce() const;
- inline isl::map complement() const;
- inline isl::basic_map convex_hull() const;
- inline isl::map curry() const;
- inline isl::set deltas() const;
- inline isl::map deltas_map() const;
- inline isl::map detect_equalities() const;
- inline isl_size dim(isl::dim type) const;
- inline isl::pw_aff dim_max(int pos) const;
- inline isl::pw_aff dim_min(int pos) const;
- inline isl::set domain() const;
- inline isl::map domain_factor_domain() const;
- inline isl::map domain_factor_range() const;
- inline boolean domain_is_wrapping() const;
- inline isl::map domain_map() const;
- inline isl::map domain_product(isl::map map2) const;
- inline isl_size domain_tuple_dim() const;
- inline isl::map drop_constraints_involving_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::map drop_constraints_not_involving_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::map drop_unused_params() const;
- inline isl::map eliminate(isl::dim type, unsigned int first, unsigned int n) const;
- static inline isl::map empty(isl::space space);
- inline isl::map eq_at(isl::multi_pw_aff mpa) const;
- inline isl::map equate(isl::dim type1, int pos1, isl::dim type2, int pos2) const;
- inline isl::map factor_domain() const;
- inline isl::map factor_range() const;
- inline int find_dim_by_id(isl::dim type, const isl::id &id) const;
- inline int find_dim_by_name(isl::dim type, const std::string &name) const;
- inline isl::map fix_si(isl::dim type, unsigned int pos, int value) const;
- inline isl::map fix_val(isl::dim type, unsigned int pos, isl::val v) const;
- inline isl::map fixed_power_val(isl::val exp) const;
- inline isl::map flat_domain_product(isl::map map2) const;
- inline isl::map flat_product(isl::map map2) const;
- inline isl::map flat_range_product(isl::map map2) const;
- inline isl::map flatten() const;
- inline isl::map flatten_domain() const;
- inline isl::map flatten_range() const;
- inline isl::map floordiv_val(isl::val d) const;
- inline stat foreach_basic_map(const std::function<stat(basic_map)> &fn) const;
- static inline isl::map from_aff(isl::aff aff);
- static inline isl::map from_domain(isl::set set);
- static inline isl::map from_domain_and_range(isl::set domain, isl::set range);
- static inline isl::map from_multi_aff(isl::multi_aff maff);
- static inline isl::map from_multi_pw_aff(isl::multi_pw_aff mpa);
- static inline isl::map from_pw_aff(isl::pw_aff pwaff);
- static inline isl::map from_pw_multi_aff(isl::pw_multi_aff pma);
- static inline isl::map from_range(isl::set set);
- static inline isl::map from_union_map(isl::union_map umap);
- inline isl::basic_map_list get_basic_map_list() const;
- inline isl::id get_dim_id(isl::dim type, unsigned int pos) const;
- inline std::string get_dim_name(isl::dim type, unsigned int pos) const;
- inline uint32_t get_hash() const;
- inline isl::fixed_box get_range_simple_fixed_box_hull() const;
- inline isl::space get_space() const;
- inline isl::id get_tuple_id(isl::dim type) const;
- inline std::string get_tuple_name(isl::dim type) const;
- inline isl::map gist(isl::map context) const;
- inline isl::map gist_basic_map(isl::basic_map context) const;
- inline isl::map gist_domain(isl::set context) const;
- inline isl::map gist_params(isl::set context) const;
- inline isl::map gist_range(isl::set context) const;
- inline boolean has_dim_id(isl::dim type, unsigned int pos) const;
- inline boolean has_dim_name(isl::dim type, unsigned int pos) const;
- inline boolean has_equal_space(const isl::map &map2) const;
- inline boolean has_tuple_id(isl::dim type) const;
- inline boolean has_tuple_name(isl::dim type) const;
- static inline isl::map identity(isl::space space);
- inline isl::map insert_dims(isl::dim type, unsigned int pos, unsigned int n) const;
- inline isl::map intersect(isl::map map2) const;
- inline isl::map intersect_domain(isl::set set) const;
- inline isl::map intersect_domain_factor_domain(isl::map factor) const;
- inline isl::map intersect_domain_factor_range(isl::map factor) const;
- inline isl::map intersect_params(isl::set params) const;
- inline isl::map intersect_range(isl::set set) const;
- inline isl::map intersect_range_factor_domain(isl::map factor) const;
- inline isl::map intersect_range_factor_range(isl::map factor) const;
- inline boolean involves_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline boolean is_bijective() const;
- inline boolean is_disjoint(const isl::map &map2) const;
- inline boolean is_empty() const;
- inline boolean is_equal(const isl::map &map2) const;
- inline boolean is_identity() const;
- inline boolean is_injective() const;
- inline boolean is_product() const;
- inline boolean is_single_valued() const;
- inline boolean is_strict_subset(const isl::map &map2) const;
- inline boolean is_subset(const isl::map &map2) const;
- inline int is_translation() const;
- static inline isl::map lex_ge(isl::space set_space);
- inline isl::map lex_ge_at(isl::multi_pw_aff mpa) const;
- static inline isl::map lex_ge_first(isl::space space, unsigned int n);
- inline isl::map lex_ge_map(isl::map map2) const;
- static inline isl::map lex_gt(isl::space set_space);
- inline isl::map lex_gt_at(isl::multi_pw_aff mpa) const;
- static inline isl::map lex_gt_first(isl::space space, unsigned int n);
- inline isl::map lex_gt_map(isl::map map2) const;
- static inline isl::map lex_le(isl::space set_space);
- inline isl::map lex_le_at(isl::multi_pw_aff mpa) const;
- static inline isl::map lex_le_first(isl::space space, unsigned int n);
- inline isl::map lex_le_map(isl::map map2) const;
- static inline isl::map lex_lt(isl::space set_space);
- inline isl::map lex_lt_at(isl::multi_pw_aff mpa) const;
- static inline isl::map lex_lt_first(isl::space space, unsigned int n);
- inline isl::map lex_lt_map(isl::map map2) const;
- inline isl::map lexmax() const;
- inline isl::pw_multi_aff lexmax_pw_multi_aff() const;
- inline isl::map lexmin() const;
- inline isl::pw_multi_aff lexmin_pw_multi_aff() const;
- inline isl::map lower_bound(isl::multi_pw_aff lower) const;
- inline isl::map lower_bound_si(isl::dim type, unsigned int pos, int value) const;
- inline isl::map lower_bound_val(isl::dim type, unsigned int pos, isl::val value) const;
- inline isl::multi_pw_aff max_multi_pw_aff() const;
- inline isl::multi_pw_aff min_multi_pw_aff() const;
- inline isl::map move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const;
- inline isl_size n_basic_map() const;
- static inline isl::map nat_universe(isl::space space);
- inline isl::map neg() const;
- inline isl::map oppose(isl::dim type1, int pos1, isl::dim type2, int pos2) const;
- inline isl::map order_ge(isl::dim type1, int pos1, isl::dim type2, int pos2) const;
- inline isl::map order_gt(isl::dim type1, int pos1, isl::dim type2, int pos2) const;
- inline isl::map order_le(isl::dim type1, int pos1, isl::dim type2, int pos2) const;
- inline isl::map order_lt(isl::dim type1, int pos1, isl::dim type2, int pos2) const;
- inline isl::set params() const;
- inline isl::val plain_get_val_if_fixed(isl::dim type, unsigned int pos) const;
- inline boolean plain_is_empty() const;
- inline boolean plain_is_equal(const isl::map &map2) const;
- inline boolean plain_is_injective() const;
- inline boolean plain_is_single_valued() const;
- inline boolean plain_is_universe() const;
- inline isl::basic_map plain_unshifted_simple_hull() const;
- inline isl::basic_map polyhedral_hull() const;
- inline isl::map preimage_domain(isl::multi_aff ma) const;
- inline isl::map preimage_domain(isl::multi_pw_aff mpa) const;
- inline isl::map preimage_domain(isl::pw_multi_aff pma) const;
- inline isl::map preimage_range(isl::multi_aff ma) const;
- inline isl::map preimage_range(isl::pw_multi_aff pma) const;
- inline isl::map product(isl::map map2) const;
- inline isl::map project_out(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::map project_out_all_params() const;
- inline isl::set range() const;
- inline isl::map range_curry() const;
- inline isl::map range_factor_domain() const;
- inline isl::map range_factor_range() const;
- inline boolean range_is_wrapping() const;
- inline isl::map range_map() const;
- inline isl::map range_product(isl::map map2) const;
- inline isl::map range_reverse() const;
- inline isl_size range_tuple_dim() const;
- inline isl::map remove_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::map remove_divs() const;
- inline isl::map remove_divs_involving_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::map remove_redundancies() const;
- inline isl::map remove_unknown_divs() const;
- inline isl::map reset_tuple_id(isl::dim type) const;
- inline isl::map reset_user() const;
- inline isl::map reverse() const;
- inline isl::basic_map sample() const;
- inline isl::map set_dim_id(isl::dim type, unsigned int pos, isl::id id) const;
- inline isl::map set_tuple_id(isl::dim type, isl::id id) const;
- inline isl::map set_tuple_name(isl::dim type, const std::string &s) const;
- inline isl::basic_map simple_hull() const;
- inline isl::map subtract(isl::map map2) const;
- inline isl::map subtract_domain(isl::set dom) const;
- inline isl::map subtract_range(isl::set dom) const;
- inline isl::map sum(isl::map map2) const;
- inline isl::map uncurry() const;
- inline isl::map unite(isl::map map2) const;
- static inline isl::map universe(isl::space space);
- inline isl::basic_map unshifted_simple_hull() const;
- inline isl::basic_map unshifted_simple_hull_from_map_list(isl::map_list list) const;
- inline isl::map upper_bound(isl::multi_pw_aff upper) const;
- inline isl::map upper_bound_si(isl::dim type, unsigned int pos, int value) const;
- inline isl::map upper_bound_val(isl::dim type, unsigned int pos, isl::val value) const;
- inline isl::set wrap() const;
- inline isl::map zip() const;
};
-// declarations for isl::map_list
-inline map_list manage(__isl_take isl_map_list *ptr);
-inline map_list manage_copy(__isl_keep isl_map_list *ptr);
-
-class map_list {
- friend inline map_list manage(__isl_take isl_map_list *ptr);
- friend inline map_list manage_copy(__isl_keep isl_map_list *ptr);
+// declarations for isl::ast_expr_op_min
- isl_map_list *ptr = nullptr;
+class ast_expr_op_min : public ast_expr_op {
+ template <class T>
+ friend boolean ast_expr_op::isa() const;
+ friend ast_expr_op_min ast_expr_op::as<ast_expr_op_min>() const;
+ static const auto type = isl_ast_expr_op_min;
- inline explicit map_list(__isl_take isl_map_list *ptr);
+protected:
+ inline explicit ast_expr_op_min(__isl_take isl_ast_expr *ptr);
public:
- inline /* implicit */ map_list();
- inline /* implicit */ map_list(const map_list &obj);
- inline map_list &operator=(map_list obj);
- inline ~map_list();
- inline __isl_give isl_map_list *copy() const &;
- inline __isl_give isl_map_list *copy() && = delete;
- inline __isl_keep isl_map_list *get() const;
- inline __isl_give isl_map_list *release();
- inline bool is_null() const;
+ inline /* implicit */ ast_expr_op_min();
+ inline /* implicit */ ast_expr_op_min(const ast_expr_op_min &obj);
+ inline ast_expr_op_min &operator=(ast_expr_op_min obj);
inline isl::ctx ctx() const;
- inline void dump() const;
- inline isl::map_list add(isl::map el) const;
- static inline isl::map_list alloc(isl::ctx ctx, int n);
- inline isl::map_list clear() const;
- inline isl::map_list concat(isl::map_list list2) const;
- inline isl::map_list drop(unsigned int first, unsigned int n) const;
- inline stat foreach(const std::function<stat(map)> &fn) const;
- static inline isl::map_list from_map(isl::map el);
- inline isl::map get_at(int index) const;
- inline isl::map get_map(int index) const;
- inline isl::map_list insert(unsigned int pos, isl::map el) const;
- inline isl_size n_map() const;
- inline isl::map_list reverse() const;
- inline isl::map_list set_map(int index, isl::map el) const;
- inline isl_size size() const;
- inline isl::map_list swap(unsigned int pos1, unsigned int pos2) const;
};
-// declarations for isl::mat
-inline mat manage(__isl_take isl_mat *ptr);
-inline mat manage_copy(__isl_keep isl_mat *ptr);
+// declarations for isl::ast_expr_op_minus
-class mat {
- friend inline mat manage(__isl_take isl_mat *ptr);
- friend inline mat manage_copy(__isl_keep isl_mat *ptr);
+class ast_expr_op_minus : public ast_expr_op {
+ template <class T>
+ friend boolean ast_expr_op::isa() const;
+ friend ast_expr_op_minus ast_expr_op::as<ast_expr_op_minus>() const;
+ static const auto type = isl_ast_expr_op_minus;
- isl_mat *ptr = nullptr;
-
- inline explicit mat(__isl_take isl_mat *ptr);
+protected:
+ inline explicit ast_expr_op_minus(__isl_take isl_ast_expr *ptr);
public:
- inline /* implicit */ mat();
- inline /* implicit */ mat(const mat &obj);
- inline mat &operator=(mat obj);
- inline ~mat();
- inline __isl_give isl_mat *copy() const &;
- inline __isl_give isl_mat *copy() && = delete;
- inline __isl_keep isl_mat *get() const;
- inline __isl_give isl_mat *release();
- inline bool is_null() const;
+ inline /* implicit */ ast_expr_op_minus();
+ inline /* implicit */ ast_expr_op_minus(const ast_expr_op_minus &obj);
+ inline ast_expr_op_minus &operator=(ast_expr_op_minus obj);
inline isl::ctx ctx() const;
- inline void dump() const;
-
- inline isl::mat add_rows(unsigned int n) const;
- inline isl::mat add_zero_cols(unsigned int n) const;
- inline isl::mat add_zero_rows(unsigned int n) const;
- inline isl::mat aff_direct_sum(isl::mat right) const;
- static inline isl::mat alloc(isl::ctx ctx, unsigned int n_row, unsigned int n_col);
- inline isl_size cols() const;
- inline isl::mat concat(isl::mat bot) const;
- inline isl::mat diagonal(isl::mat mat2) const;
- inline isl::mat drop_cols(unsigned int col, unsigned int n) const;
- inline isl::mat drop_rows(unsigned int row, unsigned int n) const;
- static inline isl::mat from_row_vec(isl::vec vec);
- inline isl::val get_element_val(int row, int col) const;
- inline boolean has_linearly_independent_rows(const isl::mat &mat2) const;
- inline int initial_non_zero_cols() const;
- inline isl::mat insert_cols(unsigned int col, unsigned int n) const;
- inline isl::mat insert_rows(unsigned int row, unsigned int n) const;
- inline isl::mat insert_zero_cols(unsigned int first, unsigned int n) const;
- inline isl::mat insert_zero_rows(unsigned int row, unsigned int n) const;
- inline isl::mat inverse_product(isl::mat right) const;
- inline boolean is_equal(const isl::mat &mat2) const;
- inline isl::mat lin_to_aff() const;
- inline isl::mat move_cols(unsigned int dst_col, unsigned int src_col, unsigned int n) const;
- inline isl::mat normalize() const;
- inline isl::mat normalize_row(int row) const;
- inline isl::mat product(isl::mat right) const;
- inline isl_size rank() const;
- inline isl::mat right_inverse() const;
- inline isl::mat right_kernel() const;
- inline isl::mat row_basis() const;
- inline isl::mat row_basis_extension(isl::mat mat2) const;
- inline isl_size rows() const;
- inline isl::mat set_element_si(int row, int col, int v) const;
- inline isl::mat set_element_val(int row, int col, isl::val v) const;
- inline isl::mat swap_cols(unsigned int i, unsigned int j) const;
- inline isl::mat swap_rows(unsigned int i, unsigned int j) const;
- inline isl::mat transpose() const;
- inline isl::mat unimodular_complete(int row) const;
- inline isl::mat vec_concat(isl::vec bot) const;
- inline isl::vec vec_inverse_product(isl::vec vec) const;
- inline isl::vec vec_product(isl::vec vec) const;
-};
-// declarations for isl::multi_aff
-inline multi_aff manage(__isl_take isl_multi_aff *ptr);
-inline multi_aff manage_copy(__isl_keep isl_multi_aff *ptr);
+};
-class multi_aff {
- friend inline multi_aff manage(__isl_take isl_multi_aff *ptr);
- friend inline multi_aff manage_copy(__isl_keep isl_multi_aff *ptr);
+// declarations for isl::ast_expr_op_mul
- isl_multi_aff *ptr = nullptr;
+class ast_expr_op_mul : public ast_expr_op {
+ template <class T>
+ friend boolean ast_expr_op::isa() const;
+ friend ast_expr_op_mul ast_expr_op::as<ast_expr_op_mul>() const;
+ static const auto type = isl_ast_expr_op_mul;
- inline explicit multi_aff(__isl_take isl_multi_aff *ptr);
+protected:
+ inline explicit ast_expr_op_mul(__isl_take isl_ast_expr *ptr);
public:
- inline /* implicit */ multi_aff();
- inline /* implicit */ multi_aff(const multi_aff &obj);
- inline /* implicit */ multi_aff(isl::aff aff);
- inline explicit multi_aff(isl::space space, isl::aff_list list);
- inline explicit multi_aff(isl::ctx ctx, const std::string &str);
- inline multi_aff &operator=(multi_aff obj);
- inline ~multi_aff();
- inline __isl_give isl_multi_aff *copy() const &;
- inline __isl_give isl_multi_aff *copy() && = delete;
- inline __isl_keep isl_multi_aff *get() const;
- inline __isl_give isl_multi_aff *release();
- inline bool is_null() const;
+ inline /* implicit */ ast_expr_op_mul();
+ inline /* implicit */ ast_expr_op_mul(const ast_expr_op_mul &obj);
+ inline ast_expr_op_mul &operator=(ast_expr_op_mul obj);
inline isl::ctx ctx() const;
- inline void dump() const;
- inline isl::multi_aff add(isl::multi_aff multi2) const;
- inline isl::multi_aff add_constant(isl::multi_val mv) const;
- inline isl::multi_aff add_constant(isl::val v) const;
- inline isl::multi_aff add_dims(isl::dim type, unsigned int n) const;
- inline isl::multi_aff align_params(isl::space model) const;
- inline isl::basic_set bind(isl::multi_id tuple) const;
- inline isl::multi_aff bind_domain(isl::multi_id tuple) const;
- inline isl::multi_aff bind_domain_wrapped_domain(isl::multi_id tuple) const;
- inline isl_size dim(isl::dim type) const;
- static inline isl::multi_aff domain_map(isl::space space);
- inline isl::multi_aff drop_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::multi_aff factor_range() const;
- inline int find_dim_by_id(isl::dim type, const isl::id &id) const;
- inline int find_dim_by_name(isl::dim type, const std::string &name) const;
- inline isl::multi_aff flat_range_product(isl::multi_aff multi2) const;
- inline isl::multi_aff flatten_domain() const;
- inline isl::multi_aff flatten_range() const;
- inline isl::multi_aff floor() const;
- inline isl::multi_aff from_range() const;
- inline isl::aff get_aff(int pos) const;
- inline isl::aff get_at(int pos) const;
- inline isl::multi_val get_constant_multi_val() const;
- inline isl::id get_dim_id(isl::dim type, unsigned int pos) const;
- inline isl::space get_domain_space() const;
- inline isl::aff_list get_list() const;
- inline isl::space get_space() const;
- inline isl::id get_tuple_id(isl::dim type) const;
- inline std::string get_tuple_name(isl::dim type) const;
- inline isl::multi_aff gist(isl::set context) const;
- inline isl::multi_aff gist_params(isl::set context) const;
- inline boolean has_tuple_id(isl::dim type) const;
- static inline isl::multi_aff identity(isl::space space);
- inline isl::multi_aff identity() const;
- static inline isl::multi_aff identity_on_domain(isl::space space);
- inline isl::multi_aff insert_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::multi_aff insert_domain(isl::space domain) const;
- inline boolean involves_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline boolean involves_locals() const;
- inline boolean involves_nan() const;
- inline isl::set lex_ge_set(isl::multi_aff ma2) const;
- inline isl::set lex_gt_set(isl::multi_aff ma2) const;
- inline isl::set lex_le_set(isl::multi_aff ma2) const;
- inline isl::set lex_lt_set(isl::multi_aff ma2) const;
- inline isl::multi_aff mod_multi_val(isl::multi_val mv) const;
- inline isl::multi_aff move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const;
- static inline isl::multi_aff multi_val_on_space(isl::space space, isl::multi_val mv);
- inline isl::multi_aff neg() const;
- inline int plain_cmp(const isl::multi_aff &multi2) const;
- inline boolean plain_is_equal(const isl::multi_aff &multi2) const;
- inline isl::multi_aff product(isl::multi_aff multi2) const;
- inline isl::multi_aff project_domain_on_params() const;
- static inline isl::multi_aff project_out_map(isl::space space, isl::dim type, unsigned int first, unsigned int n);
- inline isl::multi_aff pullback(isl::multi_aff ma2) const;
- inline isl::multi_aff range_factor_domain() const;
- inline isl::multi_aff range_factor_range() const;
- inline boolean range_is_wrapping() const;
- static inline isl::multi_aff range_map(isl::space space);
- inline isl::multi_aff range_product(isl::multi_aff multi2) const;
- inline isl::multi_aff range_splice(unsigned int pos, isl::multi_aff multi2) const;
- inline isl::multi_aff reset_tuple_id(isl::dim type) const;
- inline isl::multi_aff reset_user() const;
- inline isl::multi_aff scale(isl::multi_val mv) const;
- inline isl::multi_aff scale(isl::val v) const;
- inline isl::multi_aff scale_down(isl::multi_val mv) const;
- inline isl::multi_aff scale_down(isl::val v) const;
- inline isl::multi_aff set_aff(int pos, isl::aff el) const;
- inline isl::multi_aff set_at(int pos, isl::aff el) const;
- inline isl::multi_aff set_dim_id(isl::dim type, unsigned int pos, isl::id id) const;
- inline isl::multi_aff set_tuple_id(isl::dim type, isl::id id) const;
- inline isl::multi_aff set_tuple_name(isl::dim type, const std::string &s) const;
- inline isl_size size() const;
- inline isl::multi_aff splice(unsigned int in_pos, unsigned int out_pos, isl::multi_aff multi2) const;
- inline isl::multi_aff sub(isl::multi_aff multi2) const;
- inline isl::multi_aff unbind_params_insert_domain(isl::multi_id domain) const;
- static inline isl::multi_aff zero(isl::space space);
};
-// declarations for isl::multi_id
-inline multi_id manage(__isl_take isl_multi_id *ptr);
-inline multi_id manage_copy(__isl_keep isl_multi_id *ptr);
-
-class multi_id {
- friend inline multi_id manage(__isl_take isl_multi_id *ptr);
- friend inline multi_id manage_copy(__isl_keep isl_multi_id *ptr);
+// declarations for isl::ast_expr_op_or
- isl_multi_id *ptr = nullptr;
+class ast_expr_op_or : public ast_expr_op {
+ template <class T>
+ friend boolean ast_expr_op::isa() const;
+ friend ast_expr_op_or ast_expr_op::as<ast_expr_op_or>() const;
+ static const auto type = isl_ast_expr_op_or;
- inline explicit multi_id(__isl_take isl_multi_id *ptr);
+protected:
+ inline explicit ast_expr_op_or(__isl_take isl_ast_expr *ptr);
public:
- inline /* implicit */ multi_id();
- inline /* implicit */ multi_id(const multi_id &obj);
- inline explicit multi_id(isl::space space, isl::id_list list);
- inline explicit multi_id(isl::ctx ctx, const std::string &str);
- inline multi_id &operator=(multi_id obj);
- inline ~multi_id();
- inline __isl_give isl_multi_id *copy() const &;
- inline __isl_give isl_multi_id *copy() && = delete;
- inline __isl_keep isl_multi_id *get() const;
- inline __isl_give isl_multi_id *release();
- inline bool is_null() const;
+ inline /* implicit */ ast_expr_op_or();
+ inline /* implicit */ ast_expr_op_or(const ast_expr_op_or &obj);
+ inline ast_expr_op_or &operator=(ast_expr_op_or obj);
inline isl::ctx ctx() const;
- inline void dump() const;
- inline isl::multi_id align_params(isl::space model) const;
- inline isl::multi_id factor_range() const;
- inline isl::multi_id flat_range_product(isl::multi_id multi2) const;
- inline isl::multi_id flatten_range() const;
- inline isl::multi_id from_range() const;
- inline isl::id get_at(int pos) const;
- inline isl::space get_domain_space() const;
- inline isl::id get_id(int pos) const;
- inline isl::id_list get_list() const;
- inline isl::space get_space() const;
- inline boolean plain_is_equal(const isl::multi_id &multi2) const;
- inline isl::multi_id range_factor_domain() const;
- inline isl::multi_id range_factor_range() const;
- inline boolean range_is_wrapping() const;
- inline isl::multi_id range_product(isl::multi_id multi2) const;
- inline isl::multi_id range_splice(unsigned int pos, isl::multi_id multi2) const;
- inline isl::multi_id reset_user() const;
- inline isl::multi_id set_at(int pos, isl::id el) const;
- inline isl::multi_id set_id(int pos, isl::id el) const;
- inline isl_size size() const;
};
-// declarations for isl::multi_pw_aff
-inline multi_pw_aff manage(__isl_take isl_multi_pw_aff *ptr);
-inline multi_pw_aff manage_copy(__isl_keep isl_multi_pw_aff *ptr);
+// declarations for isl::ast_expr_op_or_else
-class multi_pw_aff {
- friend inline multi_pw_aff manage(__isl_take isl_multi_pw_aff *ptr);
- friend inline multi_pw_aff manage_copy(__isl_keep isl_multi_pw_aff *ptr);
+class ast_expr_op_or_else : public ast_expr_op {
+ template <class T>
+ friend boolean ast_expr_op::isa() const;
+ friend ast_expr_op_or_else ast_expr_op::as<ast_expr_op_or_else>() const;
+ static const auto type = isl_ast_expr_op_or_else;
- isl_multi_pw_aff *ptr = nullptr;
+protected:
+ inline explicit ast_expr_op_or_else(__isl_take isl_ast_expr *ptr);
- inline explicit multi_pw_aff(__isl_take isl_multi_pw_aff *ptr);
+public:
+ inline /* implicit */ ast_expr_op_or_else();
+ inline /* implicit */ ast_expr_op_or_else(const ast_expr_op_or_else &obj);
+ inline ast_expr_op_or_else &operator=(ast_expr_op_or_else obj);
+ inline isl::ctx ctx() const;
+
+};
+
+// declarations for isl::ast_expr_op_pdiv_q
+
+class ast_expr_op_pdiv_q : public ast_expr_op {
+ template <class T>
+ friend boolean ast_expr_op::isa() const;
+ friend ast_expr_op_pdiv_q ast_expr_op::as<ast_expr_op_pdiv_q>() const;
+ static const auto type = isl_ast_expr_op_pdiv_q;
+
+protected:
+ inline explicit ast_expr_op_pdiv_q(__isl_take isl_ast_expr *ptr);
public:
- inline /* implicit */ multi_pw_aff();
- inline /* implicit */ multi_pw_aff(const multi_pw_aff &obj);
- inline /* implicit */ multi_pw_aff(isl::aff aff);
- inline /* implicit */ multi_pw_aff(isl::multi_aff ma);
- inline /* implicit */ multi_pw_aff(isl::pw_aff pa);
- inline explicit multi_pw_aff(isl::space space, isl::pw_aff_list list);
- inline /* implicit */ multi_pw_aff(isl::pw_multi_aff pma);
- inline explicit multi_pw_aff(isl::ctx ctx, const std::string &str);
- inline multi_pw_aff &operator=(multi_pw_aff obj);
- inline ~multi_pw_aff();
- inline __isl_give isl_multi_pw_aff *copy() const &;
- inline __isl_give isl_multi_pw_aff *copy() && = delete;
- inline __isl_keep isl_multi_pw_aff *get() const;
- inline __isl_give isl_multi_pw_aff *release();
- inline bool is_null() const;
+ inline /* implicit */ ast_expr_op_pdiv_q();
+ inline /* implicit */ ast_expr_op_pdiv_q(const ast_expr_op_pdiv_q &obj);
+ inline ast_expr_op_pdiv_q &operator=(ast_expr_op_pdiv_q obj);
inline isl::ctx ctx() const;
- inline void dump() const;
- inline isl::multi_pw_aff add(isl::multi_pw_aff multi2) const;
- inline isl::multi_pw_aff add_constant(isl::multi_val mv) const;
- inline isl::multi_pw_aff add_constant(isl::val v) const;
- inline isl::multi_pw_aff add_dims(isl::dim type, unsigned int n) const;
- inline isl::multi_pw_aff align_params(isl::space model) const;
- inline isl::set bind(isl::multi_id tuple) const;
- inline isl::multi_pw_aff bind_domain(isl::multi_id tuple) const;
- inline isl::multi_pw_aff bind_domain_wrapped_domain(isl::multi_id tuple) const;
- inline isl::multi_pw_aff coalesce() const;
- inline isl_size dim(isl::dim type) const;
- inline isl::set domain() const;
- inline isl::multi_pw_aff drop_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::map eq_map(isl::multi_pw_aff mpa2) const;
- inline isl::multi_pw_aff factor_range() const;
- inline int find_dim_by_id(isl::dim type, const isl::id &id) const;
- inline int find_dim_by_name(isl::dim type, const std::string &name) const;
- inline isl::multi_pw_aff flat_range_product(isl::multi_pw_aff multi2) const;
- inline isl::multi_pw_aff flatten_range() const;
- inline isl::multi_pw_aff from_range() const;
- inline isl::pw_aff get_at(int pos) const;
- inline isl::id get_dim_id(isl::dim type, unsigned int pos) const;
- inline isl::space get_domain_space() const;
- inline uint32_t get_hash() const;
- inline isl::pw_aff_list get_list() const;
- inline isl::pw_aff get_pw_aff(int pos) const;
- inline isl::space get_space() const;
- inline isl::id get_tuple_id(isl::dim type) const;
- inline std::string get_tuple_name(isl::dim type) const;
- inline isl::multi_pw_aff gist(isl::set set) const;
- inline isl::multi_pw_aff gist_params(isl::set set) const;
- inline boolean has_tuple_id(isl::dim type) const;
- static inline isl::multi_pw_aff identity(isl::space space);
- inline isl::multi_pw_aff identity() const;
- static inline isl::multi_pw_aff identity_on_domain(isl::space space);
- inline isl::multi_pw_aff insert_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::multi_pw_aff insert_domain(isl::space domain) const;
- inline isl::multi_pw_aff intersect_domain(isl::set domain) const;
- inline isl::multi_pw_aff intersect_params(isl::set set) const;
- inline boolean involves_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline boolean involves_nan() const;
- inline boolean involves_param(const isl::id &id) const;
- inline boolean involves_param(const isl::id_list &list) const;
- inline boolean is_cst() const;
- inline boolean is_equal(const isl::multi_pw_aff &mpa2) const;
- inline isl::map lex_ge_map(isl::multi_pw_aff mpa2) const;
- inline isl::map lex_gt_map(isl::multi_pw_aff mpa2) const;
- inline isl::map lex_le_map(isl::multi_pw_aff mpa2) const;
- inline isl::map lex_lt_map(isl::multi_pw_aff mpa2) const;
- inline isl::multi_pw_aff max(isl::multi_pw_aff multi2) const;
- inline isl::multi_val max_multi_val() const;
- inline isl::multi_pw_aff min(isl::multi_pw_aff multi2) const;
- inline isl::multi_val min_multi_val() const;
- inline isl::multi_pw_aff mod_multi_val(isl::multi_val mv) const;
- inline isl::multi_pw_aff move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const;
- inline isl::multi_pw_aff neg() const;
- inline boolean plain_is_equal(const isl::multi_pw_aff &multi2) const;
- inline isl::multi_pw_aff product(isl::multi_pw_aff multi2) const;
- inline isl::multi_pw_aff project_domain_on_params() const;
- inline isl::multi_pw_aff pullback(isl::multi_aff ma) const;
- inline isl::multi_pw_aff pullback(isl::multi_pw_aff mpa2) const;
- inline isl::multi_pw_aff pullback(isl::pw_multi_aff pma) const;
- inline isl::multi_pw_aff range_factor_domain() const;
- inline isl::multi_pw_aff range_factor_range() const;
- inline boolean range_is_wrapping() const;
- inline isl::multi_pw_aff range_product(isl::multi_pw_aff multi2) const;
- inline isl::multi_pw_aff range_splice(unsigned int pos, isl::multi_pw_aff multi2) const;
- inline isl::multi_pw_aff reset_tuple_id(isl::dim type) const;
- inline isl::multi_pw_aff reset_user() const;
- inline isl::multi_pw_aff scale(isl::multi_val mv) const;
- inline isl::multi_pw_aff scale(isl::val v) const;
- inline isl::multi_pw_aff scale_down(isl::multi_val mv) const;
- inline isl::multi_pw_aff scale_down(isl::val v) const;
- inline isl::multi_pw_aff set_at(int pos, isl::pw_aff el) const;
- inline isl::multi_pw_aff set_dim_id(isl::dim type, unsigned int pos, isl::id id) const;
- inline isl::multi_pw_aff set_pw_aff(int pos, isl::pw_aff el) const;
- inline isl::multi_pw_aff set_tuple_id(isl::dim type, isl::id id) const;
- inline isl::multi_pw_aff set_tuple_name(isl::dim type, const std::string &s) const;
- inline isl_size size() const;
- inline isl::multi_pw_aff splice(unsigned int in_pos, unsigned int out_pos, isl::multi_pw_aff multi2) const;
- inline isl::multi_pw_aff sub(isl::multi_pw_aff multi2) const;
- inline isl::multi_pw_aff unbind_params_insert_domain(isl::multi_id domain) const;
- inline isl::multi_pw_aff union_add(isl::multi_pw_aff mpa2) const;
- static inline isl::multi_pw_aff zero(isl::space space);
};
-// declarations for isl::multi_union_pw_aff
-inline multi_union_pw_aff manage(__isl_take isl_multi_union_pw_aff *ptr);
-inline multi_union_pw_aff manage_copy(__isl_keep isl_multi_union_pw_aff *ptr);
+// declarations for isl::ast_expr_op_pdiv_r
-class multi_union_pw_aff {
- friend inline multi_union_pw_aff manage(__isl_take isl_multi_union_pw_aff *ptr);
- friend inline multi_union_pw_aff manage_copy(__isl_keep isl_multi_union_pw_aff *ptr);
+class ast_expr_op_pdiv_r : public ast_expr_op {
+ template <class T>
+ friend boolean ast_expr_op::isa() const;
+ friend ast_expr_op_pdiv_r ast_expr_op::as<ast_expr_op_pdiv_r>() const;
+ static const auto type = isl_ast_expr_op_pdiv_r;
- isl_multi_union_pw_aff *ptr = nullptr;
+protected:
+ inline explicit ast_expr_op_pdiv_r(__isl_take isl_ast_expr *ptr);
- inline explicit multi_union_pw_aff(__isl_take isl_multi_union_pw_aff *ptr);
+public:
+ inline /* implicit */ ast_expr_op_pdiv_r();
+ inline /* implicit */ ast_expr_op_pdiv_r(const ast_expr_op_pdiv_r &obj);
+ inline ast_expr_op_pdiv_r &operator=(ast_expr_op_pdiv_r obj);
+ inline isl::ctx ctx() const;
+
+};
+
+// declarations for isl::ast_expr_op_select
+
+class ast_expr_op_select : public ast_expr_op {
+ template <class T>
+ friend boolean ast_expr_op::isa() const;
+ friend ast_expr_op_select ast_expr_op::as<ast_expr_op_select>() const;
+ static const auto type = isl_ast_expr_op_select;
+
+protected:
+ inline explicit ast_expr_op_select(__isl_take isl_ast_expr *ptr);
public:
- inline /* implicit */ multi_union_pw_aff();
- inline /* implicit */ multi_union_pw_aff(const multi_union_pw_aff &obj);
- inline /* implicit */ multi_union_pw_aff(isl::multi_pw_aff mpa);
- inline /* implicit */ multi_union_pw_aff(isl::union_pw_aff upa);
- inline explicit multi_union_pw_aff(isl::space space, isl::union_pw_aff_list list);
- inline explicit multi_union_pw_aff(isl::union_pw_multi_aff upma);
- inline explicit multi_union_pw_aff(isl::ctx ctx, const std::string &str);
- inline multi_union_pw_aff &operator=(multi_union_pw_aff obj);
- inline ~multi_union_pw_aff();
- inline __isl_give isl_multi_union_pw_aff *copy() const &;
- inline __isl_give isl_multi_union_pw_aff *copy() && = delete;
- inline __isl_keep isl_multi_union_pw_aff *get() const;
- inline __isl_give isl_multi_union_pw_aff *release();
- inline bool is_null() const;
+ inline /* implicit */ ast_expr_op_select();
+ inline /* implicit */ ast_expr_op_select(const ast_expr_op_select &obj);
+ inline ast_expr_op_select &operator=(ast_expr_op_select obj);
inline isl::ctx ctx() const;
- inline void dump() const;
- inline isl::multi_union_pw_aff add(isl::multi_union_pw_aff multi2) const;
- inline isl::multi_union_pw_aff align_params(isl::space model) const;
- inline isl::union_pw_aff apply_aff(isl::aff aff) const;
- inline isl::union_pw_aff apply_pw_aff(isl::pw_aff pa) const;
- inline isl::multi_union_pw_aff apply_pw_multi_aff(isl::pw_multi_aff pma) const;
- inline isl::union_set bind(isl::multi_id tuple) const;
- inline isl::multi_union_pw_aff coalesce() const;
- inline isl_size dim(isl::dim type) const;
- inline isl::union_set domain() const;
- inline isl::multi_union_pw_aff drop_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::multi_pw_aff extract_multi_pw_aff(isl::space space) const;
- inline isl::multi_union_pw_aff factor_range() const;
- inline int find_dim_by_id(isl::dim type, const isl::id &id) const;
- inline int find_dim_by_name(isl::dim type, const std::string &name) const;
- inline isl::multi_union_pw_aff flat_range_product(isl::multi_union_pw_aff multi2) const;
- inline isl::multi_union_pw_aff flatten_range() const;
- inline isl::multi_union_pw_aff floor() const;
- static inline isl::multi_union_pw_aff from_multi_aff(isl::multi_aff ma);
- inline isl::multi_union_pw_aff from_range() const;
- static inline isl::multi_union_pw_aff from_union_map(isl::union_map umap);
- inline isl::union_pw_aff get_at(int pos) const;
- inline isl::id get_dim_id(isl::dim type, unsigned int pos) const;
- inline isl::space get_domain_space() const;
- inline isl::union_pw_aff_list get_list() const;
- inline isl::space get_space() const;
- inline isl::id get_tuple_id(isl::dim type) const;
- inline std::string get_tuple_name(isl::dim type) const;
- inline isl::union_pw_aff get_union_pw_aff(int pos) const;
- inline isl::multi_union_pw_aff gist(isl::union_set context) const;
- inline isl::multi_union_pw_aff gist_params(isl::set context) const;
- inline boolean has_tuple_id(isl::dim type) const;
- inline isl::multi_union_pw_aff intersect_domain(isl::union_set uset) const;
- inline isl::multi_union_pw_aff intersect_params(isl::set params) const;
- inline isl::multi_union_pw_aff intersect_range(isl::set set) const;
- inline boolean involves_nan() const;
- inline isl::multi_val max_multi_val() const;
- inline isl::multi_val min_multi_val() const;
- inline isl::multi_union_pw_aff mod_multi_val(isl::multi_val mv) const;
- static inline isl::multi_union_pw_aff multi_aff_on_domain(isl::union_set domain, isl::multi_aff ma);
- static inline isl::multi_union_pw_aff multi_val_on_domain(isl::union_set domain, isl::multi_val mv);
- inline isl::multi_union_pw_aff neg() const;
- inline boolean plain_is_equal(const isl::multi_union_pw_aff &multi2) const;
- inline isl::multi_union_pw_aff pullback(isl::union_pw_multi_aff upma) const;
- static inline isl::multi_union_pw_aff pw_multi_aff_on_domain(isl::union_set domain, isl::pw_multi_aff pma);
- inline isl::multi_union_pw_aff range_factor_domain() const;
- inline isl::multi_union_pw_aff range_factor_range() const;
- inline boolean range_is_wrapping() const;
- inline isl::multi_union_pw_aff range_product(isl::multi_union_pw_aff multi2) const;
- inline isl::multi_union_pw_aff range_splice(unsigned int pos, isl::multi_union_pw_aff multi2) const;
- inline isl::multi_union_pw_aff reset_tuple_id(isl::dim type) const;
- inline isl::multi_union_pw_aff reset_user() const;
- inline isl::multi_union_pw_aff scale(isl::multi_val mv) const;
- inline isl::multi_union_pw_aff scale(isl::val v) const;
- inline isl::multi_union_pw_aff scale_down(isl::multi_val mv) const;
- inline isl::multi_union_pw_aff scale_down(isl::val v) const;
- inline isl::multi_union_pw_aff set_at(int pos, isl::union_pw_aff el) const;
- inline isl::multi_union_pw_aff set_dim_id(isl::dim type, unsigned int pos, isl::id id) const;
- inline isl::multi_union_pw_aff set_tuple_id(isl::dim type, isl::id id) const;
- inline isl::multi_union_pw_aff set_tuple_name(isl::dim type, const std::string &s) const;
- inline isl::multi_union_pw_aff set_union_pw_aff(int pos, isl::union_pw_aff el) const;
- inline isl_size size() const;
- inline isl::multi_union_pw_aff sub(isl::multi_union_pw_aff multi2) const;
- inline isl::multi_union_pw_aff union_add(isl::multi_union_pw_aff mupa2) const;
- static inline isl::multi_union_pw_aff zero(isl::space space);
- inline isl::union_set zero_union_set() const;
};
-// declarations for isl::multi_val
-inline multi_val manage(__isl_take isl_multi_val *ptr);
-inline multi_val manage_copy(__isl_keep isl_multi_val *ptr);
+// declarations for isl::ast_expr_op_sub
-class multi_val {
- friend inline multi_val manage(__isl_take isl_multi_val *ptr);
- friend inline multi_val manage_copy(__isl_keep isl_multi_val *ptr);
+class ast_expr_op_sub : public ast_expr_op {
+ template <class T>
+ friend boolean ast_expr_op::isa() const;
+ friend ast_expr_op_sub ast_expr_op::as<ast_expr_op_sub>() const;
+ static const auto type = isl_ast_expr_op_sub;
- isl_multi_val *ptr = nullptr;
+protected:
+ inline explicit ast_expr_op_sub(__isl_take isl_ast_expr *ptr);
- inline explicit multi_val(__isl_take isl_multi_val *ptr);
+public:
+ inline /* implicit */ ast_expr_op_sub();
+ inline /* implicit */ ast_expr_op_sub(const ast_expr_op_sub &obj);
+ inline ast_expr_op_sub &operator=(ast_expr_op_sub obj);
+ inline isl::ctx ctx() const;
+
+};
+
+// declarations for isl::ast_expr_op_zdiv_r
+
+class ast_expr_op_zdiv_r : public ast_expr_op {
+ template <class T>
+ friend boolean ast_expr_op::isa() const;
+ friend ast_expr_op_zdiv_r ast_expr_op::as<ast_expr_op_zdiv_r>() const;
+ static const auto type = isl_ast_expr_op_zdiv_r;
+
+protected:
+ inline explicit ast_expr_op_zdiv_r(__isl_take isl_ast_expr *ptr);
public:
- inline /* implicit */ multi_val();
- inline /* implicit */ multi_val(const multi_val &obj);
- inline explicit multi_val(isl::space space, isl::val_list list);
- inline explicit multi_val(isl::ctx ctx, const std::string &str);
- inline multi_val &operator=(multi_val obj);
- inline ~multi_val();
- inline __isl_give isl_multi_val *copy() const &;
- inline __isl_give isl_multi_val *copy() && = delete;
- inline __isl_keep isl_multi_val *get() const;
- inline __isl_give isl_multi_val *release();
- inline bool is_null() const;
+ inline /* implicit */ ast_expr_op_zdiv_r();
+ inline /* implicit */ ast_expr_op_zdiv_r(const ast_expr_op_zdiv_r &obj);
+ inline ast_expr_op_zdiv_r &operator=(ast_expr_op_zdiv_r obj);
inline isl::ctx ctx() const;
- inline void dump() const;
- inline isl::multi_val add(isl::multi_val multi2) const;
- inline isl::multi_val add(isl::val v) const;
- inline isl::multi_val add_dims(isl::dim type, unsigned int n) const;
- inline isl::multi_val align_params(isl::space model) const;
- inline isl_size dim(isl::dim type) const;
- inline isl::multi_val drop_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::multi_val factor_range() const;
- inline int find_dim_by_id(isl::dim type, const isl::id &id) const;
- inline int find_dim_by_name(isl::dim type, const std::string &name) const;
- inline isl::multi_val flat_range_product(isl::multi_val multi2) const;
- inline isl::multi_val flatten_range() const;
- inline isl::multi_val from_range() const;
- inline isl::val get_at(int pos) const;
- inline isl::id get_dim_id(isl::dim type, unsigned int pos) const;
- inline isl::space get_domain_space() const;
- inline isl::val_list get_list() const;
- inline isl::space get_space() const;
- inline isl::id get_tuple_id(isl::dim type) const;
- inline std::string get_tuple_name(isl::dim type) const;
- inline isl::val get_val(int pos) const;
- inline boolean has_tuple_id(isl::dim type) const;
- inline isl::multi_val insert_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline boolean involves_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline boolean involves_nan() const;
- inline boolean is_zero() const;
- inline isl::multi_val max(isl::multi_val multi2) const;
- inline isl::multi_val min(isl::multi_val multi2) const;
- inline isl::multi_val mod_multi_val(isl::multi_val mv) const;
- inline isl::multi_val mod_val(isl::val v) const;
- inline isl::multi_val neg() const;
- inline boolean plain_is_equal(const isl::multi_val &multi2) const;
- inline isl::multi_val product(isl::multi_val multi2) const;
- inline isl::multi_val project_domain_on_params() const;
- inline isl::multi_val range_factor_domain() const;
- inline isl::multi_val range_factor_range() const;
- inline boolean range_is_wrapping() const;
- inline isl::multi_val range_product(isl::multi_val multi2) const;
- inline isl::multi_val range_splice(unsigned int pos, isl::multi_val multi2) const;
- inline isl::multi_val reset_tuple_id(isl::dim type) const;
- inline isl::multi_val reset_user() const;
- inline isl::multi_val scale(isl::multi_val mv) const;
- inline isl::multi_val scale(isl::val v) const;
- inline isl::multi_val scale_down(isl::multi_val mv) const;
- inline isl::multi_val scale_down(isl::val v) const;
- inline isl::multi_val set_at(int pos, isl::val el) const;
- inline isl::multi_val set_dim_id(isl::dim type, unsigned int pos, isl::id id) const;
- inline isl::multi_val set_tuple_id(isl::dim type, isl::id id) const;
- inline isl::multi_val set_tuple_name(isl::dim type, const std::string &s) const;
- inline isl::multi_val set_val(int pos, isl::val el) const;
- inline isl_size size() const;
- inline isl::multi_val splice(unsigned int in_pos, unsigned int out_pos, isl::multi_val multi2) const;
- inline isl::multi_val sub(isl::multi_val multi2) const;
- static inline isl::multi_val zero(isl::space space);
};
-// declarations for isl::point
-inline point manage(__isl_take isl_point *ptr);
-inline point manage_copy(__isl_keep isl_point *ptr);
+// declarations for isl::ast_node
+inline ast_node manage(__isl_take isl_ast_node *ptr);
+inline ast_node manage_copy(__isl_keep isl_ast_node *ptr);
-class point {
- friend inline point manage(__isl_take isl_point *ptr);
- friend inline point manage_copy(__isl_keep isl_point *ptr);
+class ast_node {
+ friend inline ast_node manage(__isl_take isl_ast_node *ptr);
+ friend inline ast_node manage_copy(__isl_keep isl_ast_node *ptr);
- isl_point *ptr = nullptr;
+protected:
+ isl_ast_node *ptr = nullptr;
- inline explicit point(__isl_take isl_point *ptr);
+ inline explicit ast_node(__isl_take isl_ast_node *ptr);
public:
- inline /* implicit */ point();
- inline /* implicit */ point(const point &obj);
- inline explicit point(isl::space dim);
- inline point &operator=(point obj);
- inline ~point();
- inline __isl_give isl_point *copy() const &;
- inline __isl_give isl_point *copy() && = delete;
- inline __isl_keep isl_point *get() const;
- inline __isl_give isl_point *release();
+ inline /* implicit */ ast_node();
+ inline /* implicit */ ast_node(const ast_node &obj);
+ inline ast_node &operator=(ast_node obj);
+ inline ~ast_node();
+ inline __isl_give isl_ast_node *copy() const &;
+ inline __isl_give isl_ast_node *copy() && = delete;
+ inline __isl_keep isl_ast_node *get() const;
+ inline __isl_give isl_ast_node *release();
inline bool is_null() const;
+private:
+ template <typename T,
+ typename = typename std::enable_if<std::is_same<
+ const decltype(isl_ast_node_get_type(NULL)),
+ const T>::value>::type>
+ inline boolean isa_type(T subtype) const;
+public:
+ template <class T> inline boolean isa() const;
+ template <class T> inline T as() const;
inline isl::ctx ctx() const;
- inline void dump() const;
- inline isl::point add_ui(isl::dim type, int pos, unsigned int val) const;
- inline isl::val get_coordinate_val(isl::dim type, int pos) const;
- inline isl::multi_val get_multi_val() const;
- inline isl::space get_space() const;
- inline isl::point set_coordinate_val(isl::dim type, int pos, isl::val v) const;
- inline isl::point sub_ui(isl::dim type, int pos, unsigned int val) const;
+ inline isl::id annotation() const;
+ inline isl::id get_annotation() const;
+ inline std::string to_C_str() const;
+ inline isl::ast_node_list to_list() const;
};
-// declarations for isl::pw_aff
-inline pw_aff manage(__isl_take isl_pw_aff *ptr);
-inline pw_aff manage_copy(__isl_keep isl_pw_aff *ptr);
+// declarations for isl::ast_node_block
-class pw_aff {
- friend inline pw_aff manage(__isl_take isl_pw_aff *ptr);
- friend inline pw_aff manage_copy(__isl_keep isl_pw_aff *ptr);
+class ast_node_block : public ast_node {
+ template <class T>
+ friend boolean ast_node::isa() const;
+ friend ast_node_block ast_node::as<ast_node_block>() const;
+ static const auto type = isl_ast_node_block;
- isl_pw_aff *ptr = nullptr;
+protected:
+ inline explicit ast_node_block(__isl_take isl_ast_node *ptr);
- inline explicit pw_aff(__isl_take isl_pw_aff *ptr);
+public:
+ inline /* implicit */ ast_node_block();
+ inline /* implicit */ ast_node_block(const ast_node_block &obj);
+ inline ast_node_block &operator=(ast_node_block obj);
+ inline isl::ctx ctx() const;
+
+ inline isl::ast_node_list children() const;
+ inline isl::ast_node_list get_children() const;
+};
+
+// declarations for isl::ast_node_for
+
+class ast_node_for : public ast_node {
+ template <class T>
+ friend boolean ast_node::isa() const;
+ friend ast_node_for ast_node::as<ast_node_for>() const;
+ static const auto type = isl_ast_node_for;
+
+protected:
+ inline explicit ast_node_for(__isl_take isl_ast_node *ptr);
public:
- inline /* implicit */ pw_aff();
- inline /* implicit */ pw_aff(const pw_aff &obj);
- inline /* implicit */ pw_aff(isl::aff aff);
- inline explicit pw_aff(isl::ctx ctx, const std::string &str);
- inline explicit pw_aff(isl::set domain, isl::val v);
- inline explicit pw_aff(isl::local_space ls);
- inline pw_aff &operator=(pw_aff obj);
- inline ~pw_aff();
- inline __isl_give isl_pw_aff *copy() const &;
- inline __isl_give isl_pw_aff *copy() && = delete;
- inline __isl_keep isl_pw_aff *get() const;
- inline __isl_give isl_pw_aff *release();
- inline bool is_null() const;
+ inline /* implicit */ ast_node_for();
+ inline /* implicit */ ast_node_for(const ast_node_for &obj);
+ inline ast_node_for &operator=(ast_node_for obj);
inline isl::ctx ctx() const;
- inline void dump() const;
- inline isl::pw_aff add(isl::pw_aff pwaff2) const;
- inline isl::pw_aff add_constant(isl::val v) const;
- inline isl::pw_aff add_dims(isl::dim type, unsigned int n) const;
- inline isl::pw_aff align_params(isl::space model) const;
- static inline isl::pw_aff alloc(isl::set set, isl::aff aff);
- inline isl::aff as_aff() const;
- inline isl::set bind(isl::id id) const;
- inline isl::pw_aff bind_domain(isl::multi_id tuple) const;
- inline isl::pw_aff bind_domain_wrapped_domain(isl::multi_id tuple) const;
- inline isl::pw_aff ceil() const;
- inline isl::pw_aff coalesce() const;
- inline isl::pw_aff cond(isl::pw_aff pwaff_true, isl::pw_aff pwaff_false) const;
- inline isl_size dim(isl::dim type) const;
- inline isl::pw_aff div(isl::pw_aff pa2) const;
- inline isl::set domain() const;
- inline isl::pw_aff drop_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::pw_aff drop_unused_params() const;
- static inline isl::pw_aff empty(isl::space space);
- inline isl::map eq_map(isl::pw_aff pa2) const;
- inline isl::set eq_set(isl::pw_aff pwaff2) const;
- inline isl::val eval(isl::point pnt) const;
- inline int find_dim_by_name(isl::dim type, const std::string &name) const;
- inline isl::pw_aff floor() const;
- inline stat foreach_piece(const std::function<stat(set, aff)> &fn) const;
- inline isl::pw_aff from_range() const;
- inline isl::map ge_map(isl::pw_aff pa2) const;
- inline isl::set ge_set(isl::pw_aff pwaff2) const;
- inline isl::id get_dim_id(isl::dim type, unsigned int pos) const;
- inline std::string get_dim_name(isl::dim type, unsigned int pos) const;
- inline isl::space get_domain_space() const;
- inline uint32_t get_hash() const;
- inline isl::space get_space() const;
- inline isl::id get_tuple_id(isl::dim type) const;
- inline isl::pw_aff gist(isl::set context) const;
- inline isl::pw_aff gist_params(isl::set context) const;
- inline isl::map gt_map(isl::pw_aff pa2) const;
- inline isl::set gt_set(isl::pw_aff pwaff2) const;
- inline boolean has_dim_id(isl::dim type, unsigned int pos) const;
- inline boolean has_tuple_id(isl::dim type) const;
- inline isl::pw_aff insert_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::pw_aff insert_domain(isl::space domain) const;
- inline isl::pw_aff intersect_domain(isl::set set) const;
- inline isl::pw_aff intersect_domain_wrapped_domain(isl::set set) const;
- inline isl::pw_aff intersect_domain_wrapped_range(isl::set set) const;
- inline isl::pw_aff intersect_params(isl::set set) const;
- inline boolean involves_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline boolean involves_nan() const;
- inline boolean involves_param_id(const isl::id &id) const;
- inline boolean is_cst() const;
- inline boolean is_empty() const;
- inline boolean is_equal(const isl::pw_aff &pa2) const;
- inline boolean isa_aff() const;
- inline isl::map le_map(isl::pw_aff pa2) const;
- inline isl::set le_set(isl::pw_aff pwaff2) const;
- inline isl::map lt_map(isl::pw_aff pa2) const;
- inline isl::set lt_set(isl::pw_aff pwaff2) const;
- inline isl::pw_aff max(isl::pw_aff pwaff2) const;
- inline isl::pw_aff min(isl::pw_aff pwaff2) const;
- inline isl::pw_aff mod(isl::val mod) const;
- inline isl::pw_aff move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const;
- inline isl::pw_aff mul(isl::pw_aff pwaff2) const;
- inline isl_size n_piece() const;
- static inline isl::pw_aff nan_on_domain(isl::local_space ls);
- static inline isl::pw_aff nan_on_domain_space(isl::space space);
- inline isl::set ne_set(isl::pw_aff pwaff2) const;
- inline isl::pw_aff neg() const;
- inline isl::set non_zero_set() const;
- inline isl::set nonneg_set() const;
- static inline isl::pw_aff param_on_domain(isl::set domain, isl::id id);
- inline isl::set params() const;
- inline int plain_cmp(const isl::pw_aff &pa2) const;
- inline boolean plain_is_equal(const isl::pw_aff &pwaff2) const;
- inline isl::set pos_set() const;
- inline isl::pw_aff project_domain_on_params() const;
- inline isl::pw_aff pullback(isl::multi_aff ma) const;
- inline isl::pw_aff pullback(isl::multi_pw_aff mpa) const;
- inline isl::pw_aff pullback(isl::pw_multi_aff pma) const;
- inline isl::pw_aff reset_tuple_id(isl::dim type) const;
- inline isl::pw_aff reset_user() const;
- inline isl::pw_aff scale(isl::val v) const;
- inline isl::pw_aff scale_down(isl::val f) const;
- inline isl::pw_aff set_dim_id(isl::dim type, unsigned int pos, isl::id id) const;
- inline isl::pw_aff set_tuple_id(isl::dim type, isl::id id) const;
- inline isl::pw_aff sub(isl::pw_aff pwaff2) const;
- inline isl::pw_aff subtract_domain(isl::set set) const;
- inline isl::pw_aff tdiv_q(isl::pw_aff pa2) const;
- inline isl::pw_aff tdiv_r(isl::pw_aff pa2) const;
- inline isl::pw_aff union_add(isl::pw_aff pwaff2) const;
- inline isl::pw_aff union_max(isl::pw_aff pwaff2) const;
- inline isl::pw_aff union_min(isl::pw_aff pwaff2) const;
- static inline isl::pw_aff var_on_domain(isl::local_space ls, isl::dim type, unsigned int pos);
- inline isl::set zero_set() const;
-};
-
-// declarations for isl::pw_aff_list
-inline pw_aff_list manage(__isl_take isl_pw_aff_list *ptr);
-inline pw_aff_list manage_copy(__isl_keep isl_pw_aff_list *ptr);
-
-class pw_aff_list {
- friend inline pw_aff_list manage(__isl_take isl_pw_aff_list *ptr);
- friend inline pw_aff_list manage_copy(__isl_keep isl_pw_aff_list *ptr);
-
- isl_pw_aff_list *ptr = nullptr;
-
- inline explicit pw_aff_list(__isl_take isl_pw_aff_list *ptr);
-
-public:
- inline /* implicit */ pw_aff_list();
- inline /* implicit */ pw_aff_list(const pw_aff_list &obj);
- inline pw_aff_list &operator=(pw_aff_list obj);
- inline ~pw_aff_list();
- inline __isl_give isl_pw_aff_list *copy() const &;
- inline __isl_give isl_pw_aff_list *copy() && = delete;
- inline __isl_keep isl_pw_aff_list *get() const;
- inline __isl_give isl_pw_aff_list *release();
- inline bool is_null() const;
- inline isl::ctx ctx() const;
- inline void dump() const;
-
- inline isl::pw_aff_list add(isl::pw_aff el) const;
- static inline isl::pw_aff_list alloc(isl::ctx ctx, int n);
- inline isl::pw_aff_list clear() const;
- inline isl::pw_aff_list concat(isl::pw_aff_list list2) const;
- inline isl::pw_aff_list drop(unsigned int first, unsigned int n) const;
- inline isl::set eq_set(isl::pw_aff_list list2) const;
- inline stat foreach(const std::function<stat(pw_aff)> &fn) const;
- static inline isl::pw_aff_list from_pw_aff(isl::pw_aff el);
- inline isl::set ge_set(isl::pw_aff_list list2) const;
- inline isl::pw_aff get_at(int index) const;
- inline isl::pw_aff get_pw_aff(int index) const;
- inline isl::set gt_set(isl::pw_aff_list list2) const;
- inline isl::pw_aff_list insert(unsigned int pos, isl::pw_aff el) const;
- inline isl::set le_set(isl::pw_aff_list list2) const;
- inline isl::set lt_set(isl::pw_aff_list list2) const;
- inline isl::pw_aff max() const;
- inline isl::pw_aff min() const;
- inline isl_size n_pw_aff() const;
- inline isl::set ne_set(isl::pw_aff_list list2) const;
- inline isl::pw_aff_list reverse() const;
- inline isl::pw_aff_list set_pw_aff(int index, isl::pw_aff el) const;
- inline isl_size size() const;
- inline isl::pw_aff_list swap(unsigned int pos1, unsigned int pos2) const;
+ inline isl::ast_node body() const;
+ inline isl::ast_node get_body() const;
+ inline isl::ast_expr cond() const;
+ inline isl::ast_expr get_cond() const;
+ inline isl::ast_expr inc() const;
+ inline isl::ast_expr get_inc() const;
+ inline isl::ast_expr init() const;
+ inline isl::ast_expr get_init() const;
+ inline boolean is_degenerate() const;
+ inline isl::ast_expr iterator() const;
+ inline isl::ast_expr get_iterator() const;
};
-// declarations for isl::pw_multi_aff
-inline pw_multi_aff manage(__isl_take isl_pw_multi_aff *ptr);
-inline pw_multi_aff manage_copy(__isl_keep isl_pw_multi_aff *ptr);
-
-class pw_multi_aff {
- friend inline pw_multi_aff manage(__isl_take isl_pw_multi_aff *ptr);
- friend inline pw_multi_aff manage_copy(__isl_keep isl_pw_multi_aff *ptr);
+// declarations for isl::ast_node_if
- isl_pw_multi_aff *ptr = nullptr;
+class ast_node_if : public ast_node {
+ template <class T>
+ friend boolean ast_node::isa() const;
+ friend ast_node_if ast_node::as<ast_node_if>() const;
+ static const auto type = isl_ast_node_if;
- inline explicit pw_multi_aff(__isl_take isl_pw_multi_aff *ptr);
+protected:
+ inline explicit ast_node_if(__isl_take isl_ast_node *ptr);
public:
- inline /* implicit */ pw_multi_aff();
- inline /* implicit */ pw_multi_aff(const pw_multi_aff &obj);
- inline /* implicit */ pw_multi_aff(isl::multi_aff ma);
- inline /* implicit */ pw_multi_aff(isl::pw_aff pa);
- inline explicit pw_multi_aff(isl::ctx ctx, const std::string &str);
- inline pw_multi_aff &operator=(pw_multi_aff obj);
- inline ~pw_multi_aff();
- inline __isl_give isl_pw_multi_aff *copy() const &;
- inline __isl_give isl_pw_multi_aff *copy() && = delete;
- inline __isl_keep isl_pw_multi_aff *get() const;
- inline __isl_give isl_pw_multi_aff *release();
- inline bool is_null() const;
+ inline /* implicit */ ast_node_if();
+ inline /* implicit */ ast_node_if(const ast_node_if &obj);
+ inline ast_node_if &operator=(ast_node_if obj);
inline isl::ctx ctx() const;
- inline void dump() const;
- inline isl::pw_multi_aff add(isl::pw_multi_aff pma2) const;
- inline isl::pw_multi_aff add_constant(isl::multi_val mv) const;
- inline isl::pw_multi_aff add_constant(isl::val v) const;
- inline isl::pw_multi_aff align_params(isl::space model) const;
- static inline isl::pw_multi_aff alloc(isl::set set, isl::multi_aff maff);
- inline isl::multi_aff as_multi_aff() const;
- inline isl::pw_multi_aff bind_domain(isl::multi_id tuple) const;
- inline isl::pw_multi_aff bind_domain_wrapped_domain(isl::multi_id tuple) const;
- inline isl::pw_multi_aff coalesce() const;
- inline isl_size dim(isl::dim type) const;
- inline isl::set domain() const;
- static inline isl::pw_multi_aff domain_map(isl::space space);
- inline isl::pw_multi_aff drop_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::pw_multi_aff drop_unused_params() const;
- static inline isl::pw_multi_aff empty(isl::space space);
- inline int find_dim_by_name(isl::dim type, const std::string &name) const;
- inline isl::pw_multi_aff fix_si(isl::dim type, unsigned int pos, int value) const;
- inline isl::pw_multi_aff flat_range_product(isl::pw_multi_aff pma2) const;
- inline stat foreach_piece(const std::function<stat(set, multi_aff)> &fn) const;
- static inline isl::pw_multi_aff from_domain(isl::set set);
- static inline isl::pw_multi_aff from_map(isl::map map);
- static inline isl::pw_multi_aff from_multi_pw_aff(isl::multi_pw_aff mpa);
- static inline isl::pw_multi_aff from_set(isl::set set);
- inline isl::id get_dim_id(isl::dim type, unsigned int pos) const;
- inline std::string get_dim_name(isl::dim type, unsigned int pos) const;
- inline isl::space get_domain_space() const;
- inline isl::pw_aff get_pw_aff(int pos) const;
- inline isl::space get_space() const;
- inline isl::id get_tuple_id(isl::dim type) const;
- inline std::string get_tuple_name(isl::dim type) const;
- inline isl::pw_multi_aff gist(isl::set set) const;
- inline isl::pw_multi_aff gist_params(isl::set set) const;
- inline boolean has_tuple_id(isl::dim type) const;
- inline boolean has_tuple_name(isl::dim type) const;
- static inline isl::pw_multi_aff identity(isl::space space);
- static inline isl::pw_multi_aff identity_on_domain(isl::space space);
- inline isl::pw_multi_aff insert_domain(isl::space domain) const;
- inline isl::pw_multi_aff intersect_domain(isl::set set) const;
- inline isl::pw_multi_aff intersect_domain_wrapped_domain(isl::set set) const;
- inline isl::pw_multi_aff intersect_domain_wrapped_range(isl::set set) const;
- inline isl::pw_multi_aff intersect_params(isl::set set) const;
- inline boolean involves_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline boolean involves_locals() const;
- inline boolean involves_nan() const;
- inline boolean involves_param_id(const isl::id &id) const;
- inline boolean is_equal(const isl::pw_multi_aff &pma2) const;
- inline boolean isa_multi_aff() const;
- inline isl::multi_val max_multi_val() const;
- inline isl::multi_val min_multi_val() const;
- static inline isl::pw_multi_aff multi_val_on_domain(isl::set domain, isl::multi_val mv);
- inline isl_size n_piece() const;
- inline isl::pw_multi_aff neg() const;
- inline boolean plain_is_equal(const isl::pw_multi_aff &pma2) const;
- inline isl::pw_multi_aff preimage_domain_wrapped_domain(isl::pw_multi_aff pma2) const;
- inline isl::pw_multi_aff product(isl::pw_multi_aff pma2) const;
- inline isl::pw_multi_aff project_domain_on_params() const;
- static inline isl::pw_multi_aff project_out_map(isl::space space, isl::dim type, unsigned int first, unsigned int n);
- inline isl::pw_multi_aff pullback(isl::multi_aff ma) const;
- inline isl::pw_multi_aff pullback(isl::pw_multi_aff pma2) const;
- inline isl::pw_multi_aff range_factor_domain() const;
- inline isl::pw_multi_aff range_factor_range() const;
- static inline isl::pw_multi_aff range_map(isl::space space);
- inline isl::pw_multi_aff range_product(isl::pw_multi_aff pma2) const;
- inline isl::pw_multi_aff reset_tuple_id(isl::dim type) const;
- inline isl::pw_multi_aff reset_user() const;
- inline isl::pw_multi_aff scale(isl::val v) const;
- inline isl::pw_multi_aff scale_down(isl::val v) const;
- inline isl::pw_multi_aff scale_multi_val(isl::multi_val mv) const;
- inline isl::pw_multi_aff set_dim_id(isl::dim type, unsigned int pos, isl::id id) const;
- inline isl::pw_multi_aff set_pw_aff(unsigned int pos, isl::pw_aff pa) const;
- inline isl::pw_multi_aff set_tuple_id(isl::dim type, isl::id id) const;
- inline isl::pw_multi_aff sub(isl::pw_multi_aff pma2) const;
- inline isl::pw_multi_aff subtract_domain(isl::set set) const;
- inline isl::pw_multi_aff union_add(isl::pw_multi_aff pma2) const;
- inline isl::pw_multi_aff union_lexmax(isl::pw_multi_aff pma2) const;
- inline isl::pw_multi_aff union_lexmin(isl::pw_multi_aff pma2) const;
- static inline isl::pw_multi_aff zero(isl::space space);
+ inline isl::ast_expr cond() const;
+ inline isl::ast_expr get_cond() const;
+ inline isl::ast_node else_node() const;
+ inline isl::ast_node get_else_node() const;
+ inline boolean has_else_node() const;
+ inline isl::ast_node then_node() const;
+ inline isl::ast_node get_then_node() const;
};
-// declarations for isl::pw_multi_aff_list
-inline pw_multi_aff_list manage(__isl_take isl_pw_multi_aff_list *ptr);
-inline pw_multi_aff_list manage_copy(__isl_keep isl_pw_multi_aff_list *ptr);
+// declarations for isl::ast_node_list
+inline ast_node_list manage(__isl_take isl_ast_node_list *ptr);
+inline ast_node_list manage_copy(__isl_keep isl_ast_node_list *ptr);
-class pw_multi_aff_list {
- friend inline pw_multi_aff_list manage(__isl_take isl_pw_multi_aff_list *ptr);
- friend inline pw_multi_aff_list manage_copy(__isl_keep isl_pw_multi_aff_list *ptr);
+class ast_node_list {
+ friend inline ast_node_list manage(__isl_take isl_ast_node_list *ptr);
+ friend inline ast_node_list manage_copy(__isl_keep isl_ast_node_list *ptr);
- isl_pw_multi_aff_list *ptr = nullptr;
+protected:
+ isl_ast_node_list *ptr = nullptr;
- inline explicit pw_multi_aff_list(__isl_take isl_pw_multi_aff_list *ptr);
+ inline explicit ast_node_list(__isl_take isl_ast_node_list *ptr);
public:
- inline /* implicit */ pw_multi_aff_list();
- inline /* implicit */ pw_multi_aff_list(const pw_multi_aff_list &obj);
- inline pw_multi_aff_list &operator=(pw_multi_aff_list obj);
- inline ~pw_multi_aff_list();
- inline __isl_give isl_pw_multi_aff_list *copy() const &;
- inline __isl_give isl_pw_multi_aff_list *copy() && = delete;
- inline __isl_keep isl_pw_multi_aff_list *get() const;
- inline __isl_give isl_pw_multi_aff_list *release();
+ inline /* implicit */ ast_node_list();
+ inline /* implicit */ ast_node_list(const ast_node_list &obj);
+ inline explicit ast_node_list(isl::ctx ctx, int n);
+ inline explicit ast_node_list(isl::ast_node el);
+ inline ast_node_list &operator=(ast_node_list obj);
+ inline ~ast_node_list();
+ inline __isl_give isl_ast_node_list *copy() const &;
+ inline __isl_give isl_ast_node_list *copy() && = delete;
+ inline __isl_keep isl_ast_node_list *get() const;
+ inline __isl_give isl_ast_node_list *release();
inline bool is_null() const;
inline isl::ctx ctx() const;
- inline void dump() const;
-
- inline isl::pw_multi_aff_list add(isl::pw_multi_aff el) const;
- static inline isl::pw_multi_aff_list alloc(isl::ctx ctx, int n);
- inline isl::pw_multi_aff_list clear() const;
- inline isl::pw_multi_aff_list concat(isl::pw_multi_aff_list list2) const;
- inline isl::pw_multi_aff_list drop(unsigned int first, unsigned int n) const;
- inline stat foreach(const std::function<stat(pw_multi_aff)> &fn) const;
- static inline isl::pw_multi_aff_list from_pw_multi_aff(isl::pw_multi_aff el);
- inline isl::pw_multi_aff get_at(int index) const;
- inline isl::pw_multi_aff get_pw_multi_aff(int index) const;
- inline isl::pw_multi_aff_list insert(unsigned int pos, isl::pw_multi_aff el) const;
- inline isl_size n_pw_multi_aff() const;
- inline isl::pw_multi_aff_list reverse() const;
- inline isl::pw_multi_aff_list set_pw_multi_aff(int index, isl::pw_multi_aff el) const;
- inline isl_size size() const;
- inline isl::pw_multi_aff_list swap(unsigned int pos1, unsigned int pos2) const;
-};
-
-// declarations for isl::pw_qpolynomial
-inline pw_qpolynomial manage(__isl_take isl_pw_qpolynomial *ptr);
-inline pw_qpolynomial manage_copy(__isl_keep isl_pw_qpolynomial *ptr);
-class pw_qpolynomial {
- friend inline pw_qpolynomial manage(__isl_take isl_pw_qpolynomial *ptr);
- friend inline pw_qpolynomial manage_copy(__isl_keep isl_pw_qpolynomial *ptr);
-
- isl_pw_qpolynomial *ptr = nullptr;
-
- inline explicit pw_qpolynomial(__isl_take isl_pw_qpolynomial *ptr);
-
-public:
- inline /* implicit */ pw_qpolynomial();
- inline /* implicit */ pw_qpolynomial(const pw_qpolynomial &obj);
- inline explicit pw_qpolynomial(isl::ctx ctx, const std::string &str);
- inline pw_qpolynomial &operator=(pw_qpolynomial obj);
- inline ~pw_qpolynomial();
- inline __isl_give isl_pw_qpolynomial *copy() const &;
- inline __isl_give isl_pw_qpolynomial *copy() && = delete;
- inline __isl_keep isl_pw_qpolynomial *get() const;
- inline __isl_give isl_pw_qpolynomial *release();
- inline bool is_null() const;
- inline isl::ctx ctx() const;
- inline void dump() const;
-
- inline isl::pw_qpolynomial add(isl::pw_qpolynomial pwqp2) const;
- inline isl::pw_qpolynomial add_dims(isl::dim type, unsigned int n) const;
- static inline isl::pw_qpolynomial alloc(isl::set set, isl::qpolynomial qp);
- inline isl::qpolynomial as_qpolynomial() const;
- inline isl::pw_qpolynomial coalesce() const;
- inline isl_size dim(isl::dim type) const;
- inline isl::set domain() const;
- inline isl::pw_qpolynomial drop_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::pw_qpolynomial drop_unused_params() const;
- inline isl::val eval(isl::point pnt) const;
- inline int find_dim_by_name(isl::dim type, const std::string &name) const;
- inline isl::pw_qpolynomial fix_val(isl::dim type, unsigned int n, isl::val v) const;
- inline stat foreach_piece(const std::function<stat(set, qpolynomial)> &fn) const;
- static inline isl::pw_qpolynomial from_pw_aff(isl::pw_aff pwaff);
- static inline isl::pw_qpolynomial from_qpolynomial(isl::qpolynomial qp);
- inline isl::pw_qpolynomial from_range() const;
- inline isl::space get_domain_space() const;
- inline isl::space get_space() const;
- inline isl::pw_qpolynomial gist(isl::set context) const;
- inline isl::pw_qpolynomial gist_params(isl::set context) const;
- inline boolean has_equal_space(const isl::pw_qpolynomial &pwqp2) const;
- inline isl::pw_qpolynomial insert_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::pw_qpolynomial intersect_domain(isl::set set) const;
- inline isl::pw_qpolynomial intersect_domain_wrapped_domain(isl::set set) const;
- inline isl::pw_qpolynomial intersect_domain_wrapped_range(isl::set set) const;
- inline isl::pw_qpolynomial intersect_params(isl::set set) const;
- inline boolean involves_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline boolean involves_nan() const;
- inline boolean involves_param_id(const isl::id &id) const;
- inline boolean is_zero() const;
- inline boolean isa_qpolynomial() const;
- inline isl::val max() const;
- inline isl::val min() const;
- inline isl::pw_qpolynomial move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const;
- inline isl::pw_qpolynomial mul(isl::pw_qpolynomial pwqp2) const;
- inline isl_size n_piece() const;
- inline isl::pw_qpolynomial neg() const;
- inline boolean plain_is_equal(const isl::pw_qpolynomial &pwqp2) const;
- inline isl::pw_qpolynomial pow(unsigned int exponent) const;
- inline isl::pw_qpolynomial project_domain_on_params() const;
- inline isl::pw_qpolynomial reset_domain_space(isl::space space) const;
- inline isl::pw_qpolynomial reset_user() const;
- inline isl::pw_qpolynomial scale_down_val(isl::val v) const;
- inline isl::pw_qpolynomial scale_val(isl::val v) const;
- inline isl::pw_qpolynomial split_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::pw_qpolynomial split_periods(int max_periods) const;
- inline isl::pw_qpolynomial sub(isl::pw_qpolynomial pwqp2) const;
- inline isl::pw_qpolynomial subtract_domain(isl::set set) const;
- inline isl::pw_qpolynomial to_polynomial(int sign) const;
- static inline isl::pw_qpolynomial zero(isl::space space);
+ inline isl::ast_node_list add(isl::ast_node el) const;
+ inline isl::ast_node at(int index) const;
+ inline isl::ast_node get_at(int index) const;
+ inline isl::ast_node_list clear() const;
+ inline isl::ast_node_list concat(isl::ast_node_list list2) const;
+ inline isl::ast_node_list drop(unsigned int first, unsigned int n) const;
+ inline stat foreach(const std::function<stat(isl::ast_node)> &fn) const;
+ inline isl::ast_node_list insert(unsigned int pos, isl::ast_node el) const;
+ inline class size size() const;
};
-// declarations for isl::pw_qpolynomial_fold_list
-inline pw_qpolynomial_fold_list manage(__isl_take isl_pw_qpolynomial_fold_list *ptr);
-inline pw_qpolynomial_fold_list manage_copy(__isl_keep isl_pw_qpolynomial_fold_list *ptr);
-
-class pw_qpolynomial_fold_list {
- friend inline pw_qpolynomial_fold_list manage(__isl_take isl_pw_qpolynomial_fold_list *ptr);
- friend inline pw_qpolynomial_fold_list manage_copy(__isl_keep isl_pw_qpolynomial_fold_list *ptr);
+// declarations for isl::ast_node_mark
- isl_pw_qpolynomial_fold_list *ptr = nullptr;
+class ast_node_mark : public ast_node {
+ template <class T>
+ friend boolean ast_node::isa() const;
+ friend ast_node_mark ast_node::as<ast_node_mark>() const;
+ static const auto type = isl_ast_node_mark;
- inline explicit pw_qpolynomial_fold_list(__isl_take isl_pw_qpolynomial_fold_list *ptr);
+protected:
+ inline explicit ast_node_mark(__isl_take isl_ast_node *ptr);
public:
- inline /* implicit */ pw_qpolynomial_fold_list();
- inline /* implicit */ pw_qpolynomial_fold_list(const pw_qpolynomial_fold_list &obj);
- inline pw_qpolynomial_fold_list &operator=(pw_qpolynomial_fold_list obj);
- inline ~pw_qpolynomial_fold_list();
- inline __isl_give isl_pw_qpolynomial_fold_list *copy() const &;
- inline __isl_give isl_pw_qpolynomial_fold_list *copy() && = delete;
- inline __isl_keep isl_pw_qpolynomial_fold_list *get() const;
- inline __isl_give isl_pw_qpolynomial_fold_list *release();
- inline bool is_null() const;
+ inline /* implicit */ ast_node_mark();
+ inline /* implicit */ ast_node_mark(const ast_node_mark &obj);
+ inline ast_node_mark &operator=(ast_node_mark obj);
inline isl::ctx ctx() const;
- inline void dump() const;
+ inline isl::id id() const;
+ inline isl::id get_id() const;
+ inline isl::ast_node node() const;
+ inline isl::ast_node get_node() const;
};
-// declarations for isl::pw_qpolynomial_list
-inline pw_qpolynomial_list manage(__isl_take isl_pw_qpolynomial_list *ptr);
-inline pw_qpolynomial_list manage_copy(__isl_keep isl_pw_qpolynomial_list *ptr);
+// declarations for isl::ast_node_user
-class pw_qpolynomial_list {
- friend inline pw_qpolynomial_list manage(__isl_take isl_pw_qpolynomial_list *ptr);
- friend inline pw_qpolynomial_list manage_copy(__isl_keep isl_pw_qpolynomial_list *ptr);
+class ast_node_user : public ast_node {
+ template <class T>
+ friend boolean ast_node::isa() const;
+ friend ast_node_user ast_node::as<ast_node_user>() const;
+ static const auto type = isl_ast_node_user;
- isl_pw_qpolynomial_list *ptr = nullptr;
-
- inline explicit pw_qpolynomial_list(__isl_take isl_pw_qpolynomial_list *ptr);
+protected:
+ inline explicit ast_node_user(__isl_take isl_ast_node *ptr);
public:
- inline /* implicit */ pw_qpolynomial_list();
- inline /* implicit */ pw_qpolynomial_list(const pw_qpolynomial_list &obj);
- inline pw_qpolynomial_list &operator=(pw_qpolynomial_list obj);
- inline ~pw_qpolynomial_list();
- inline __isl_give isl_pw_qpolynomial_list *copy() const &;
- inline __isl_give isl_pw_qpolynomial_list *copy() && = delete;
- inline __isl_keep isl_pw_qpolynomial_list *get() const;
- inline __isl_give isl_pw_qpolynomial_list *release();
- inline bool is_null() const;
+ inline /* implicit */ ast_node_user();
+ inline /* implicit */ ast_node_user(const ast_node_user &obj);
+ inline ast_node_user &operator=(ast_node_user obj);
inline isl::ctx ctx() const;
- inline void dump() const;
-
- inline isl::pw_qpolynomial_list add(isl::pw_qpolynomial el) const;
- static inline isl::pw_qpolynomial_list alloc(isl::ctx ctx, int n);
- inline isl::pw_qpolynomial_list clear() const;
- inline isl::pw_qpolynomial_list concat(isl::pw_qpolynomial_list list2) const;
- inline isl::pw_qpolynomial_list drop(unsigned int first, unsigned int n) const;
- inline stat foreach(const std::function<stat(pw_qpolynomial)> &fn) const;
- static inline isl::pw_qpolynomial_list from_pw_qpolynomial(isl::pw_qpolynomial el);
- inline isl::pw_qpolynomial get_at(int index) const;
- inline isl::pw_qpolynomial get_pw_qpolynomial(int index) const;
- inline isl::pw_qpolynomial_list insert(unsigned int pos, isl::pw_qpolynomial el) const;
- inline isl_size n_pw_qpolynomial() const;
- inline isl::pw_qpolynomial_list reverse() const;
- inline isl::pw_qpolynomial_list set_pw_qpolynomial(int index, isl::pw_qpolynomial el) const;
- inline isl_size size() const;
- inline isl::pw_qpolynomial_list swap(unsigned int pos1, unsigned int pos2) const;
-};
-
-// declarations for isl::qpolynomial
-inline qpolynomial manage(__isl_take isl_qpolynomial *ptr);
-inline qpolynomial manage_copy(__isl_keep isl_qpolynomial *ptr);
-
-class qpolynomial {
- friend inline qpolynomial manage(__isl_take isl_qpolynomial *ptr);
- friend inline qpolynomial manage_copy(__isl_keep isl_qpolynomial *ptr);
-
- isl_qpolynomial *ptr = nullptr;
- inline explicit qpolynomial(__isl_take isl_qpolynomial *ptr);
-
-public:
- inline /* implicit */ qpolynomial();
- inline /* implicit */ qpolynomial(const qpolynomial &obj);
- inline qpolynomial &operator=(qpolynomial obj);
- inline ~qpolynomial();
- inline __isl_give isl_qpolynomial *copy() const &;
- inline __isl_give isl_qpolynomial *copy() && = delete;
- inline __isl_keep isl_qpolynomial *get() const;
- inline __isl_give isl_qpolynomial *release();
- inline bool is_null() const;
- inline isl::ctx ctx() const;
- inline void dump() const;
-
- inline isl::qpolynomial add(isl::qpolynomial qp2) const;
- inline isl::qpolynomial add_dims(isl::dim type, unsigned int n) const;
- inline isl::qpolynomial align_params(isl::space model) const;
- inline stat as_polynomial_on_domain(const isl::basic_set &bset, const std::function<stat(basic_set, qpolynomial)> &fn) const;
- inline isl_size dim(isl::dim type) const;
- inline isl::qpolynomial drop_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::val eval(isl::point pnt) const;
- inline stat foreach_term(const std::function<stat(term)> &fn) const;
- static inline isl::qpolynomial from_aff(isl::aff aff);
- static inline isl::qpolynomial from_constraint(isl::constraint c, isl::dim type, unsigned int pos);
- static inline isl::qpolynomial from_term(isl::term term);
- inline isl::val get_constant_val() const;
- inline isl::space get_domain_space() const;
- inline isl::space get_space() const;
- inline isl::qpolynomial gist(isl::set context) const;
- inline isl::qpolynomial gist_params(isl::set context) const;
- inline isl::qpolynomial homogenize() const;
- static inline isl::qpolynomial infty_on_domain(isl::space domain);
- inline isl::qpolynomial insert_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline boolean involves_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline boolean is_infty() const;
- inline boolean is_nan() const;
- inline boolean is_neginfty() const;
- inline boolean is_zero() const;
- inline isl::qpolynomial move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const;
- inline isl::qpolynomial mul(isl::qpolynomial qp2) const;
- static inline isl::qpolynomial nan_on_domain(isl::space domain);
- inline isl::qpolynomial neg() const;
- static inline isl::qpolynomial neginfty_on_domain(isl::space domain);
- static inline isl::qpolynomial one_on_domain(isl::space domain);
- inline boolean plain_is_equal(const isl::qpolynomial &qp2) const;
- inline isl::qpolynomial pow(unsigned int power) const;
- inline isl::qpolynomial project_domain_on_params() const;
- inline isl::qpolynomial scale_down_val(isl::val v) const;
- inline isl::qpolynomial scale_val(isl::val v) const;
- inline int sgn() const;
- inline isl::qpolynomial sub(isl::qpolynomial qp2) const;
- static inline isl::qpolynomial val_on_domain(isl::space space, isl::val val);
- static inline isl::qpolynomial var_on_domain(isl::space domain, isl::dim type, unsigned int pos);
- static inline isl::qpolynomial zero_on_domain(isl::space domain);
+ inline isl::ast_expr expr() const;
+ inline isl::ast_expr get_expr() const;
};
-// declarations for isl::qpolynomial_list
-inline qpolynomial_list manage(__isl_take isl_qpolynomial_list *ptr);
-inline qpolynomial_list manage_copy(__isl_keep isl_qpolynomial_list *ptr);
+// declarations for isl::basic_map
+inline basic_map manage(__isl_take isl_basic_map *ptr);
+inline basic_map manage_copy(__isl_keep isl_basic_map *ptr);
-class qpolynomial_list {
- friend inline qpolynomial_list manage(__isl_take isl_qpolynomial_list *ptr);
- friend inline qpolynomial_list manage_copy(__isl_keep isl_qpolynomial_list *ptr);
+class basic_map {
+ friend inline basic_map manage(__isl_take isl_basic_map *ptr);
+ friend inline basic_map manage_copy(__isl_keep isl_basic_map *ptr);
- isl_qpolynomial_list *ptr = nullptr;
+protected:
+ isl_basic_map *ptr = nullptr;
- inline explicit qpolynomial_list(__isl_take isl_qpolynomial_list *ptr);
+ inline explicit basic_map(__isl_take isl_basic_map *ptr);
public:
- inline /* implicit */ qpolynomial_list();
- inline /* implicit */ qpolynomial_list(const qpolynomial_list &obj);
- inline qpolynomial_list &operator=(qpolynomial_list obj);
- inline ~qpolynomial_list();
- inline __isl_give isl_qpolynomial_list *copy() const &;
- inline __isl_give isl_qpolynomial_list *copy() && = delete;
- inline __isl_keep isl_qpolynomial_list *get() const;
- inline __isl_give isl_qpolynomial_list *release();
+ inline /* implicit */ basic_map();
+ inline /* implicit */ basic_map(const basic_map &obj);
+ inline explicit basic_map(isl::ctx ctx, const std::string &str);
+ inline basic_map &operator=(basic_map obj);
+ inline ~basic_map();
+ inline __isl_give isl_basic_map *copy() const &;
+ inline __isl_give isl_basic_map *copy() && = delete;
+ inline __isl_keep isl_basic_map *get() const;
+ inline __isl_give isl_basic_map *release();
inline bool is_null() const;
inline isl::ctx ctx() const;
- inline void dump() const;
-
- inline isl::qpolynomial_list add(isl::qpolynomial el) const;
- static inline isl::qpolynomial_list alloc(isl::ctx ctx, int n);
- inline isl::qpolynomial_list clear() const;
- inline isl::qpolynomial_list concat(isl::qpolynomial_list list2) const;
- inline isl::qpolynomial_list drop(unsigned int first, unsigned int n) const;
- inline stat foreach(const std::function<stat(qpolynomial)> &fn) const;
- static inline isl::qpolynomial_list from_qpolynomial(isl::qpolynomial el);
- inline isl::qpolynomial get_at(int index) const;
- inline isl::qpolynomial get_qpolynomial(int index) const;
- inline isl::qpolynomial_list insert(unsigned int pos, isl::qpolynomial el) const;
- inline isl_size n_qpolynomial() const;
- inline isl::qpolynomial_list reverse() const;
- inline isl::qpolynomial_list set_qpolynomial(int index, isl::qpolynomial el) const;
- inline isl_size size() const;
- inline isl::qpolynomial_list swap(unsigned int pos1, unsigned int pos2) const;
-};
-
-// declarations for isl::schedule
-inline schedule manage(__isl_take isl_schedule *ptr);
-inline schedule manage_copy(__isl_keep isl_schedule *ptr);
-class schedule {
- friend inline schedule manage(__isl_take isl_schedule *ptr);
- friend inline schedule manage_copy(__isl_keep isl_schedule *ptr);
-
- isl_schedule *ptr = nullptr;
-
- inline explicit schedule(__isl_take isl_schedule *ptr);
-
-public:
- inline /* implicit */ schedule();
- inline /* implicit */ schedule(const schedule &obj);
- inline explicit schedule(isl::ctx ctx, const std::string &str);
- inline schedule &operator=(schedule obj);
- inline ~schedule();
- inline __isl_give isl_schedule *copy() const &;
- inline __isl_give isl_schedule *copy() && = delete;
- inline __isl_keep isl_schedule *get() const;
- inline __isl_give isl_schedule *release();
- inline bool is_null() const;
- inline isl::ctx ctx() const;
- inline void dump() const;
-
- inline isl::schedule align_params(isl::space space) const;
- static inline isl::schedule empty(isl::space space);
- static inline isl::schedule from_domain(isl::union_set domain);
- inline isl::union_set get_domain() const;
- inline isl::union_map get_map() const;
- inline isl::schedule_node get_root() const;
- inline isl::schedule gist_domain_params(isl::set context) const;
- inline isl::schedule insert_context(isl::set context) const;
- inline isl::schedule insert_guard(isl::set guard) const;
- inline isl::schedule insert_partial_schedule(isl::multi_union_pw_aff partial) const;
- inline isl::schedule intersect_domain(isl::union_set domain) const;
- inline boolean plain_is_equal(const isl::schedule &schedule2) const;
- inline isl::schedule pullback(isl::union_pw_multi_aff upma) const;
- inline isl::schedule reset_user() const;
- inline isl::schedule sequence(isl::schedule schedule2) const;
+ inline isl::map add_constraint(const isl::constraint &constraint) const;
+ inline isl::map add_dims(isl::dim type, unsigned int n) const;
+ inline isl::basic_map affine_hull() const;
+ inline isl::map align_params(const isl::space &model) const;
+ inline isl::basic_map apply_domain(isl::basic_map bmap2) const;
+ inline isl::map apply_domain(const isl::map &map2) const;
+ inline isl::union_map apply_domain(const isl::union_map &umap2) const;
+ inline isl::basic_map apply_range(isl::basic_map bmap2) const;
+ inline isl::map apply_range(const isl::map &map2) const;
+ inline isl::union_map apply_range(const isl::union_map &umap2) const;
+ inline isl::map as_map() const;
+ inline isl::multi_union_pw_aff as_multi_union_pw_aff() const;
+ inline isl::pw_multi_aff as_pw_multi_aff() const;
+ inline isl::union_pw_multi_aff as_union_pw_multi_aff() const;
+ inline isl::basic_map_list basic_map_list() const;
+ inline isl::set bind_domain(const isl::multi_id &tuple) const;
+ inline isl::set bind_range(const isl::multi_id &tuple) const;
+ inline boolean can_curry() const;
+ inline isl::map coalesce() const;
+ inline isl::map complement() const;
+ inline isl::union_map compute_divs() const;
+ inline isl::map curry() const;
+ inline isl::basic_set deltas() const;
+ inline isl::basic_map detect_equalities() const;
+ inline class size dim(isl::dim type) const;
+ inline isl::pw_aff dim_max(int pos) const;
+ inline isl::pw_aff dim_min(int pos) const;
+ inline isl::basic_set domain() const;
+ inline isl::map domain_factor_domain() const;
+ inline isl::map domain_factor_range() const;
+ inline isl::map domain_map() const;
+ inline isl::union_pw_multi_aff domain_map_union_pw_multi_aff() const;
+ inline isl::map domain_product(const isl::map &map2) const;
+ inline isl::union_map domain_product(const isl::union_map &umap2) const;
+ inline class size domain_tuple_dim() const;
+ inline isl::id domain_tuple_id() const;
+ inline isl::map eq_at(const isl::multi_pw_aff &mpa) const;
+ inline isl::union_map eq_at(const isl::multi_union_pw_aff &mupa) const;
+ static inline isl::basic_map equal(isl::space space, unsigned int n_equal);
+ inline isl::basic_map equate(isl::dim type1, int pos1, isl::dim type2, int pos2) const;
+ inline boolean every_map(const std::function<boolean(isl::map)> &test) const;
+ inline isl::map extract_map(const isl::space &space) const;
+ inline isl::map factor_domain() const;
+ inline isl::map factor_range() const;
+ inline isl::basic_map fix_si(isl::dim type, unsigned int pos, int value) const;
+ inline isl::basic_map fix_val(isl::dim type, unsigned int pos, isl::val v) const;
+ inline isl::basic_map fix_val(isl::dim type, unsigned int pos, long v) const;
+ inline isl::union_map fixed_power(const isl::val &exp) const;
+ inline isl::union_map fixed_power(long exp) const;
+ inline isl::map flat_range_product(const isl::map &map2) const;
+ inline isl::union_map flat_range_product(const isl::union_map &umap2) const;
+ inline isl::basic_map flatten() const;
+ inline isl::basic_map flatten_domain() const;
+ inline isl::basic_map flatten_range() const;
+ inline isl::map floordiv_val(const isl::val &d) const;
+ inline isl::map floordiv_val(long d) const;
+ inline stat foreach_basic_map(const std::function<stat(isl::basic_map)> &fn) const;
+ inline stat foreach_map(const std::function<stat(isl::map)> &fn) const;
+ static inline isl::basic_map from_aff(isl::aff aff);
+ static inline isl::basic_map from_domain_and_range(isl::basic_set domain, isl::basic_set range);
+ inline isl::basic_map gist(isl::basic_map context) const;
+ inline isl::map gist(const isl::map &context) const;
+ inline isl::union_map gist(const isl::union_map &context) const;
+ inline isl::map gist_domain(const isl::set &context) const;
+ inline isl::union_map gist_domain(const isl::union_set &uset) const;
+ inline isl::map gist_params(const isl::set &context) const;
+ inline isl::union_map gist_range(const isl::union_set &uset) const;
+ inline boolean has_domain_tuple_id() const;
+ inline boolean has_equal_space(const isl::map &map2) const;
+ inline boolean has_range_tuple_id() const;
+ inline boolean has_tuple_id(isl::dim type) const;
+ inline boolean has_tuple_name(isl::dim type) const;
+ inline isl::basic_map intersect(isl::basic_map bmap2) const;
+ inline isl::map intersect(const isl::map &map2) const;
+ inline isl::union_map intersect(const isl::union_map &umap2) const;
+ inline isl::basic_map intersect_domain(isl::basic_set bset) const;
+ inline isl::map intersect_domain(const isl::set &set) const;
+ inline isl::union_map intersect_domain(const isl::space &space) const;
+ inline isl::union_map intersect_domain(const isl::union_set &uset) const;
+ inline isl::basic_map intersect_domain(const isl::point &bset) const;
+ inline isl::map intersect_domain_factor_domain(const isl::map &factor) const;
+ inline isl::union_map intersect_domain_factor_domain(const isl::union_map &factor) const;
+ inline isl::map intersect_domain_factor_range(const isl::map &factor) const;
+ inline isl::union_map intersect_domain_factor_range(const isl::union_map &factor) const;
+ inline isl::map intersect_params(const isl::set ¶ms) const;
+ inline isl::basic_map intersect_range(isl::basic_set bset) const;
+ inline isl::map intersect_range(const isl::set &set) const;
+ inline isl::union_map intersect_range(const isl::space &space) const;
+ inline isl::union_map intersect_range(const isl::union_set &uset) const;
+ inline isl::basic_map intersect_range(const isl::point &bset) const;
+ inline isl::map intersect_range_factor_domain(const isl::map &factor) const;
+ inline isl::union_map intersect_range_factor_domain(const isl::union_map &factor) const;
+ inline isl::map intersect_range_factor_range(const isl::map &factor) const;
+ inline isl::union_map intersect_range_factor_range(const isl::union_map &factor) const;
+ inline boolean involves_dims(isl::dim type, unsigned int first, unsigned int n) const;
+ inline boolean is_bijective() const;
+ inline boolean is_disjoint(const isl::map &map2) const;
+ inline boolean is_disjoint(const isl::union_map &umap2) const;
+ inline boolean is_empty() const;
+ inline boolean is_equal(const isl::basic_map &bmap2) const;
+ inline boolean is_equal(const isl::map &map2) const;
+ inline boolean is_equal(const isl::union_map &umap2) const;
+ inline boolean is_injective() const;
+ inline boolean is_single_valued() const;
+ inline boolean is_strict_subset(const isl::map &map2) const;
+ inline boolean is_strict_subset(const isl::union_map &umap2) const;
+ inline boolean is_subset(const isl::basic_map &bmap2) const;
+ inline boolean is_subset(const isl::map &map2) const;
+ inline boolean is_subset(const isl::union_map &umap2) const;
+ inline boolean isa_map() const;
+ inline isl::map lex_ge_at(const isl::multi_pw_aff &mpa) const;
+ inline isl::map lex_gt_at(const isl::multi_pw_aff &mpa) const;
+ inline isl::map lex_le_at(const isl::multi_pw_aff &mpa) const;
+ inline isl::map lex_lt_at(const isl::multi_pw_aff &mpa) const;
+ inline isl::map lexmax() const;
+ inline isl::pw_multi_aff lexmax_pw_multi_aff() const;
+ inline isl::map lexmin() const;
+ inline isl::pw_multi_aff lexmin_pw_multi_aff() const;
+ inline isl::map lower_bound(const isl::multi_pw_aff &lower) const;
+ inline isl::map lower_bound_si(isl::dim type, unsigned int pos, int value) const;
+ inline isl::map_list map_list() const;
+ inline isl::multi_pw_aff max_multi_pw_aff() const;
+ inline isl::multi_pw_aff min_multi_pw_aff() const;
+ inline isl::map move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const;
+ inline class size n_basic_map() const;
+ inline isl::map order_lt(isl::dim type1, int pos1, isl::dim type2, int pos2) const;
+ inline isl::set params() const;
+ inline isl::val plain_get_val_if_fixed(isl::dim type, unsigned int pos) const;
+ inline isl::basic_map polyhedral_hull() const;
+ inline isl::map preimage_domain(const isl::multi_aff &ma) const;
+ inline isl::map preimage_domain(const isl::multi_pw_aff &mpa) const;
+ inline isl::map preimage_domain(const isl::pw_multi_aff &pma) const;
+ inline isl::union_map preimage_domain(const isl::union_pw_multi_aff &upma) const;
+ inline isl::map preimage_range(const isl::multi_aff &ma) const;
+ inline isl::map preimage_range(const isl::pw_multi_aff &pma) const;
+ inline isl::union_map preimage_range(const isl::union_pw_multi_aff &upma) const;
+ inline isl::map product(const isl::map &map2) const;
+ inline isl::union_map product(const isl::union_map &umap2) const;
+ inline isl::map project_out(isl::dim type, unsigned int first, unsigned int n) const;
+ inline isl::map project_out_all_params() const;
+ inline isl::set range() const;
+ inline isl::map range_factor_domain() const;
+ inline isl::map range_factor_range() const;
+ inline isl::fixed_box range_lattice_tile() const;
+ inline isl::map range_map() const;
+ inline isl::map range_product(const isl::map &map2) const;
+ inline isl::union_map range_product(const isl::union_map &umap2) const;
+ inline isl::map range_reverse() const;
+ inline isl::fixed_box range_simple_fixed_box_hull() const;
+ inline class size range_tuple_dim() const;
+ inline isl::id range_tuple_id() const;
+ inline isl::basic_map reverse() const;
+ inline isl::basic_map sample() const;
+ inline isl::map set_domain_tuple(const isl::id &id) const;
+ inline isl::map set_domain_tuple(const std::string &id) const;
+ inline isl::map set_range_tuple(const isl::id &id) const;
+ inline isl::map set_range_tuple(const std::string &id) const;
+ inline isl::map set_tuple_id(isl::dim type, const isl::id &id) const;
+ inline isl::map set_tuple_id(isl::dim type, const std::string &id) const;
+ inline isl::space space() const;
+ inline isl::map subtract(const isl::map &map2) const;
+ inline isl::union_map subtract(const isl::union_map &umap2) const;
+ inline isl::union_map subtract_domain(const isl::union_set &dom) const;
+ inline isl::union_map subtract_range(const isl::union_set &dom) const;
+ inline isl::map sum(const isl::map &map2) const;
+ inline isl::basic_map_list to_list() const;
+ inline isl::union_map to_union_map() const;
+ inline isl::id tuple_id(isl::dim type) const;
+ inline isl::map uncurry() const;
+ inline isl::map unite(isl::basic_map bmap2) const;
+ inline isl::map unite(const isl::map &map2) const;
+ inline isl::union_map unite(const isl::union_map &umap2) const;
+ static inline isl::basic_map universe(isl::space space);
+ inline isl::basic_map unshifted_simple_hull() const;
+ inline isl::map upper_bound(const isl::multi_pw_aff &upper) const;
+ inline isl::map upper_bound_si(isl::dim type, unsigned int pos, int value) const;
+ inline isl::set wrap() const;
+ inline isl::map zip() const;
};
-// declarations for isl::schedule_constraints
-inline schedule_constraints manage(__isl_take isl_schedule_constraints *ptr);
-inline schedule_constraints manage_copy(__isl_keep isl_schedule_constraints *ptr);
+// declarations for isl::basic_map_list
+inline basic_map_list manage(__isl_take isl_basic_map_list *ptr);
+inline basic_map_list manage_copy(__isl_keep isl_basic_map_list *ptr);
-class schedule_constraints {
- friend inline schedule_constraints manage(__isl_take isl_schedule_constraints *ptr);
- friend inline schedule_constraints manage_copy(__isl_keep isl_schedule_constraints *ptr);
+class basic_map_list {
+ friend inline basic_map_list manage(__isl_take isl_basic_map_list *ptr);
+ friend inline basic_map_list manage_copy(__isl_keep isl_basic_map_list *ptr);
- isl_schedule_constraints *ptr = nullptr;
+protected:
+ isl_basic_map_list *ptr = nullptr;
- inline explicit schedule_constraints(__isl_take isl_schedule_constraints *ptr);
+ inline explicit basic_map_list(__isl_take isl_basic_map_list *ptr);
public:
- inline /* implicit */ schedule_constraints();
- inline /* implicit */ schedule_constraints(const schedule_constraints &obj);
- inline explicit schedule_constraints(isl::ctx ctx, const std::string &str);
- inline schedule_constraints &operator=(schedule_constraints obj);
- inline ~schedule_constraints();
- inline __isl_give isl_schedule_constraints *copy() const &;
- inline __isl_give isl_schedule_constraints *copy() && = delete;
- inline __isl_keep isl_schedule_constraints *get() const;
- inline __isl_give isl_schedule_constraints *release();
+ inline /* implicit */ basic_map_list();
+ inline /* implicit */ basic_map_list(const basic_map_list &obj);
+ inline explicit basic_map_list(isl::ctx ctx, int n);
+ inline explicit basic_map_list(isl::basic_map el);
+ inline basic_map_list &operator=(basic_map_list obj);
+ inline ~basic_map_list();
+ inline __isl_give isl_basic_map_list *copy() const &;
+ inline __isl_give isl_basic_map_list *copy() && = delete;
+ inline __isl_keep isl_basic_map_list *get() const;
+ inline __isl_give isl_basic_map_list *release();
inline bool is_null() const;
inline isl::ctx ctx() const;
- inline void dump() const;
- inline isl::schedule_constraints apply(isl::union_map umap) const;
- inline isl::schedule compute_schedule() const;
- inline isl::union_map get_coincidence() const;
- inline isl::union_map get_conditional_validity() const;
- inline isl::union_map get_conditional_validity_condition() const;
- inline isl::set get_context() const;
- inline isl::union_set get_domain() const;
- inline isl::union_map get_proximity() const;
- inline isl::union_map get_validity() const;
- static inline isl::schedule_constraints on_domain(isl::union_set domain);
- inline isl::schedule_constraints set_coincidence(isl::union_map coincidence) const;
- inline isl::schedule_constraints set_conditional_validity(isl::union_map condition, isl::union_map validity) const;
- inline isl::schedule_constraints set_context(isl::set context) const;
- inline isl::schedule_constraints set_proximity(isl::union_map proximity) const;
- inline isl::schedule_constraints set_validity(isl::union_map validity) const;
+ inline isl::basic_map_list add(isl::basic_map el) const;
+ inline isl::basic_map at(int index) const;
+ inline isl::basic_map get_at(int index) const;
+ inline isl::basic_map_list clear() const;
+ inline isl::basic_map_list concat(isl::basic_map_list list2) const;
+ inline isl::basic_map_list drop(unsigned int first, unsigned int n) const;
+ inline stat foreach(const std::function<stat(isl::basic_map)> &fn) const;
+ inline isl::basic_map_list insert(unsigned int pos, isl::basic_map el) const;
+ inline class size size() const;
};
-// declarations for isl::schedule_node
-inline schedule_node manage(__isl_take isl_schedule_node *ptr);
-inline schedule_node manage_copy(__isl_keep isl_schedule_node *ptr);
+// declarations for isl::basic_set
+inline basic_set manage(__isl_take isl_basic_set *ptr);
+inline basic_set manage_copy(__isl_keep isl_basic_set *ptr);
-class schedule_node {
- friend inline schedule_node manage(__isl_take isl_schedule_node *ptr);
- friend inline schedule_node manage_copy(__isl_keep isl_schedule_node *ptr);
+class basic_set {
+ friend inline basic_set manage(__isl_take isl_basic_set *ptr);
+ friend inline basic_set manage_copy(__isl_keep isl_basic_set *ptr);
- isl_schedule_node *ptr = nullptr;
+protected:
+ isl_basic_set *ptr = nullptr;
- inline explicit schedule_node(__isl_take isl_schedule_node *ptr);
+ inline explicit basic_set(__isl_take isl_basic_set *ptr);
public:
- inline /* implicit */ schedule_node();
- inline /* implicit */ schedule_node(const schedule_node &obj);
- inline schedule_node &operator=(schedule_node obj);
- inline ~schedule_node();
- inline __isl_give isl_schedule_node *copy() const &;
- inline __isl_give isl_schedule_node *copy() && = delete;
- inline __isl_keep isl_schedule_node *get() const;
- inline __isl_give isl_schedule_node *release();
+ inline /* implicit */ basic_set();
+ inline /* implicit */ basic_set(const basic_set &obj);
+ inline /* implicit */ basic_set(isl::point pnt);
+ inline explicit basic_set(isl::ctx ctx, const std::string &str);
+ inline basic_set &operator=(basic_set obj);
+ inline ~basic_set();
+ inline __isl_give isl_basic_set *copy() const &;
+ inline __isl_give isl_basic_set *copy() && = delete;
+ inline __isl_keep isl_basic_set *get() const;
+ inline __isl_give isl_basic_set *release();
inline bool is_null() const;
inline isl::ctx ctx() const;
- inline void dump() const;
-
- inline isl::schedule_node align_params(isl::space space) const;
- inline isl::schedule_node ancestor(int generation) const;
- inline boolean band_member_get_coincident(int pos) const;
- inline isl::schedule_node band_member_set_coincident(int pos, int coincident) const;
- inline isl::schedule_node band_set_ast_build_options(isl::union_set options) const;
- inline isl::schedule_node child(int pos) const;
- inline isl::set context_get_context() const;
- inline isl::schedule_node cut() const;
- inline isl::union_set domain_get_domain() const;
- inline isl::union_pw_multi_aff expansion_get_contraction() const;
- inline isl::union_map expansion_get_expansion() const;
- inline isl::union_map extension_get_extension() const;
- inline isl::union_set filter_get_filter() const;
- inline isl::schedule_node first_child() const;
- inline stat foreach_ancestor_top_down(const std::function<stat(schedule_node)> &fn) const;
- static inline isl::schedule_node from_domain(isl::union_set domain);
- static inline isl::schedule_node from_extension(isl::union_map extension);
- inline isl_size get_ancestor_child_position(const isl::schedule_node &ancestor) const;
- inline isl::schedule_node get_child(int pos) const;
- inline isl_size get_child_position() const;
- inline isl::union_set get_domain() const;
- inline isl::multi_union_pw_aff get_prefix_schedule_multi_union_pw_aff() const;
- inline isl::union_map get_prefix_schedule_relation() const;
- inline isl::union_map get_prefix_schedule_union_map() const;
- inline isl::union_pw_multi_aff get_prefix_schedule_union_pw_multi_aff() const;
- inline isl::schedule get_schedule() const;
- inline isl_size get_schedule_depth() const;
- inline isl::schedule_node get_shared_ancestor(const isl::schedule_node &node2) const;
- inline isl::union_pw_multi_aff get_subtree_contraction() const;
- inline isl::union_map get_subtree_expansion() const;
- inline isl::union_map get_subtree_schedule_union_map() const;
- inline isl_size get_tree_depth() const;
- inline isl::union_set get_universe_domain() const;
- inline isl::schedule_node graft_after(isl::schedule_node graft) const;
- inline isl::schedule_node graft_before(isl::schedule_node graft) const;
- inline isl::schedule_node group(isl::id group_id) const;
- inline isl::set guard_get_guard() const;
- inline boolean has_children() const;
- inline boolean has_next_sibling() const;
- inline boolean has_parent() const;
- inline boolean has_previous_sibling() const;
- inline isl::schedule_node insert_context(isl::set context) const;
- inline isl::schedule_node insert_filter(isl::union_set filter) const;
- inline isl::schedule_node insert_guard(isl::set context) const;
- inline isl::schedule_node insert_mark(isl::id mark) const;
- inline isl::schedule_node insert_partial_schedule(isl::multi_union_pw_aff schedule) const;
- inline isl::schedule_node insert_sequence(isl::union_set_list filters) const;
- inline isl::schedule_node insert_set(isl::union_set_list filters) const;
- inline boolean is_equal(const isl::schedule_node &node2) const;
- inline boolean is_subtree_anchored() const;
- inline isl::id mark_get_id() const;
- inline isl_size n_children() const;
- inline isl::schedule_node next_sibling() const;
- inline isl::schedule_node order_after(isl::union_set filter) const;
- inline isl::schedule_node order_before(isl::union_set filter) const;
- inline isl::schedule_node parent() const;
- inline isl::schedule_node previous_sibling() const;
- inline isl::schedule_node reset_user() const;
- inline isl::schedule_node root() const;
- inline isl::schedule_node sequence_splice_child(int pos) const;
-};
-
-// declarations for isl::set
-inline set manage(__isl_take isl_set *ptr);
-inline set manage_copy(__isl_keep isl_set *ptr);
-
-class set {
- friend inline set manage(__isl_take isl_set *ptr);
- friend inline set manage_copy(__isl_keep isl_set *ptr);
-
- isl_set *ptr = nullptr;
- inline explicit set(__isl_take isl_set *ptr);
-
-public:
- inline /* implicit */ set();
- inline /* implicit */ set(const set &obj);
- inline /* implicit */ set(isl::basic_set bset);
- inline /* implicit */ set(isl::point pnt);
- inline explicit set(isl::union_set uset);
- inline explicit set(isl::ctx ctx, const std::string &str);
- inline set &operator=(set obj);
- inline ~set();
- inline __isl_give isl_set *copy() const &;
- inline __isl_give isl_set *copy() && = delete;
- inline __isl_keep isl_set *get() const;
- inline __isl_give isl_set *release();
- inline bool is_null() const;
- inline isl::ctx ctx() const;
- inline void dump() const;
-
- inline isl::set add_constraint(isl::constraint constraint) const;
+ inline isl::set add_constraint(const isl::constraint &constraint) const;
inline isl::set add_dims(isl::dim type, unsigned int n) const;
inline isl::basic_set affine_hull() const;
- inline isl::set align_params(isl::space model) const;
- inline isl::set apply(isl::map map) const;
- inline isl::set bind(isl::multi_id tuple) const;
- inline isl::basic_set bounded_simple_hull() const;
- static inline isl::set box_from_points(isl::point pnt1, isl::point pnt2);
+ inline isl::set align_params(const isl::space &model) const;
+ inline isl::basic_set apply(isl::basic_map bmap) const;
+ inline isl::set apply(const isl::map &map) const;
+ inline isl::union_set apply(const isl::union_map &umap) const;
+ inline isl::pw_multi_aff as_pw_multi_aff() const;
+ inline isl::set as_set() const;
+ inline isl::basic_set_list basic_set_list() const;
+ inline isl::set bind(const isl::multi_id &tuple) const;
inline isl::set coalesce() const;
- inline isl::basic_set coefficients() const;
inline isl::set complement() const;
+ inline isl::union_set compute_divs() const;
+ inline boolean contains(const isl::space &space) const;
inline isl::basic_set convex_hull() const;
- inline isl::val count_val() const;
- inline isl::set detect_equalities() const;
- inline isl_size dim(isl::dim type) const;
+ inline isl::basic_set detect_equalities() const;
+ inline class size dim(isl::dim type) const;
inline boolean dim_has_any_lower_bound(isl::dim type, unsigned int pos) const;
- inline boolean dim_has_any_upper_bound(isl::dim type, unsigned int pos) const;
- inline boolean dim_has_lower_bound(isl::dim type, unsigned int pos) const;
- inline boolean dim_has_upper_bound(isl::dim type, unsigned int pos) const;
- inline boolean dim_is_bounded(isl::dim type, unsigned int pos) const;
+ inline isl::id dim_id(isl::dim type, unsigned int pos) const;
inline isl::pw_aff dim_max(int pos) const;
inline isl::val dim_max_val(int pos) const;
inline isl::pw_aff dim_min(int pos) const;
inline isl::val dim_min_val(int pos) const;
+ inline std::string dim_name(isl::dim type, unsigned int pos) const;
+ inline isl::aff div(int pos) const;
+ inline isl::aff get_div(int pos) const;
inline isl::set drop_constraints_involving_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::set drop_constraints_not_involving_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::set drop_unused_params() const;
inline isl::set eliminate(isl::dim type, unsigned int first, unsigned int n) const;
- static inline isl::set empty(isl::space space);
- inline isl::set equate(isl::dim type1, int pos1, isl::dim type2, int pos2) const;
+ inline boolean every_set(const std::function<boolean(isl::set)> &test) const;
+ inline isl::set extract_set(const isl::space &space) const;
inline int find_dim_by_id(isl::dim type, const isl::id &id) const;
- inline int find_dim_by_name(isl::dim type, const std::string &name) const;
- inline isl::set fix_si(isl::dim type, unsigned int pos, int value) const;
- inline isl::set fix_val(isl::dim type, unsigned int pos, isl::val v) const;
- inline isl::set flat_product(isl::set set2) const;
- inline isl::set flatten() const;
- inline isl::map flatten_map() const;
- inline int follows_at(const isl::set &set2, int pos) const;
- inline stat foreach_basic_set(const std::function<stat(basic_set)> &fn) const;
- inline stat foreach_point(const std::function<stat(point)> &fn) const;
- static inline isl::set from_multi_aff(isl::multi_aff ma);
- static inline isl::set from_multi_pw_aff(isl::multi_pw_aff mpa);
- inline isl::set from_params() const;
- static inline isl::set from_pw_aff(isl::pw_aff pwaff);
- static inline isl::set from_pw_multi_aff(isl::pw_multi_aff pma);
- inline isl::basic_set_list get_basic_set_list() const;
- inline isl::id get_dim_id(isl::dim type, unsigned int pos) const;
- inline std::string get_dim_name(isl::dim type, unsigned int pos) const;
- inline isl::multi_val get_plain_multi_val_if_fixed() const;
- inline isl::fixed_box get_simple_fixed_box_hull() const;
- inline isl::space get_space() const;
- inline isl::val get_stride(int pos) const;
- inline isl::id get_tuple_id() const;
- inline std::string get_tuple_name() const;
- inline isl::set gist(isl::set context) const;
- inline isl::set gist_basic_set(isl::basic_set context) const;
- inline isl::set gist_params(isl::set context) const;
- inline boolean has_dim_id(isl::dim type, unsigned int pos) const;
- inline boolean has_dim_name(isl::dim type, unsigned int pos) const;
+ inline int find_dim_by_id(isl::dim type, const std::string &id) const;
+ inline isl::basic_set fix_si(isl::dim type, unsigned int pos, int value) const;
+ inline isl::basic_set fix_val(isl::dim type, unsigned int pos, isl::val v) const;
+ inline isl::basic_set fix_val(isl::dim type, unsigned int pos, long v) const;
+ inline isl::basic_set flatten() const;
+ inline stat foreach_basic_set(const std::function<stat(isl::basic_set)> &fn) const;
+ inline stat foreach_point(const std::function<stat(isl::point)> &fn) const;
+ inline stat foreach_set(const std::function<stat(isl::set)> &fn) const;
+ inline isl::basic_set gist(isl::basic_set context) const;
+ inline isl::set gist(const isl::set &context) const;
+ inline isl::union_set gist(const isl::union_set &context) const;
+ inline isl::basic_set gist(const isl::point &context) const;
+ inline isl::set gist_params(const isl::set &context) const;
inline boolean has_equal_space(const isl::set &set2) const;
- inline boolean has_tuple_id() const;
- inline boolean has_tuple_name() const;
inline isl::map identity() const;
+ inline isl::union_pw_multi_aff identity_union_pw_multi_aff() const;
inline isl::pw_aff indicator_function() const;
inline isl::set insert_dims(isl::dim type, unsigned int pos, unsigned int n) const;
- inline isl::map insert_domain(isl::space domain) const;
- inline isl::set intersect(isl::set set2) const;
- inline isl::set intersect_factor_domain(isl::set domain) const;
- inline isl::set intersect_factor_range(isl::set range) const;
- inline isl::set intersect_params(isl::set params) const;
+ inline isl::map insert_domain(const isl::space &domain) const;
+ inline isl::basic_set intersect(isl::basic_set bset2) const;
+ inline isl::set intersect(const isl::set &set2) const;
+ inline isl::union_set intersect(const isl::union_set &uset2) const;
+ inline isl::basic_set intersect(const isl::point &bset2) const;
+ inline isl::basic_set intersect_params(isl::basic_set bset2) const;
+ inline isl::set intersect_params(const isl::set ¶ms) const;
+ inline isl::basic_set intersect_params(const isl::point &bset2) const;
inline boolean involves_dims(isl::dim type, unsigned int first, unsigned int n) const;
inline boolean involves_locals() const;
inline boolean is_bounded() const;
- inline boolean is_box() const;
inline boolean is_disjoint(const isl::set &set2) const;
+ inline boolean is_disjoint(const isl::union_set &uset2) const;
inline boolean is_empty() const;
+ inline boolean is_equal(const isl::basic_set &bset2) const;
inline boolean is_equal(const isl::set &set2) const;
+ inline boolean is_equal(const isl::union_set &uset2) const;
+ inline boolean is_equal(const isl::point &bset2) const;
inline boolean is_params() const;
inline boolean is_singleton() const;
inline boolean is_strict_subset(const isl::set &set2) const;
+ inline boolean is_strict_subset(const isl::union_set &uset2) const;
+ inline boolean is_subset(const isl::basic_set &bset2) const;
inline boolean is_subset(const isl::set &set2) const;
+ inline boolean is_subset(const isl::union_set &uset2) const;
+ inline boolean is_subset(const isl::point &bset2) const;
inline boolean is_wrapping() const;
- inline isl::map lex_ge_set(isl::set set2) const;
- inline isl::map lex_gt_set(isl::set set2) const;
- inline isl::map lex_lt_set(isl::set set2) const;
+ inline boolean isa_set() const;
inline isl::set lexmax() const;
inline isl::pw_multi_aff lexmax_pw_multi_aff() const;
inline isl::set lexmin() const;
inline isl::pw_multi_aff lexmin_pw_multi_aff() const;
- inline isl::set lower_bound(isl::multi_pw_aff lower) const;
- inline isl::set lower_bound(isl::multi_val lower) const;
+ inline isl::set lower_bound(const isl::multi_pw_aff &lower) const;
+ inline isl::set lower_bound(const isl::multi_val &lower) const;
inline isl::set lower_bound_si(isl::dim type, unsigned int pos, int value) const;
- inline isl::set lower_bound_val(isl::dim type, unsigned int pos, isl::val value) const;
+ inline isl::set lower_bound_val(isl::dim type, unsigned int pos, const isl::val &value) const;
+ inline isl::set lower_bound_val(isl::dim type, unsigned int pos, long value) const;
inline isl::multi_pw_aff max_multi_pw_aff() const;
inline isl::val max_val(const isl::aff &obj) const;
inline isl::multi_pw_aff min_multi_pw_aff() const;
inline isl::val min_val(const isl::aff &obj) const;
- inline isl::set move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const;
- inline isl_size n_basic_set() const;
- inline isl_size n_dim() const;
- static inline isl::set nat_universe(isl::space space);
- inline isl::set neg() const;
- inline isl::set params() const;
- inline int plain_cmp(const isl::set &set2) const;
+ inline class size n_basic_set() const;
+ inline isl::basic_set params() const;
inline isl::val plain_get_val_if_fixed(isl::dim type, unsigned int pos) const;
- inline boolean plain_is_disjoint(const isl::set &set2) const;
- inline boolean plain_is_empty() const;
- inline boolean plain_is_equal(const isl::set &set2) const;
- inline boolean plain_is_universe() const;
- inline isl::basic_set plain_unshifted_simple_hull() const;
+ inline isl::multi_val plain_multi_val_if_fixed() const;
inline isl::basic_set polyhedral_hull() const;
- inline isl::set preimage(isl::multi_aff ma) const;
- inline isl::set preimage(isl::multi_pw_aff mpa) const;
- inline isl::set preimage(isl::pw_multi_aff pma) const;
- inline isl::set product(isl::set set2) const;
- inline isl::map project_onto_map(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::set project_out(isl::dim type, unsigned int first, unsigned int n) const;
+ inline isl::set preimage(const isl::multi_aff &ma) const;
+ inline isl::set preimage(const isl::multi_pw_aff &mpa) const;
+ inline isl::set preimage(const isl::pw_multi_aff &pma) const;
+ inline isl::union_set preimage(const isl::union_pw_multi_aff &upma) const;
+ inline isl::set product(const isl::set &set2) const;
+ inline isl::basic_set project_out(isl::dim type, unsigned int first, unsigned int n) const;
inline isl::set project_out_all_params() const;
- inline isl::set project_out_param(isl::id id) const;
- inline isl::set project_out_param(isl::id_list list) const;
+ inline isl::set project_out_param(const isl::id &id) const;
+ inline isl::set project_out_param(const std::string &id) const;
+ inline isl::set project_out_param(const isl::id_list &list) const;
+ inline isl::pw_multi_aff pw_multi_aff_on_domain(const isl::multi_val &mv) const;
inline isl::set remove_dims(isl::dim type, unsigned int first, unsigned int n) const;
inline isl::set remove_divs() const;
- inline isl::set remove_divs_involving_dims(isl::dim type, unsigned int first, unsigned int n) const;
inline isl::set remove_redundancies() const;
- inline isl::set remove_unknown_divs() const;
- inline isl::set reset_space(isl::space space) const;
inline isl::set reset_tuple_id() const;
- inline isl::set reset_user() const;
inline isl::basic_set sample() const;
inline isl::point sample_point() const;
- inline isl::set set_dim_id(isl::dim type, unsigned int pos, isl::id id) const;
- inline isl::set set_tuple_id(isl::id id) const;
- inline isl::set set_tuple_name(const std::string &s) const;
+ inline isl::set set_dim_id(isl::dim type, unsigned int pos, const isl::id &id) const;
+ inline isl::set set_dim_id(isl::dim type, unsigned int pos, const std::string &id) const;
+ inline isl::set_list set_list() const;
+ inline isl::set set_tuple_id(const isl::id &id) const;
+ inline isl::set set_tuple_id(const std::string &id) const;
+ inline isl::fixed_box simple_fixed_box_hull() const;
inline isl::basic_set simple_hull() const;
- inline int size() const;
- inline isl::basic_set solutions() const;
- inline isl::set split_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::set subtract(isl::set set2) const;
- inline isl::set sum(isl::set set2) const;
+ inline isl::space space() const;
+ inline isl::space get_space() const;
+ inline isl::val stride(int pos) const;
+ inline isl::set subtract(const isl::set &set2) const;
+ inline isl::union_set subtract(const isl::union_set &uset2) const;
+ inline isl::basic_set_list to_list() const;
+ inline isl::set to_set() const;
+ inline isl::union_set to_union_set() const;
inline isl::map translation() const;
- inline isl_size tuple_dim() const;
- inline isl::set unbind_params(isl::multi_id tuple) const;
- inline isl::map unbind_params_insert_domain(isl::multi_id domain) const;
- inline isl::set unite(isl::set set2) const;
- static inline isl::set universe(isl::space space);
+ inline class size tuple_dim() const;
+ inline isl::id tuple_id() const;
+ inline std::string tuple_name() const;
+ inline isl::set unbind_params(const isl::multi_id &tuple) const;
+ inline isl::map unbind_params_insert_domain(const isl::multi_id &domain) const;
+ inline isl::set unite(isl::basic_set bset2) const;
+ inline isl::set unite(const isl::set &set2) const;
+ inline isl::union_set unite(const isl::union_set &uset2) const;
+ inline isl::set unite(const isl::point &bset2) const;
+ static inline isl::basic_set universe(isl::space space);
inline isl::basic_set unshifted_simple_hull() const;
- inline isl::basic_set unshifted_simple_hull_from_set_list(isl::set_list list) const;
inline isl::map unwrap() const;
- inline isl::set upper_bound(isl::multi_pw_aff upper) const;
- inline isl::set upper_bound(isl::multi_val upper) const;
- inline isl::set upper_bound_si(isl::dim type, unsigned int pos, int value) const;
- inline isl::set upper_bound_val(isl::dim type, unsigned int pos, isl::val value) const;
- inline isl::map wrapped_domain_map() const;
+ inline isl::set upper_bound(const isl::multi_pw_aff &upper) const;
+ inline isl::set upper_bound(const isl::multi_val &upper) const;
+ inline isl::set upper_bound_val(isl::dim type, unsigned int pos, const isl::val &value) const;
+ inline isl::set upper_bound_val(isl::dim type, unsigned int pos, long value) const;
};
-// declarations for isl::set_list
-inline set_list manage(__isl_take isl_set_list *ptr);
-inline set_list manage_copy(__isl_keep isl_set_list *ptr);
+// declarations for isl::basic_set_list
+inline basic_set_list manage(__isl_take isl_basic_set_list *ptr);
+inline basic_set_list manage_copy(__isl_keep isl_basic_set_list *ptr);
-class set_list {
- friend inline set_list manage(__isl_take isl_set_list *ptr);
- friend inline set_list manage_copy(__isl_keep isl_set_list *ptr);
+class basic_set_list {
+ friend inline basic_set_list manage(__isl_take isl_basic_set_list *ptr);
+ friend inline basic_set_list manage_copy(__isl_keep isl_basic_set_list *ptr);
- isl_set_list *ptr = nullptr;
+protected:
+ isl_basic_set_list *ptr = nullptr;
- inline explicit set_list(__isl_take isl_set_list *ptr);
+ inline explicit basic_set_list(__isl_take isl_basic_set_list *ptr);
public:
- inline /* implicit */ set_list();
- inline /* implicit */ set_list(const set_list &obj);
- inline set_list &operator=(set_list obj);
- inline ~set_list();
- inline __isl_give isl_set_list *copy() const &;
- inline __isl_give isl_set_list *copy() && = delete;
- inline __isl_keep isl_set_list *get() const;
- inline __isl_give isl_set_list *release();
+ inline /* implicit */ basic_set_list();
+ inline /* implicit */ basic_set_list(const basic_set_list &obj);
+ inline explicit basic_set_list(isl::ctx ctx, int n);
+ inline explicit basic_set_list(isl::basic_set el);
+ inline basic_set_list &operator=(basic_set_list obj);
+ inline ~basic_set_list();
+ inline __isl_give isl_basic_set_list *copy() const &;
+ inline __isl_give isl_basic_set_list *copy() && = delete;
+ inline __isl_keep isl_basic_set_list *get() const;
+ inline __isl_give isl_basic_set_list *release();
inline bool is_null() const;
inline isl::ctx ctx() const;
- inline void dump() const;
- inline isl::set_list add(isl::set el) const;
- static inline isl::set_list alloc(isl::ctx ctx, int n);
- inline isl::set_list clear() const;
- inline isl::set_list concat(isl::set_list list2) const;
- inline isl::set_list drop(unsigned int first, unsigned int n) const;
- inline stat foreach(const std::function<stat(set)> &fn) const;
- static inline isl::set_list from_set(isl::set el);
- inline isl::set get_at(int index) const;
- inline isl::set get_set(int index) const;
- inline isl::set_list insert(unsigned int pos, isl::set el) const;
- inline isl_size n_set() const;
- inline isl::set_list reverse() const;
- inline isl::set_list set_set(int index, isl::set el) const;
- inline isl_size size() const;
- inline isl::set_list swap(unsigned int pos1, unsigned int pos2) const;
- inline isl::set unite() const;
+ inline isl::basic_set_list add(isl::basic_set el) const;
+ inline isl::basic_set at(int index) const;
+ inline isl::basic_set get_at(int index) const;
+ inline isl::basic_set_list clear() const;
+ inline isl::basic_set_list concat(isl::basic_set_list list2) const;
+ inline isl::basic_set_list drop(unsigned int first, unsigned int n) const;
+ inline stat foreach(const std::function<stat(isl::basic_set)> &fn) const;
+ inline isl::basic_set_list insert(unsigned int pos, isl::basic_set el) const;
+ inline class size size() const;
};
-// declarations for isl::space
-inline space manage(__isl_take isl_space *ptr);
-inline space manage_copy(__isl_keep isl_space *ptr);
+// declarations for isl::constraint
+inline constraint manage(__isl_take isl_constraint *ptr);
+inline constraint manage_copy(__isl_keep isl_constraint *ptr);
-class space {
- friend inline space manage(__isl_take isl_space *ptr);
- friend inline space manage_copy(__isl_keep isl_space *ptr);
+class constraint {
+ friend inline constraint manage(__isl_take isl_constraint *ptr);
+ friend inline constraint manage_copy(__isl_keep isl_constraint *ptr);
- isl_space *ptr = nullptr;
+protected:
+ isl_constraint *ptr = nullptr;
- inline explicit space(__isl_take isl_space *ptr);
+ inline explicit constraint(__isl_take isl_constraint *ptr);
public:
- inline /* implicit */ space();
- inline /* implicit */ space(const space &obj);
- inline explicit space(isl::ctx ctx, unsigned int nparam, unsigned int n_in, unsigned int n_out);
- inline explicit space(isl::ctx ctx, unsigned int nparam, unsigned int dim);
- inline space &operator=(space obj);
- inline ~space();
- inline __isl_give isl_space *copy() const &;
- inline __isl_give isl_space *copy() && = delete;
- inline __isl_keep isl_space *get() const;
- inline __isl_give isl_space *release();
+ inline /* implicit */ constraint();
+ inline /* implicit */ constraint(const constraint &obj);
+ inline constraint &operator=(constraint obj);
+ inline ~constraint();
+ inline __isl_give isl_constraint *copy() const &;
+ inline __isl_give isl_constraint *copy() && = delete;
+ inline __isl_keep isl_constraint *get() const;
+ inline __isl_give isl_constraint *release();
inline bool is_null() const;
inline isl::ctx ctx() const;
- inline void dump() const;
- inline isl::space add_dims(isl::dim type, unsigned int n) const;
- inline isl::space add_named_tuple(isl::id tuple_id, unsigned int dim) const;
- inline isl::space add_param_id(isl::id id) const;
- inline isl::space add_unnamed_tuple(unsigned int dim) const;
- inline isl::space align_params(isl::space space2) const;
- inline boolean can_curry() const;
- inline boolean can_range_curry() const;
- inline boolean can_uncurry() const;
- inline boolean can_zip() const;
- inline isl::space curry() const;
- inline isl_size dim(isl::dim type) const;
- inline isl::space domain() const;
- inline isl::space domain_factor_domain() const;
- inline isl::space domain_factor_range() const;
- inline boolean domain_is_wrapping() const;
- inline isl::space domain_map() const;
- inline isl::space domain_product(isl::space right) const;
- inline isl::space drop_all_params() const;
- inline isl::space drop_dims(isl::dim type, unsigned int first, unsigned int num) const;
- inline isl::space factor_domain() const;
- inline isl::space factor_range() const;
- inline int find_dim_by_id(isl::dim type, const isl::id &id) const;
- inline int find_dim_by_name(isl::dim type, const std::string &name) const;
- inline isl::space flatten_domain() const;
- inline isl::space flatten_range() const;
- inline isl::space from_domain() const;
- inline isl::space from_range() const;
- inline isl::id get_dim_id(isl::dim type, unsigned int pos) const;
- inline std::string get_dim_name(isl::dim type, unsigned int pos) const;
- inline isl::id get_tuple_id(isl::dim type) const;
- inline std::string get_tuple_name(isl::dim type) const;
- inline boolean has_dim_id(isl::dim type, unsigned int pos) const;
- inline boolean has_dim_name(isl::dim type, unsigned int pos) const;
- inline boolean has_equal_params(const isl::space &space2) const;
- inline boolean has_equal_tuples(const isl::space &space2) const;
- inline boolean has_tuple_id(isl::dim type) const;
- inline boolean has_tuple_name(isl::dim type) const;
- inline isl::space insert_dims(isl::dim type, unsigned int pos, unsigned int n) const;
- inline boolean is_domain(const isl::space &space2) const;
- inline boolean is_equal(const isl::space &space2) const;
- inline boolean is_map() const;
- inline boolean is_params() const;
- inline boolean is_product() const;
- inline boolean is_range(const isl::space &space2) const;
- inline boolean is_set() const;
- inline boolean is_wrapping() const;
- inline isl::space join(isl::space right) const;
- inline isl::space map_from_domain_and_range(isl::space range) const;
- inline isl::space map_from_set() const;
- inline isl::space move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const;
- inline isl::space params() const;
- static inline isl::space params_alloc(isl::ctx ctx, unsigned int nparam);
- inline isl::space product(isl::space right) const;
- inline isl::space range() const;
- inline isl::space range_curry() const;
- inline isl::space range_factor_domain() const;
- inline isl::space range_factor_range() const;
- inline boolean range_is_wrapping() const;
- inline isl::space range_map() const;
- inline isl::space range_product(isl::space right) const;
- inline isl::space range_reverse() const;
- inline isl::space reset_tuple_id(isl::dim type) const;
- inline isl::space reset_user() const;
- inline isl::space reverse() const;
- inline isl::space set_dim_id(isl::dim type, unsigned int pos, isl::id id) const;
- inline isl::space set_from_params() const;
- inline isl::space set_tuple_id(isl::dim type, isl::id id) const;
- inline isl::space set_tuple_name(isl::dim type, const std::string &s) const;
- inline boolean tuple_is_equal(isl::dim type1, const isl::space &space2, isl::dim type2) const;
- inline isl::space uncurry() const;
- static inline isl::space unit(isl::ctx ctx);
- inline isl::space unwrap() const;
- inline isl::space wrap() const;
- inline isl::space zip() const;
+ static inline isl::constraint alloc_equality(isl::local_space ls);
+ static inline isl::constraint alloc_inequality(isl::local_space ls);
+ inline isl::constraint set_coefficient_si(isl::dim type, int pos, int v) const;
+ inline isl::constraint set_constant_si(int v) const;
+ inline isl::constraint set_constant_val(isl::val v) const;
+ inline isl::constraint set_constant_val(long v) const;
+};
+
+// declarations for isl::fixed_box
+inline fixed_box manage(__isl_take isl_fixed_box *ptr);
+inline fixed_box manage_copy(__isl_keep isl_fixed_box *ptr);
+
+class fixed_box {
+ friend inline fixed_box manage(__isl_take isl_fixed_box *ptr);
+ friend inline fixed_box manage_copy(__isl_keep isl_fixed_box *ptr);
+
+protected:
+ isl_fixed_box *ptr = nullptr;
+
+ inline explicit fixed_box(__isl_take isl_fixed_box *ptr);
+
+public:
+ inline /* implicit */ fixed_box();
+ inline /* implicit */ fixed_box(const fixed_box &obj);
+ inline fixed_box &operator=(fixed_box obj);
+ inline ~fixed_box();
+ inline __isl_give isl_fixed_box *copy() const &;
+ inline __isl_give isl_fixed_box *copy() && = delete;
+ inline __isl_keep isl_fixed_box *get() const;
+ inline __isl_give isl_fixed_box *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline boolean is_valid() const;
+ inline isl::multi_aff offset() const;
+ inline isl::multi_aff get_offset() const;
+ inline isl::multi_val size() const;
+ inline isl::multi_val get_size() const;
+ inline isl::space space() const;
+ inline isl::space get_space() const;
};
-// declarations for isl::term
-inline term manage(__isl_take isl_term *ptr);
-inline term manage_copy(__isl_keep isl_term *ptr);
+// declarations for isl::id
+inline id manage(__isl_take isl_id *ptr);
+inline id manage_copy(__isl_keep isl_id *ptr);
+
+class id {
+ friend inline id manage(__isl_take isl_id *ptr);
+ friend inline id manage_copy(__isl_keep isl_id *ptr);
+
+protected:
+ isl_id *ptr = nullptr;
+
+ inline explicit id(__isl_take isl_id *ptr);
+
+public:
+ inline /* implicit */ id();
+ inline /* implicit */ id(const id &obj);
+ inline explicit id(isl::ctx ctx, const std::string &str);
+ inline id &operator=(id obj);
+ inline ~id();
+ inline __isl_give isl_id *copy() const &;
+ inline __isl_give isl_id *copy() && = delete;
+ inline __isl_keep isl_id *get() const;
+ inline __isl_give isl_id *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ static inline isl::id alloc(isl::ctx ctx, const std::string &name, void * user);
+ inline std::string name() const;
+ inline std::string get_name() const;
+ inline isl::id_list to_list() const;
+ inline void * user() const;
+ inline void * get_user() const;
+};
+
+// declarations for isl::id_list
+inline id_list manage(__isl_take isl_id_list *ptr);
+inline id_list manage_copy(__isl_keep isl_id_list *ptr);
+
+class id_list {
+ friend inline id_list manage(__isl_take isl_id_list *ptr);
+ friend inline id_list manage_copy(__isl_keep isl_id_list *ptr);
+
+protected:
+ isl_id_list *ptr = nullptr;
+
+ inline explicit id_list(__isl_take isl_id_list *ptr);
+
+public:
+ inline /* implicit */ id_list();
+ inline /* implicit */ id_list(const id_list &obj);
+ inline explicit id_list(isl::ctx ctx, int n);
+ inline explicit id_list(isl::id el);
+ inline explicit id_list(isl::ctx ctx, const std::string &str);
+ inline id_list &operator=(id_list obj);
+ inline ~id_list();
+ inline __isl_give isl_id_list *copy() const &;
+ inline __isl_give isl_id_list *copy() && = delete;
+ inline __isl_keep isl_id_list *get() const;
+ inline __isl_give isl_id_list *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::id_list add(isl::id el) const;
+ inline isl::id_list add(const std::string &el) const;
+ inline isl::id at(int index) const;
+ inline isl::id get_at(int index) const;
+ inline isl::id_list clear() const;
+ inline isl::id_list concat(isl::id_list list2) const;
+ inline isl::id_list drop(unsigned int first, unsigned int n) const;
+ inline stat foreach(const std::function<stat(isl::id)> &fn) const;
+ inline isl::id_list insert(unsigned int pos, isl::id el) const;
+ inline isl::id_list insert(unsigned int pos, const std::string &el) const;
+ inline class size size() const;
+};
+
+// declarations for isl::id_to_ast_expr
+inline id_to_ast_expr manage(__isl_take isl_id_to_ast_expr *ptr);
+inline id_to_ast_expr manage_copy(__isl_keep isl_id_to_ast_expr *ptr);
+
+class id_to_ast_expr {
+ friend inline id_to_ast_expr manage(__isl_take isl_id_to_ast_expr *ptr);
+ friend inline id_to_ast_expr manage_copy(__isl_keep isl_id_to_ast_expr *ptr);
+
+protected:
+ isl_id_to_ast_expr *ptr = nullptr;
+
+ inline explicit id_to_ast_expr(__isl_take isl_id_to_ast_expr *ptr);
+
+public:
+ inline /* implicit */ id_to_ast_expr();
+ inline /* implicit */ id_to_ast_expr(const id_to_ast_expr &obj);
+ inline id_to_ast_expr &operator=(id_to_ast_expr obj);
+ inline ~id_to_ast_expr();
+ inline __isl_give isl_id_to_ast_expr *copy() const &;
+ inline __isl_give isl_id_to_ast_expr *copy() && = delete;
+ inline __isl_keep isl_id_to_ast_expr *get() const;
+ inline __isl_give isl_id_to_ast_expr *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ static inline isl::id_to_ast_expr alloc(isl::ctx ctx, int min_size);
+ inline isl::id_to_ast_expr set(isl::id key, isl::ast_expr val) const;
+ inline isl::id_to_ast_expr set(const std::string &key, const isl::ast_expr &val) const;
+};
+
+// declarations for isl::local_space
+inline local_space manage(__isl_take isl_local_space *ptr);
+inline local_space manage_copy(__isl_keep isl_local_space *ptr);
+
+class local_space {
+ friend inline local_space manage(__isl_take isl_local_space *ptr);
+ friend inline local_space manage_copy(__isl_keep isl_local_space *ptr);
+
+protected:
+ isl_local_space *ptr = nullptr;
+
+ inline explicit local_space(__isl_take isl_local_space *ptr);
+
+public:
+ inline /* implicit */ local_space();
+ inline /* implicit */ local_space(const local_space &obj);
+ inline explicit local_space(isl::space space);
+ inline local_space &operator=(local_space obj);
+ inline ~local_space();
+ inline __isl_give isl_local_space *copy() const &;
+ inline __isl_give isl_local_space *copy() && = delete;
+ inline __isl_keep isl_local_space *get() const;
+ inline __isl_give isl_local_space *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+};
+
+// declarations for isl::map
+inline map manage(__isl_take isl_map *ptr);
+inline map manage_copy(__isl_keep isl_map *ptr);
+
+class map {
+ friend inline map manage(__isl_take isl_map *ptr);
+ friend inline map manage_copy(__isl_keep isl_map *ptr);
+
+protected:
+ isl_map *ptr = nullptr;
+
+ inline explicit map(__isl_take isl_map *ptr);
+
+public:
+ inline /* implicit */ map();
+ inline /* implicit */ map(const map &obj);
+ inline /* implicit */ map(isl::basic_map bmap);
+ inline explicit map(isl::ctx ctx, const std::string &str);
+ inline map &operator=(map obj);
+ inline ~map();
+ inline __isl_give isl_map *copy() const &;
+ inline __isl_give isl_map *copy() && = delete;
+ inline __isl_keep isl_map *get() const;
+ inline __isl_give isl_map *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::map add_constraint(isl::constraint constraint) const;
+ inline isl::map add_dims(isl::dim type, unsigned int n) const;
+ inline isl::basic_map affine_hull() const;
+ inline isl::map align_params(isl::space model) const;
+ inline isl::map apply_domain(isl::map map2) const;
+ inline isl::union_map apply_domain(const isl::union_map &umap2) const;
+ inline isl::map apply_domain(const isl::basic_map &map2) const;
+ inline isl::map apply_range(isl::map map2) const;
+ inline isl::union_map apply_range(const isl::union_map &umap2) const;
+ inline isl::map apply_range(const isl::basic_map &map2) const;
+ inline isl::map as_map() const;
+ inline isl::multi_union_pw_aff as_multi_union_pw_aff() const;
+ inline isl::pw_multi_aff as_pw_multi_aff() const;
+ inline isl::union_pw_multi_aff as_union_pw_multi_aff() const;
+ inline isl::basic_map_list basic_map_list() const;
+ inline isl::basic_map_list get_basic_map_list() const;
+ inline isl::set bind_domain(isl::multi_id tuple) const;
+ inline isl::set bind_range(isl::multi_id tuple) const;
+ inline boolean can_curry() const;
+ inline isl::map coalesce() const;
+ inline isl::map complement() const;
+ inline isl::union_map compute_divs() const;
+ inline isl::map curry() const;
+ inline isl::set deltas() const;
+ inline isl::map detect_equalities() const;
+ inline class size dim(isl::dim type) const;
+ inline isl::pw_aff dim_max(int pos) const;
+ inline isl::pw_aff dim_min(int pos) const;
+ inline isl::set domain() const;
+ inline isl::map domain_factor_domain() const;
+ inline isl::map domain_factor_range() const;
+ inline isl::map domain_map() const;
+ inline isl::union_pw_multi_aff domain_map_union_pw_multi_aff() const;
+ inline isl::map domain_product(isl::map map2) const;
+ inline isl::union_map domain_product(const isl::union_map &umap2) const;
+ inline isl::map domain_product(const isl::basic_map &map2) const;
+ inline class size domain_tuple_dim() const;
+ inline isl::id domain_tuple_id() const;
+ inline isl::id get_domain_tuple_id() const;
+ static inline isl::map empty(isl::space space);
+ inline isl::map eq_at(isl::multi_pw_aff mpa) const;
+ inline isl::union_map eq_at(const isl::multi_union_pw_aff &mupa) const;
+ inline isl::map eq_at(const isl::aff &mpa) const;
+ inline isl::map eq_at(const isl::multi_aff &mpa) const;
+ inline isl::map eq_at(const isl::pw_aff &mpa) const;
+ inline isl::map eq_at(const isl::pw_multi_aff &mpa) const;
+ inline isl::map equate(isl::dim type1, int pos1, isl::dim type2, int pos2) const;
+ inline boolean every_map(const std::function<boolean(isl::map)> &test) const;
+ inline isl::map extract_map(const isl::space &space) const;
+ inline isl::map factor_domain() const;
+ inline isl::map factor_range() const;
+ inline isl::map fix_si(isl::dim type, unsigned int pos, int value) const;
+ inline isl::union_map fixed_power(const isl::val &exp) const;
+ inline isl::union_map fixed_power(long exp) const;
+ inline isl::map flat_range_product(isl::map map2) const;
+ inline isl::union_map flat_range_product(const isl::union_map &umap2) const;
+ inline isl::map flat_range_product(const isl::basic_map &map2) const;
+ inline isl::map flatten() const;
+ inline isl::map flatten_domain() const;
+ inline isl::map flatten_range() const;
+ inline isl::map floordiv_val(isl::val d) const;
+ inline isl::map floordiv_val(long d) const;
+ inline stat foreach_basic_map(const std::function<stat(isl::basic_map)> &fn) const;
+ inline stat foreach_map(const std::function<stat(isl::map)> &fn) const;
+ static inline isl::map from_aff(isl::aff aff);
+ static inline isl::map from_domain(isl::set set);
+ static inline isl::map from_domain_and_range(isl::set domain, isl::set range);
+ static inline isl::map from_multi_aff(isl::multi_aff maff);
+ static inline isl::map from_pw_aff(isl::pw_aff pwaff);
+ static inline isl::map from_range(isl::set set);
+ static inline isl::map from_union_map(isl::union_map umap);
+ inline isl::map gist(isl::map context) const;
+ inline isl::union_map gist(const isl::union_map &context) const;
+ inline isl::map gist(const isl::basic_map &context) const;
+ inline isl::map gist_domain(isl::set context) const;
+ inline isl::union_map gist_domain(const isl::union_set &uset) const;
+ inline isl::map gist_domain(const isl::basic_set &context) const;
+ inline isl::map gist_domain(const isl::point &context) const;
+ inline isl::map gist_params(isl::set context) const;
+ inline isl::union_map gist_range(const isl::union_set &uset) const;
+ inline boolean has_domain_tuple_id() const;
+ inline boolean has_equal_space(const isl::map &map2) const;
+ inline boolean has_range_tuple_id() const;
+ inline boolean has_tuple_id(isl::dim type) const;
+ inline boolean has_tuple_name(isl::dim type) const;
+ static inline isl::map identity(isl::space space);
+ inline isl::map intersect(isl::map map2) const;
+ inline isl::union_map intersect(const isl::union_map &umap2) const;
+ inline isl::map intersect(const isl::basic_map &map2) const;
+ inline isl::map intersect_domain(isl::set set) const;
+ inline isl::union_map intersect_domain(const isl::space &space) const;
+ inline isl::union_map intersect_domain(const isl::union_set &uset) const;
+ inline isl::map intersect_domain(const isl::basic_set &set) const;
+ inline isl::map intersect_domain(const isl::point &set) const;
+ inline isl::map intersect_domain_factor_domain(isl::map factor) const;
+ inline isl::union_map intersect_domain_factor_domain(const isl::union_map &factor) const;
+ inline isl::map intersect_domain_factor_domain(const isl::basic_map &factor) const;
+ inline isl::map intersect_domain_factor_range(isl::map factor) const;
+ inline isl::union_map intersect_domain_factor_range(const isl::union_map &factor) const;
+ inline isl::map intersect_domain_factor_range(const isl::basic_map &factor) const;
+ inline isl::map intersect_params(isl::set params) const;
+ inline isl::map intersect_range(isl::set set) const;
+ inline isl::union_map intersect_range(const isl::space &space) const;
+ inline isl::union_map intersect_range(const isl::union_set &uset) const;
+ inline isl::map intersect_range(const isl::basic_set &set) const;
+ inline isl::map intersect_range(const isl::point &set) const;
+ inline isl::map intersect_range_factor_domain(isl::map factor) const;
+ inline isl::union_map intersect_range_factor_domain(const isl::union_map &factor) const;
+ inline isl::map intersect_range_factor_domain(const isl::basic_map &factor) const;
+ inline isl::map intersect_range_factor_range(isl::map factor) const;
+ inline isl::union_map intersect_range_factor_range(const isl::union_map &factor) const;
+ inline isl::map intersect_range_factor_range(const isl::basic_map &factor) const;
+ inline boolean involves_dims(isl::dim type, unsigned int first, unsigned int n) const;
+ inline boolean is_bijective() const;
+ inline boolean is_disjoint(const isl::map &map2) const;
+ inline boolean is_disjoint(const isl::union_map &umap2) const;
+ inline boolean is_disjoint(const isl::basic_map &map2) const;
+ inline boolean is_empty() const;
+ inline boolean is_equal(const isl::map &map2) const;
+ inline boolean is_equal(const isl::union_map &umap2) const;
+ inline boolean is_equal(const isl::basic_map &map2) const;
+ inline boolean is_injective() const;
+ inline boolean is_single_valued() const;
+ inline boolean is_strict_subset(const isl::map &map2) const;
+ inline boolean is_strict_subset(const isl::union_map &umap2) const;
+ inline boolean is_strict_subset(const isl::basic_map &map2) const;
+ inline boolean is_subset(const isl::map &map2) const;
+ inline boolean is_subset(const isl::union_map &umap2) const;
+ inline boolean is_subset(const isl::basic_map &map2) const;
+ inline boolean isa_map() const;
+ static inline isl::map lex_ge(isl::space set_space);
+ inline isl::map lex_ge_at(isl::multi_pw_aff mpa) const;
+ static inline isl::map lex_gt(isl::space set_space);
+ inline isl::map lex_gt_at(isl::multi_pw_aff mpa) const;
+ static inline isl::map lex_le(isl::space set_space);
+ inline isl::map lex_le_at(isl::multi_pw_aff mpa) const;
+ static inline isl::map lex_lt(isl::space set_space);
+ inline isl::map lex_lt_at(isl::multi_pw_aff mpa) const;
+ inline isl::map lexmax() const;
+ inline isl::pw_multi_aff lexmax_pw_multi_aff() const;
+ inline isl::map lexmin() const;
+ inline isl::pw_multi_aff lexmin_pw_multi_aff() const;
+ inline isl::map lower_bound(isl::multi_pw_aff lower) const;
+ inline isl::map lower_bound_si(isl::dim type, unsigned int pos, int value) const;
+ inline isl::map_list map_list() const;
+ inline isl::multi_pw_aff max_multi_pw_aff() const;
+ inline isl::multi_pw_aff min_multi_pw_aff() const;
+ inline isl::map move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const;
+ inline class size n_basic_map() const;
+ inline isl::map order_lt(isl::dim type1, int pos1, isl::dim type2, int pos2) const;
+ inline isl::set params() const;
+ inline isl::basic_map polyhedral_hull() const;
+ inline isl::map preimage_domain(isl::multi_aff ma) const;
+ inline isl::map preimage_domain(isl::multi_pw_aff mpa) const;
+ inline isl::map preimage_domain(isl::pw_multi_aff pma) const;
+ inline isl::union_map preimage_domain(const isl::union_pw_multi_aff &upma) const;
+ inline isl::map preimage_range(isl::multi_aff ma) const;
+ inline isl::map preimage_range(isl::pw_multi_aff pma) const;
+ inline isl::union_map preimage_range(const isl::union_pw_multi_aff &upma) const;
+ inline isl::map product(isl::map map2) const;
+ inline isl::union_map product(const isl::union_map &umap2) const;
+ inline isl::map product(const isl::basic_map &map2) const;
+ inline isl::map project_out(isl::dim type, unsigned int first, unsigned int n) const;
+ inline isl::map project_out_all_params() const;
+ inline isl::set range() const;
+ inline isl::map range_factor_domain() const;
+ inline isl::map range_factor_range() const;
+ inline isl::fixed_box range_lattice_tile() const;
+ inline isl::fixed_box get_range_lattice_tile() const;
+ inline isl::map range_map() const;
+ inline isl::map range_product(isl::map map2) const;
+ inline isl::union_map range_product(const isl::union_map &umap2) const;
+ inline isl::map range_product(const isl::basic_map &map2) const;
+ inline isl::map range_reverse() const;
+ inline isl::fixed_box range_simple_fixed_box_hull() const;
+ inline isl::fixed_box get_range_simple_fixed_box_hull() const;
+ inline class size range_tuple_dim() const;
+ inline isl::id range_tuple_id() const;
+ inline isl::id get_range_tuple_id() const;
+ inline isl::map reverse() const;
+ inline isl::basic_map sample() const;
+ inline isl::map set_domain_tuple(isl::id id) const;
+ inline isl::map set_domain_tuple(const std::string &id) const;
+ inline isl::map set_range_tuple(isl::id id) const;
+ inline isl::map set_range_tuple(const std::string &id) const;
+ inline isl::map set_tuple_id(isl::dim type, isl::id id) const;
+ inline isl::map set_tuple_id(isl::dim type, const std::string &id) const;
+ inline isl::space space() const;
+ inline isl::space get_space() const;
+ inline isl::map subtract(isl::map map2) const;
+ inline isl::union_map subtract(const isl::union_map &umap2) const;
+ inline isl::map subtract(const isl::basic_map &map2) const;
+ inline isl::union_map subtract_domain(const isl::union_set &dom) const;
+ inline isl::union_map subtract_range(const isl::union_set &dom) const;
+ inline isl::map sum(isl::map map2) const;
+ inline isl::map_list to_list() const;
+ inline isl::union_map to_union_map() const;
+ inline isl::id tuple_id(isl::dim type) const;
+ inline isl::id get_tuple_id(isl::dim type) const;
+ inline isl::map uncurry() const;
+ inline isl::map unite(isl::map map2) const;
+ inline isl::union_map unite(const isl::union_map &umap2) const;
+ inline isl::map unite(const isl::basic_map &map2) const;
+ static inline isl::map universe(isl::space space);
+ inline isl::basic_map unshifted_simple_hull() const;
+ inline isl::map upper_bound(isl::multi_pw_aff upper) const;
+ inline isl::map upper_bound_si(isl::dim type, unsigned int pos, int value) const;
+ inline isl::set wrap() const;
+ inline isl::map zip() const;
+};
+
+// declarations for isl::map_list
+inline map_list manage(__isl_take isl_map_list *ptr);
+inline map_list manage_copy(__isl_keep isl_map_list *ptr);
+
+class map_list {
+ friend inline map_list manage(__isl_take isl_map_list *ptr);
+ friend inline map_list manage_copy(__isl_keep isl_map_list *ptr);
+
+protected:
+ isl_map_list *ptr = nullptr;
+
+ inline explicit map_list(__isl_take isl_map_list *ptr);
+
+public:
+ inline /* implicit */ map_list();
+ inline /* implicit */ map_list(const map_list &obj);
+ inline explicit map_list(isl::ctx ctx, int n);
+ inline explicit map_list(isl::map el);
+ inline explicit map_list(isl::ctx ctx, const std::string &str);
+ inline map_list &operator=(map_list obj);
+ inline ~map_list();
+ inline __isl_give isl_map_list *copy() const &;
+ inline __isl_give isl_map_list *copy() && = delete;
+ inline __isl_keep isl_map_list *get() const;
+ inline __isl_give isl_map_list *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::map_list add(isl::map el) const;
+ inline isl::map at(int index) const;
+ inline isl::map get_at(int index) const;
+ inline isl::map_list clear() const;
+ inline isl::map_list concat(isl::map_list list2) const;
+ inline isl::map_list drop(unsigned int first, unsigned int n) const;
+ inline stat foreach(const std::function<stat(isl::map)> &fn) const;
+ inline isl::map_list insert(unsigned int pos, isl::map el) const;
+ inline class size size() const;
+};
+
+// declarations for isl::multi_aff
+inline multi_aff manage(__isl_take isl_multi_aff *ptr);
+inline multi_aff manage_copy(__isl_keep isl_multi_aff *ptr);
+
+class multi_aff {
+ friend inline multi_aff manage(__isl_take isl_multi_aff *ptr);
+ friend inline multi_aff manage_copy(__isl_keep isl_multi_aff *ptr);
+
+protected:
+ isl_multi_aff *ptr = nullptr;
+
+ inline explicit multi_aff(__isl_take isl_multi_aff *ptr);
+
+public:
+ inline /* implicit */ multi_aff();
+ inline /* implicit */ multi_aff(const multi_aff &obj);
+ inline /* implicit */ multi_aff(isl::aff aff);
+ inline explicit multi_aff(isl::space space, isl::aff_list list);
+ inline explicit multi_aff(isl::ctx ctx, const std::string &str);
+ inline multi_aff &operator=(multi_aff obj);
+ inline ~multi_aff();
+ inline __isl_give isl_multi_aff *copy() const &;
+ inline __isl_give isl_multi_aff *copy() && = delete;
+ inline __isl_keep isl_multi_aff *get() const;
+ inline __isl_give isl_multi_aff *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::multi_aff add(isl::multi_aff multi2) const;
+ inline isl::multi_pw_aff add(const isl::multi_pw_aff &multi2) const;
+ inline isl::multi_union_pw_aff add(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::pw_multi_aff add(const isl::pw_multi_aff &pma2) const;
+ inline isl::union_pw_multi_aff add(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::multi_aff add(const isl::aff &multi2) const;
+ inline isl::multi_aff add_constant(isl::multi_val mv) const;
+ inline isl::multi_aff add_constant(isl::val v) const;
+ inline isl::multi_aff add_constant(long v) const;
+ inline isl::union_pw_multi_aff add_pw_multi_aff(const isl::pw_multi_aff &pma) const;
+ inline isl::union_pw_multi_aff apply(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::map as_map() const;
+ inline isl::multi_aff as_multi_aff() const;
+ inline isl::multi_union_pw_aff as_multi_union_pw_aff() const;
+ inline isl::pw_multi_aff as_pw_multi_aff() const;
+ inline isl::set as_set() const;
+ inline isl::union_map as_union_map() const;
+ inline isl::aff at(int pos) const;
+ inline isl::aff get_at(int pos) const;
+ inline isl::basic_set bind(isl::multi_id tuple) const;
+ inline isl::multi_aff bind_domain(isl::multi_id tuple) const;
+ inline isl::multi_aff bind_domain_wrapped_domain(isl::multi_id tuple) const;
+ inline isl::pw_multi_aff coalesce() const;
+ inline isl::multi_val constant_multi_val() const;
+ inline isl::multi_val get_constant_multi_val() const;
+ inline class size dim(isl::dim type) const;
+ inline isl::set domain() const;
+ static inline isl::multi_aff domain_map(isl::space space);
+ inline isl::pw_multi_aff drop_dims(isl::dim type, unsigned int first, unsigned int n) const;
+ inline isl::pw_multi_aff extract_pw_multi_aff(const isl::space &space) const;
+ inline isl::multi_aff flat_range_product(isl::multi_aff multi2) const;
+ inline isl::multi_pw_aff flat_range_product(const isl::multi_pw_aff &multi2) const;
+ inline isl::multi_union_pw_aff flat_range_product(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::pw_multi_aff flat_range_product(const isl::pw_multi_aff &pma2) const;
+ inline isl::union_pw_multi_aff flat_range_product(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::multi_aff flat_range_product(const isl::aff &multi2) const;
+ inline isl::multi_aff floor() const;
+ inline stat foreach_piece(const std::function<stat(isl::set, isl::multi_aff)> &fn) const;
+ inline isl::multi_aff gist(isl::set context) const;
+ inline isl::union_pw_multi_aff gist(const isl::union_set &context) const;
+ inline isl::multi_aff gist(const isl::basic_set &context) const;
+ inline isl::multi_aff gist(const isl::point &context) const;
+ inline boolean has_range_tuple_id() const;
+ static inline isl::multi_aff identity(isl::space space);
+ inline isl::multi_aff identity() const;
+ static inline isl::multi_aff identity_on_domain(isl::space space);
+ inline isl::multi_aff insert_domain(isl::space domain) const;
+ inline isl::pw_multi_aff intersect_domain(const isl::set &set) const;
+ inline isl::union_pw_multi_aff intersect_domain(const isl::space &space) const;
+ inline isl::union_pw_multi_aff intersect_domain(const isl::union_set &uset) const;
+ inline isl::union_pw_multi_aff intersect_domain_wrapped_domain(const isl::union_set &uset) const;
+ inline isl::union_pw_multi_aff intersect_domain_wrapped_range(const isl::union_set &uset) const;
+ inline isl::pw_multi_aff intersect_params(const isl::set &set) const;
+ inline boolean involves_locals() const;
+ inline boolean involves_nan() const;
+ inline boolean involves_param(const isl::id &id) const;
+ inline boolean involves_param(const std::string &id) const;
+ inline boolean involves_param(const isl::id_list &list) const;
+ inline boolean isa_multi_aff() const;
+ inline boolean isa_pw_multi_aff() const;
+ inline isl::aff_list list() const;
+ inline isl::aff_list get_list() const;
+ inline isl::multi_pw_aff max(const isl::multi_pw_aff &multi2) const;
+ inline isl::multi_val max_multi_val() const;
+ inline isl::multi_pw_aff min(const isl::multi_pw_aff &multi2) const;
+ inline isl::multi_val min_multi_val() const;
+ static inline isl::multi_aff multi_val_on_domain(isl::space space, isl::multi_val mv);
+ inline class size n_piece() const;
+ inline isl::multi_aff neg() const;
+ inline boolean plain_is_empty() const;
+ inline boolean plain_is_equal(const isl::multi_aff &multi2) const;
+ inline boolean plain_is_equal(const isl::multi_pw_aff &multi2) const;
+ inline boolean plain_is_equal(const isl::multi_union_pw_aff &multi2) const;
+ inline boolean plain_is_equal(const isl::aff &multi2) const;
+ inline isl::pw_multi_aff preimage_domain_wrapped_domain(const isl::pw_multi_aff &pma2) const;
+ inline isl::union_pw_multi_aff preimage_domain_wrapped_domain(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::multi_aff product(isl::multi_aff multi2) const;
+ inline isl::multi_pw_aff product(const isl::multi_pw_aff &multi2) const;
+ inline isl::pw_multi_aff product(const isl::pw_multi_aff &pma2) const;
+ inline isl::multi_aff product(const isl::aff &multi2) const;
+ inline isl::multi_aff pullback(isl::multi_aff ma2) const;
+ inline isl::multi_pw_aff pullback(const isl::multi_pw_aff &mpa2) const;
+ inline isl::pw_multi_aff pullback(const isl::pw_multi_aff &pma2) const;
+ inline isl::union_pw_multi_aff pullback(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::multi_aff pullback(const isl::aff &ma2) const;
+ inline isl::pw_multi_aff_list pw_multi_aff_list() const;
+ inline isl::pw_multi_aff range_factor_domain() const;
+ inline isl::pw_multi_aff range_factor_range() const;
+ static inline isl::multi_aff range_map(isl::space space);
+ inline isl::multi_aff range_product(isl::multi_aff multi2) const;
+ inline isl::multi_pw_aff range_product(const isl::multi_pw_aff &multi2) const;
+ inline isl::multi_union_pw_aff range_product(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::pw_multi_aff range_product(const isl::pw_multi_aff &pma2) const;
+ inline isl::union_pw_multi_aff range_product(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::multi_aff range_product(const isl::aff &multi2) const;
+ inline isl::id range_tuple_id() const;
+ inline isl::id get_range_tuple_id() const;
+ inline isl::multi_aff reset_range_tuple_id() const;
+ inline isl::multi_aff reset_tuple_id(isl::dim type) const;
+ inline isl::multi_aff scale(isl::multi_val mv) const;
+ inline isl::multi_aff scale(isl::val v) const;
+ inline isl::multi_aff scale(long v) const;
+ inline isl::multi_aff scale_down(isl::multi_val mv) const;
+ inline isl::multi_aff scale_down(isl::val v) const;
+ inline isl::multi_aff scale_down(long v) const;
+ inline isl::multi_aff set_aff(int pos, isl::aff el) const;
+ inline isl::multi_aff set_at(int pos, isl::aff el) const;
+ inline isl::multi_pw_aff set_at(int pos, const isl::pw_aff &el) const;
+ inline isl::multi_union_pw_aff set_at(int pos, const isl::union_pw_aff &el) const;
+ inline isl::multi_pw_aff set_pw_aff(int pos, const isl::pw_aff &el) const;
+ inline isl::pw_multi_aff set_pw_aff(unsigned int pos, const isl::pw_aff &pa) const;
+ inline isl::multi_aff set_range_tuple(isl::id id) const;
+ inline isl::multi_aff set_range_tuple(const std::string &id) const;
+ inline isl::multi_union_pw_aff set_union_pw_aff(int pos, const isl::union_pw_aff &el) const;
+ inline class size size() const;
+ inline isl::space space() const;
+ inline isl::space get_space() const;
+ inline isl::multi_aff sub(isl::multi_aff multi2) const;
+ inline isl::multi_pw_aff sub(const isl::multi_pw_aff &multi2) const;
+ inline isl::multi_union_pw_aff sub(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::pw_multi_aff sub(const isl::pw_multi_aff &pma2) const;
+ inline isl::union_pw_multi_aff sub(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::multi_aff sub(const isl::aff &multi2) const;
+ inline isl::pw_multi_aff subtract_domain(const isl::set &set) const;
+ inline isl::union_pw_multi_aff subtract_domain(const isl::space &space) const;
+ inline isl::union_pw_multi_aff subtract_domain(const isl::union_set &uset) const;
+ inline isl::pw_multi_aff_list to_list() const;
+ inline isl::multi_pw_aff to_multi_pw_aff() const;
+ inline isl::multi_union_pw_aff to_multi_union_pw_aff() const;
+ inline isl::pw_multi_aff to_pw_multi_aff() const;
+ inline isl::union_pw_multi_aff to_union_pw_multi_aff() const;
+ inline isl::id tuple_id(isl::dim type) const;
+ inline isl::multi_aff unbind_params_insert_domain(isl::multi_id domain) const;
+ inline isl::multi_pw_aff union_add(const isl::multi_pw_aff &mpa2) const;
+ inline isl::multi_union_pw_aff union_add(const isl::multi_union_pw_aff &mupa2) const;
+ inline isl::pw_multi_aff union_add(const isl::pw_multi_aff &pma2) const;
+ inline isl::union_pw_multi_aff union_add(const isl::union_pw_multi_aff &upma2) const;
+ static inline isl::multi_aff zero(isl::space space);
+};
+
+// declarations for isl::multi_id
+inline multi_id manage(__isl_take isl_multi_id *ptr);
+inline multi_id manage_copy(__isl_keep isl_multi_id *ptr);
+
+class multi_id {
+ friend inline multi_id manage(__isl_take isl_multi_id *ptr);
+ friend inline multi_id manage_copy(__isl_keep isl_multi_id *ptr);
+
+protected:
+ isl_multi_id *ptr = nullptr;
+
+ inline explicit multi_id(__isl_take isl_multi_id *ptr);
+
+public:
+ inline /* implicit */ multi_id();
+ inline /* implicit */ multi_id(const multi_id &obj);
+ inline explicit multi_id(isl::space space, isl::id_list list);
+ inline explicit multi_id(isl::ctx ctx, const std::string &str);
+ inline multi_id &operator=(multi_id obj);
+ inline ~multi_id();
+ inline __isl_give isl_multi_id *copy() const &;
+ inline __isl_give isl_multi_id *copy() && = delete;
+ inline __isl_keep isl_multi_id *get() const;
+ inline __isl_give isl_multi_id *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::id at(int pos) const;
+ inline isl::id get_at(int pos) const;
+ inline isl::multi_id flat_range_product(isl::multi_id multi2) const;
+ inline isl::id_list list() const;
+ inline isl::id_list get_list() const;
+ inline boolean plain_is_equal(const isl::multi_id &multi2) const;
+ inline isl::multi_id range_product(isl::multi_id multi2) const;
+ inline isl::multi_id set_at(int pos, isl::id el) const;
+ inline isl::multi_id set_at(int pos, const std::string &el) const;
+ inline isl::multi_id set_id(int pos, isl::id el) const;
+ inline isl::multi_id set_id(int pos, const std::string &el) const;
+ inline class size size() const;
+ inline isl::space space() const;
+ inline isl::space get_space() const;
+};
+
+// declarations for isl::multi_pw_aff
+inline multi_pw_aff manage(__isl_take isl_multi_pw_aff *ptr);
+inline multi_pw_aff manage_copy(__isl_keep isl_multi_pw_aff *ptr);
+
+class multi_pw_aff {
+ friend inline multi_pw_aff manage(__isl_take isl_multi_pw_aff *ptr);
+ friend inline multi_pw_aff manage_copy(__isl_keep isl_multi_pw_aff *ptr);
+
+protected:
+ isl_multi_pw_aff *ptr = nullptr;
+
+ inline explicit multi_pw_aff(__isl_take isl_multi_pw_aff *ptr);
+
+public:
+ inline /* implicit */ multi_pw_aff();
+ inline /* implicit */ multi_pw_aff(const multi_pw_aff &obj);
+ inline /* implicit */ multi_pw_aff(isl::aff aff);
+ inline /* implicit */ multi_pw_aff(isl::multi_aff ma);
+ inline /* implicit */ multi_pw_aff(isl::pw_aff pa);
+ inline explicit multi_pw_aff(isl::space space, isl::pw_aff_list list);
+ inline /* implicit */ multi_pw_aff(isl::pw_multi_aff pma);
+ inline explicit multi_pw_aff(isl::ctx ctx, const std::string &str);
+ inline multi_pw_aff &operator=(multi_pw_aff obj);
+ inline ~multi_pw_aff();
+ inline __isl_give isl_multi_pw_aff *copy() const &;
+ inline __isl_give isl_multi_pw_aff *copy() && = delete;
+ inline __isl_keep isl_multi_pw_aff *get() const;
+ inline __isl_give isl_multi_pw_aff *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::multi_pw_aff add(isl::multi_pw_aff multi2) const;
+ inline isl::multi_union_pw_aff add(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::multi_pw_aff add(const isl::aff &multi2) const;
+ inline isl::multi_pw_aff add(const isl::multi_aff &multi2) const;
+ inline isl::multi_pw_aff add(const isl::pw_aff &multi2) const;
+ inline isl::multi_pw_aff add(const isl::pw_multi_aff &multi2) const;
+ inline isl::multi_pw_aff add_constant(isl::multi_val mv) const;
+ inline isl::multi_pw_aff add_constant(isl::val v) const;
+ inline isl::multi_pw_aff add_constant(long v) const;
+ inline isl::map as_map() const;
+ inline isl::multi_aff as_multi_aff() const;
+ inline isl::set as_set() const;
+ inline isl::pw_aff at(int pos) const;
+ inline isl::pw_aff get_at(int pos) const;
+ inline isl::set bind(isl::multi_id tuple) const;
+ inline isl::multi_pw_aff bind_domain(isl::multi_id tuple) const;
+ inline isl::multi_pw_aff bind_domain_wrapped_domain(isl::multi_id tuple) const;
+ inline isl::multi_pw_aff coalesce() const;
+ inline class size dim(isl::dim type) const;
+ inline isl::set domain() const;
+ inline isl::multi_pw_aff flat_range_product(isl::multi_pw_aff multi2) const;
+ inline isl::multi_union_pw_aff flat_range_product(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::multi_pw_aff flat_range_product(const isl::aff &multi2) const;
+ inline isl::multi_pw_aff flat_range_product(const isl::multi_aff &multi2) const;
+ inline isl::multi_pw_aff flat_range_product(const isl::pw_aff &multi2) const;
+ inline isl::multi_pw_aff flat_range_product(const isl::pw_multi_aff &multi2) const;
+ inline isl::multi_pw_aff gist(isl::set set) const;
+ inline isl::multi_union_pw_aff gist(const isl::union_set &context) const;
+ inline isl::multi_pw_aff gist(const isl::basic_set &set) const;
+ inline isl::multi_pw_aff gist(const isl::point &set) const;
+ inline boolean has_range_tuple_id() const;
+ static inline isl::multi_pw_aff identity(isl::space space);
+ inline isl::multi_pw_aff identity() const;
+ static inline isl::multi_pw_aff identity_on_domain(isl::space space);
+ inline isl::multi_pw_aff insert_domain(isl::space domain) const;
+ inline isl::multi_pw_aff intersect_domain(isl::set domain) const;
+ inline isl::multi_union_pw_aff intersect_domain(const isl::union_set &uset) const;
+ inline isl::multi_pw_aff intersect_domain(const isl::basic_set &domain) const;
+ inline isl::multi_pw_aff intersect_domain(const isl::point &domain) const;
+ inline isl::multi_pw_aff intersect_params(isl::set set) const;
+ inline boolean involves_nan() const;
+ inline boolean involves_param(const isl::id &id) const;
+ inline boolean involves_param(const std::string &id) const;
+ inline boolean involves_param(const isl::id_list &list) const;
+ inline boolean isa_multi_aff() const;
+ inline isl::pw_aff_list list() const;
+ inline isl::pw_aff_list get_list() const;
+ inline isl::multi_pw_aff max(isl::multi_pw_aff multi2) const;
+ inline isl::multi_val max_multi_val() const;
+ inline isl::multi_pw_aff min(isl::multi_pw_aff multi2) const;
+ inline isl::multi_val min_multi_val() const;
+ inline isl::multi_pw_aff neg() const;
+ inline boolean plain_is_equal(const isl::multi_pw_aff &multi2) const;
+ inline boolean plain_is_equal(const isl::multi_union_pw_aff &multi2) const;
+ inline boolean plain_is_equal(const isl::aff &multi2) const;
+ inline boolean plain_is_equal(const isl::multi_aff &multi2) const;
+ inline boolean plain_is_equal(const isl::pw_aff &multi2) const;
+ inline boolean plain_is_equal(const isl::pw_multi_aff &multi2) const;
+ inline isl::multi_pw_aff product(isl::multi_pw_aff multi2) const;
+ inline isl::multi_pw_aff pullback(isl::multi_aff ma) const;
+ inline isl::multi_pw_aff pullback(isl::multi_pw_aff mpa2) const;
+ inline isl::multi_pw_aff pullback(isl::pw_multi_aff pma) const;
+ inline isl::multi_union_pw_aff pullback(const isl::union_pw_multi_aff &upma) const;
+ inline isl::multi_pw_aff range_product(isl::multi_pw_aff multi2) const;
+ inline isl::multi_union_pw_aff range_product(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::multi_pw_aff range_product(const isl::aff &multi2) const;
+ inline isl::multi_pw_aff range_product(const isl::multi_aff &multi2) const;
+ inline isl::multi_pw_aff range_product(const isl::pw_aff &multi2) const;
+ inline isl::multi_pw_aff range_product(const isl::pw_multi_aff &multi2) const;
+ inline isl::id range_tuple_id() const;
+ inline isl::id get_range_tuple_id() const;
+ inline isl::multi_pw_aff reset_range_tuple_id() const;
+ inline isl::multi_pw_aff reset_tuple_id(isl::dim type) const;
+ inline isl::multi_pw_aff scale(isl::multi_val mv) const;
+ inline isl::multi_pw_aff scale(isl::val v) const;
+ inline isl::multi_pw_aff scale(long v) const;
+ inline isl::multi_pw_aff scale_down(isl::multi_val mv) const;
+ inline isl::multi_pw_aff scale_down(isl::val v) const;
+ inline isl::multi_pw_aff scale_down(long v) const;
+ inline isl::multi_pw_aff set_at(int pos, isl::pw_aff el) const;
+ inline isl::multi_union_pw_aff set_at(int pos, const isl::union_pw_aff &el) const;
+ inline isl::multi_pw_aff set_pw_aff(int pos, isl::pw_aff el) const;
+ inline isl::multi_pw_aff set_range_tuple(isl::id id) const;
+ inline isl::multi_pw_aff set_range_tuple(const std::string &id) const;
+ inline isl::multi_union_pw_aff set_union_pw_aff(int pos, const isl::union_pw_aff &el) const;
+ inline class size size() const;
+ inline isl::space space() const;
+ inline isl::space get_space() const;
+ inline isl::multi_pw_aff sub(isl::multi_pw_aff multi2) const;
+ inline isl::multi_union_pw_aff sub(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::multi_pw_aff sub(const isl::aff &multi2) const;
+ inline isl::multi_pw_aff sub(const isl::multi_aff &multi2) const;
+ inline isl::multi_pw_aff sub(const isl::pw_aff &multi2) const;
+ inline isl::multi_pw_aff sub(const isl::pw_multi_aff &multi2) const;
+ inline isl::multi_pw_aff unbind_params_insert_domain(isl::multi_id domain) const;
+ inline isl::multi_pw_aff union_add(isl::multi_pw_aff mpa2) const;
+ inline isl::multi_union_pw_aff union_add(const isl::multi_union_pw_aff &mupa2) const;
+ inline isl::multi_pw_aff union_add(const isl::aff &mpa2) const;
+ inline isl::multi_pw_aff union_add(const isl::multi_aff &mpa2) const;
+ inline isl::multi_pw_aff union_add(const isl::pw_aff &mpa2) const;
+ inline isl::multi_pw_aff union_add(const isl::pw_multi_aff &mpa2) const;
+ static inline isl::multi_pw_aff zero(isl::space space);
+};
+
+// declarations for isl::multi_union_pw_aff
+inline multi_union_pw_aff manage(__isl_take isl_multi_union_pw_aff *ptr);
+inline multi_union_pw_aff manage_copy(__isl_keep isl_multi_union_pw_aff *ptr);
+
+class multi_union_pw_aff {
+ friend inline multi_union_pw_aff manage(__isl_take isl_multi_union_pw_aff *ptr);
+ friend inline multi_union_pw_aff manage_copy(__isl_keep isl_multi_union_pw_aff *ptr);
+
+protected:
+ isl_multi_union_pw_aff *ptr = nullptr;
+
+ inline explicit multi_union_pw_aff(__isl_take isl_multi_union_pw_aff *ptr);
+
+public:
+ inline /* implicit */ multi_union_pw_aff();
+ inline /* implicit */ multi_union_pw_aff(const multi_union_pw_aff &obj);
+ inline /* implicit */ multi_union_pw_aff(isl::multi_pw_aff mpa);
+ inline /* implicit */ multi_union_pw_aff(isl::union_pw_aff upa);
+ inline explicit multi_union_pw_aff(isl::space space, isl::union_pw_aff_list list);
+ inline explicit multi_union_pw_aff(isl::union_pw_multi_aff upma);
+ inline explicit multi_union_pw_aff(isl::ctx ctx, const std::string &str);
+ inline multi_union_pw_aff &operator=(multi_union_pw_aff obj);
+ inline ~multi_union_pw_aff();
+ inline __isl_give isl_multi_union_pw_aff *copy() const &;
+ inline __isl_give isl_multi_union_pw_aff *copy() && = delete;
+ inline __isl_keep isl_multi_union_pw_aff *get() const;
+ inline __isl_give isl_multi_union_pw_aff *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::multi_union_pw_aff add(isl::multi_union_pw_aff multi2) const;
+ inline isl::union_pw_aff at(int pos) const;
+ inline isl::union_pw_aff get_at(int pos) const;
+ inline isl::union_set bind(isl::multi_id tuple) const;
+ inline isl::multi_union_pw_aff coalesce() const;
+ inline class size dim(isl::dim type) const;
+ inline isl::union_set domain() const;
+ inline isl::multi_union_pw_aff flat_range_product(isl::multi_union_pw_aff multi2) const;
+ static inline isl::multi_union_pw_aff from_union_map(isl::union_map umap);
+ inline isl::multi_union_pw_aff gist(isl::union_set context) const;
+ inline boolean has_range_tuple_id() const;
+ inline isl::multi_union_pw_aff intersect_domain(isl::union_set uset) const;
+ inline isl::multi_union_pw_aff intersect_params(isl::set params) const;
+ inline boolean involves_nan() const;
+ inline isl::union_pw_aff_list list() const;
+ inline isl::union_pw_aff_list get_list() const;
+ inline isl::multi_union_pw_aff neg() const;
+ inline boolean plain_is_equal(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::multi_union_pw_aff pullback(isl::union_pw_multi_aff upma) const;
+ inline isl::multi_union_pw_aff range_product(isl::multi_union_pw_aff multi2) const;
+ inline isl::id range_tuple_id() const;
+ inline isl::id get_range_tuple_id() const;
+ inline isl::multi_union_pw_aff reset_range_tuple_id() const;
+ inline isl::multi_union_pw_aff reset_tuple_id(isl::dim type) const;
+ inline isl::multi_union_pw_aff scale(isl::multi_val mv) const;
+ inline isl::multi_union_pw_aff scale(isl::val v) const;
+ inline isl::multi_union_pw_aff scale(long v) const;
+ inline isl::multi_union_pw_aff scale_down(isl::multi_val mv) const;
+ inline isl::multi_union_pw_aff scale_down(isl::val v) const;
+ inline isl::multi_union_pw_aff scale_down(long v) const;
+ inline isl::multi_union_pw_aff set_at(int pos, isl::union_pw_aff el) const;
+ inline isl::multi_union_pw_aff set_range_tuple(isl::id id) const;
+ inline isl::multi_union_pw_aff set_range_tuple(const std::string &id) const;
+ inline isl::multi_union_pw_aff set_union_pw_aff(int pos, isl::union_pw_aff el) const;
+ inline class size size() const;
+ inline isl::space space() const;
+ inline isl::space get_space() const;
+ inline isl::multi_union_pw_aff sub(isl::multi_union_pw_aff multi2) const;
+ inline isl::multi_union_pw_aff union_add(isl::multi_union_pw_aff mupa2) const;
+ static inline isl::multi_union_pw_aff zero(isl::space space);
+};
+
+// declarations for isl::multi_val
+inline multi_val manage(__isl_take isl_multi_val *ptr);
+inline multi_val manage_copy(__isl_keep isl_multi_val *ptr);
+
+class multi_val {
+ friend inline multi_val manage(__isl_take isl_multi_val *ptr);
+ friend inline multi_val manage_copy(__isl_keep isl_multi_val *ptr);
+
+protected:
+ isl_multi_val *ptr = nullptr;
+
+ inline explicit multi_val(__isl_take isl_multi_val *ptr);
+
+public:
+ inline /* implicit */ multi_val();
+ inline /* implicit */ multi_val(const multi_val &obj);
+ inline explicit multi_val(isl::space space, isl::val_list list);
+ inline explicit multi_val(isl::ctx ctx, const std::string &str);
+ inline multi_val &operator=(multi_val obj);
+ inline ~multi_val();
+ inline __isl_give isl_multi_val *copy() const &;
+ inline __isl_give isl_multi_val *copy() && = delete;
+ inline __isl_keep isl_multi_val *get() const;
+ inline __isl_give isl_multi_val *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::multi_val add(isl::multi_val multi2) const;
+ inline isl::multi_val add(isl::val v) const;
+ inline isl::multi_val add(long v) const;
+ inline isl::val at(int pos) const;
+ inline isl::val get_at(int pos) const;
+ inline class size dim(isl::dim type) const;
+ inline isl::multi_val flat_range_product(isl::multi_val multi2) const;
+ inline boolean has_range_tuple_id() const;
+ inline boolean involves_nan() const;
+ inline isl::val_list list() const;
+ inline isl::val_list get_list() const;
+ inline isl::multi_val max(isl::multi_val multi2) const;
+ inline isl::multi_val min(isl::multi_val multi2) const;
+ inline isl::multi_val neg() const;
+ inline boolean plain_is_equal(const isl::multi_val &multi2) const;
+ inline isl::multi_val product(isl::multi_val multi2) const;
+ inline isl::multi_val range_product(isl::multi_val multi2) const;
+ inline isl::id range_tuple_id() const;
+ inline isl::id get_range_tuple_id() const;
+ inline isl::multi_val reset_range_tuple_id() const;
+ inline isl::multi_val reset_tuple_id(isl::dim type) const;
+ inline isl::multi_val scale(isl::multi_val mv) const;
+ inline isl::multi_val scale(isl::val v) const;
+ inline isl::multi_val scale(long v) const;
+ inline isl::multi_val scale_down(isl::multi_val mv) const;
+ inline isl::multi_val scale_down(isl::val v) const;
+ inline isl::multi_val scale_down(long v) const;
+ inline isl::multi_val set_at(int pos, isl::val el) const;
+ inline isl::multi_val set_at(int pos, long el) const;
+ inline isl::multi_val set_range_tuple(isl::id id) const;
+ inline isl::multi_val set_range_tuple(const std::string &id) const;
+ inline isl::multi_val set_val(int pos, isl::val el) const;
+ inline isl::multi_val set_val(int pos, long el) const;
+ inline class size size() const;
+ inline isl::space space() const;
+ inline isl::space get_space() const;
+ inline isl::multi_val sub(isl::multi_val multi2) const;
+ static inline isl::multi_val zero(isl::space space);
+};
+
+// declarations for isl::point
+inline point manage(__isl_take isl_point *ptr);
+inline point manage_copy(__isl_keep isl_point *ptr);
+
+class point {
+ friend inline point manage(__isl_take isl_point *ptr);
+ friend inline point manage_copy(__isl_keep isl_point *ptr);
+
+protected:
+ isl_point *ptr = nullptr;
+
+ inline explicit point(__isl_take isl_point *ptr);
+
+public:
+ inline /* implicit */ point();
+ inline /* implicit */ point(const point &obj);
+ inline explicit point(isl::space space);
+ inline point &operator=(point obj);
+ inline ~point();
+ inline __isl_give isl_point *copy() const &;
+ inline __isl_give isl_point *copy() && = delete;
+ inline __isl_keep isl_point *get() const;
+ inline __isl_give isl_point *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::set add_constraint(const isl::constraint &constraint) const;
+ inline isl::set add_dims(isl::dim type, unsigned int n) const;
+ inline isl::basic_set affine_hull() const;
+ inline isl::set align_params(const isl::space &model) const;
+ inline isl::basic_set apply(const isl::basic_map &bmap) const;
+ inline isl::set apply(const isl::map &map) const;
+ inline isl::union_set apply(const isl::union_map &umap) const;
+ inline isl::pw_multi_aff as_pw_multi_aff() const;
+ inline isl::set as_set() const;
+ inline isl::basic_set_list basic_set_list() const;
+ inline isl::set bind(const isl::multi_id &tuple) const;
+ inline isl::set coalesce() const;
+ inline isl::set complement() const;
+ inline isl::union_set compute_divs() const;
+ inline boolean contains(const isl::space &space) const;
+ inline isl::basic_set convex_hull() const;
+ inline isl::val coordinate_val(isl::dim type, int pos) const;
+ inline isl::val get_coordinate_val(isl::dim type, int pos) const;
+ inline isl::basic_set detect_equalities() const;
+ inline class size dim(isl::dim type) const;
+ inline boolean dim_has_any_lower_bound(isl::dim type, unsigned int pos) const;
+ inline isl::id dim_id(isl::dim type, unsigned int pos) const;
+ inline isl::pw_aff dim_max(int pos) const;
+ inline isl::val dim_max_val(int pos) const;
+ inline isl::pw_aff dim_min(int pos) const;
+ inline isl::val dim_min_val(int pos) const;
+ inline std::string dim_name(isl::dim type, unsigned int pos) const;
+ inline isl::aff div(int pos) const;
+ inline isl::set drop_constraints_involving_dims(isl::dim type, unsigned int first, unsigned int n) const;
+ inline isl::set eliminate(isl::dim type, unsigned int first, unsigned int n) const;
+ inline boolean every_set(const std::function<boolean(isl::set)> &test) const;
+ inline isl::set extract_set(const isl::space &space) const;
+ inline int find_dim_by_id(isl::dim type, const isl::id &id) const;
+ inline int find_dim_by_id(isl::dim type, const std::string &id) const;
+ inline isl::basic_set fix_si(isl::dim type, unsigned int pos, int value) const;
+ inline isl::basic_set fix_val(isl::dim type, unsigned int pos, const isl::val &v) const;
+ inline isl::basic_set fix_val(isl::dim type, unsigned int pos, long v) const;
+ inline isl::basic_set flatten() const;
+ inline stat foreach_basic_set(const std::function<stat(isl::basic_set)> &fn) const;
+ inline stat foreach_point(const std::function<stat(isl::point)> &fn) const;
+ inline stat foreach_set(const std::function<stat(isl::set)> &fn) const;
+ inline isl::basic_set gist(const isl::basic_set &context) const;
+ inline isl::set gist(const isl::set &context) const;
+ inline isl::union_set gist(const isl::union_set &context) const;
+ inline isl::set gist_params(const isl::set &context) const;
+ inline boolean has_equal_space(const isl::set &set2) const;
+ inline isl::map identity() const;
+ inline isl::union_pw_multi_aff identity_union_pw_multi_aff() const;
+ inline isl::pw_aff indicator_function() const;
+ inline isl::set insert_dims(isl::dim type, unsigned int pos, unsigned int n) const;
+ inline isl::map insert_domain(const isl::space &domain) const;
+ inline isl::basic_set intersect(const isl::basic_set &bset2) const;
+ inline isl::set intersect(const isl::set &set2) const;
+ inline isl::union_set intersect(const isl::union_set &uset2) const;
+ inline isl::basic_set intersect_params(const isl::basic_set &bset2) const;
+ inline isl::set intersect_params(const isl::set ¶ms) const;
+ inline boolean involves_dims(isl::dim type, unsigned int first, unsigned int n) const;
+ inline boolean involves_locals() const;
+ inline boolean is_bounded() const;
+ inline boolean is_disjoint(const isl::set &set2) const;
+ inline boolean is_disjoint(const isl::union_set &uset2) const;
+ inline boolean is_empty() const;
+ inline boolean is_equal(const isl::basic_set &bset2) const;
+ inline boolean is_equal(const isl::set &set2) const;
+ inline boolean is_equal(const isl::union_set &uset2) const;
+ inline boolean is_params() const;
+ inline boolean is_singleton() const;
+ inline boolean is_strict_subset(const isl::set &set2) const;
+ inline boolean is_strict_subset(const isl::union_set &uset2) const;
+ inline boolean is_subset(const isl::basic_set &bset2) const;
+ inline boolean is_subset(const isl::set &set2) const;
+ inline boolean is_subset(const isl::union_set &uset2) const;
+ inline boolean is_wrapping() const;
+ inline boolean isa_set() const;
+ inline isl::set lexmax() const;
+ inline isl::pw_multi_aff lexmax_pw_multi_aff() const;
+ inline isl::set lexmin() const;
+ inline isl::pw_multi_aff lexmin_pw_multi_aff() const;
+ inline isl::set lower_bound(const isl::multi_pw_aff &lower) const;
+ inline isl::set lower_bound(const isl::multi_val &lower) const;
+ inline isl::set lower_bound_si(isl::dim type, unsigned int pos, int value) const;
+ inline isl::set lower_bound_val(isl::dim type, unsigned int pos, const isl::val &value) const;
+ inline isl::set lower_bound_val(isl::dim type, unsigned int pos, long value) const;
+ inline isl::multi_pw_aff max_multi_pw_aff() const;
+ inline isl::val max_val(const isl::aff &obj) const;
+ inline isl::multi_pw_aff min_multi_pw_aff() const;
+ inline isl::val min_val(const isl::aff &obj) const;
+ inline isl::multi_val multi_val() const;
+ inline isl::multi_val get_multi_val() const;
+ inline class size n_basic_set() const;
+ inline isl::basic_set params() const;
+ inline isl::val plain_get_val_if_fixed(isl::dim type, unsigned int pos) const;
+ inline isl::multi_val plain_multi_val_if_fixed() const;
+ inline isl::basic_set polyhedral_hull() const;
+ inline isl::set preimage(const isl::multi_aff &ma) const;
+ inline isl::set preimage(const isl::multi_pw_aff &mpa) const;
+ inline isl::set preimage(const isl::pw_multi_aff &pma) const;
+ inline isl::union_set preimage(const isl::union_pw_multi_aff &upma) const;
+ inline isl::set product(const isl::set &set2) const;
+ inline isl::basic_set project_out(isl::dim type, unsigned int first, unsigned int n) const;
+ inline isl::set project_out_all_params() const;
+ inline isl::set project_out_param(const isl::id &id) const;
+ inline isl::set project_out_param(const std::string &id) const;
+ inline isl::set project_out_param(const isl::id_list &list) const;
+ inline isl::pw_multi_aff pw_multi_aff_on_domain(const isl::multi_val &mv) const;
+ inline isl::set remove_dims(isl::dim type, unsigned int first, unsigned int n) const;
+ inline isl::set remove_divs() const;
+ inline isl::set remove_redundancies() const;
+ inline isl::set reset_tuple_id() const;
+ inline isl::basic_set sample() const;
+ inline isl::point sample_point() const;
+ inline isl::set set_dim_id(isl::dim type, unsigned int pos, const isl::id &id) const;
+ inline isl::set set_dim_id(isl::dim type, unsigned int pos, const std::string &id) const;
+ inline isl::set_list set_list() const;
+ inline isl::set set_tuple_id(const isl::id &id) const;
+ inline isl::set set_tuple_id(const std::string &id) const;
+ inline isl::fixed_box simple_fixed_box_hull() const;
+ inline isl::basic_set simple_hull() const;
+ inline isl::space space() const;
+ inline isl::val stride(int pos) const;
+ inline isl::set subtract(const isl::set &set2) const;
+ inline isl::union_set subtract(const isl::union_set &uset2) const;
+ inline isl::basic_set_list to_list() const;
+ inline isl::set to_set() const;
+ inline isl::union_set to_union_set() const;
+ inline isl::map translation() const;
+ inline class size tuple_dim() const;
+ inline isl::id tuple_id() const;
+ inline std::string tuple_name() const;
+ inline isl::set unbind_params(const isl::multi_id &tuple) const;
+ inline isl::map unbind_params_insert_domain(const isl::multi_id &domain) const;
+ inline isl::set unite(const isl::basic_set &bset2) const;
+ inline isl::set unite(const isl::set &set2) const;
+ inline isl::union_set unite(const isl::union_set &uset2) const;
+ inline isl::basic_set unshifted_simple_hull() const;
+ inline isl::map unwrap() const;
+ inline isl::set upper_bound(const isl::multi_pw_aff &upper) const;
+ inline isl::set upper_bound(const isl::multi_val &upper) const;
+ inline isl::set upper_bound_val(isl::dim type, unsigned int pos, const isl::val &value) const;
+ inline isl::set upper_bound_val(isl::dim type, unsigned int pos, long value) const;
+};
+
+// declarations for isl::pw_aff
+inline pw_aff manage(__isl_take isl_pw_aff *ptr);
+inline pw_aff manage_copy(__isl_keep isl_pw_aff *ptr);
+
+class pw_aff {
+ friend inline pw_aff manage(__isl_take isl_pw_aff *ptr);
+ friend inline pw_aff manage_copy(__isl_keep isl_pw_aff *ptr);
+
+protected:
+ isl_pw_aff *ptr = nullptr;
+
+ inline explicit pw_aff(__isl_take isl_pw_aff *ptr);
+
+public:
+ inline /* implicit */ pw_aff();
+ inline /* implicit */ pw_aff(const pw_aff &obj);
+ inline /* implicit */ pw_aff(isl::aff aff);
+ inline explicit pw_aff(isl::ctx ctx, const std::string &str);
+ inline explicit pw_aff(isl::set domain, isl::val v);
+ inline explicit pw_aff(isl::local_space ls);
+ inline pw_aff &operator=(pw_aff obj);
+ inline ~pw_aff();
+ inline __isl_give isl_pw_aff *copy() const &;
+ inline __isl_give isl_pw_aff *copy() && = delete;
+ inline __isl_keep isl_pw_aff *get() const;
+ inline __isl_give isl_pw_aff *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::multi_pw_aff add(const isl::multi_pw_aff &multi2) const;
+ inline isl::multi_union_pw_aff add(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::pw_aff add(isl::pw_aff pwaff2) const;
+ inline isl::pw_multi_aff add(const isl::pw_multi_aff &pma2) const;
+ inline isl::union_pw_aff add(const isl::union_pw_aff &upa2) const;
+ inline isl::union_pw_multi_aff add(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::pw_aff add(const isl::aff &pwaff2) const;
+ inline isl::pw_aff add_constant(isl::val v) const;
+ inline isl::pw_aff add_constant(long v) const;
+ inline isl::pw_multi_aff add_constant(const isl::multi_val &mv) const;
+ inline isl::pw_aff add_dims(isl::dim type, unsigned int n) const;
+ inline isl::union_pw_multi_aff add_pw_multi_aff(const isl::pw_multi_aff &pma) const;
+ inline isl::union_pw_multi_aff apply(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::aff as_aff() const;
+ inline isl::map as_map() const;
+ inline isl::multi_aff as_multi_aff() const;
+ inline isl::multi_union_pw_aff as_multi_union_pw_aff() const;
+ inline isl::pw_multi_aff as_pw_multi_aff() const;
+ inline isl::set as_set() const;
+ inline isl::union_map as_union_map() const;
+ inline isl::pw_aff at(int pos) const;
+ inline isl::set bind(const isl::multi_id &tuple) const;
+ inline isl::set bind(isl::id id) const;
+ inline isl::set bind(const std::string &id) const;
+ inline isl::pw_aff bind_domain(isl::multi_id tuple) const;
+ inline isl::pw_aff bind_domain_wrapped_domain(isl::multi_id tuple) const;
+ inline isl::pw_aff ceil() const;
+ inline isl::pw_aff coalesce() const;
+ inline isl::pw_aff cond(isl::pw_aff pwaff_true, isl::pw_aff pwaff_false) const;
+ inline class size dim(isl::dim type) const;
+ inline isl::id dim_id(isl::dim type, unsigned int pos) const;
+ inline isl::id get_dim_id(isl::dim type, unsigned int pos) const;
+ inline isl::pw_aff div(isl::pw_aff pa2) const;
+ inline isl::set domain() const;
+ inline isl::space domain_space() const;
+ inline isl::space get_domain_space() const;
+ inline isl::pw_multi_aff drop_dims(isl::dim type, unsigned int first, unsigned int n) const;
+ inline isl::set eq_set(isl::pw_aff pwaff2) const;
+ inline isl::val eval(isl::point pnt) const;
+ inline isl::pw_multi_aff extract_pw_multi_aff(const isl::space &space) const;
+ inline isl::multi_pw_aff flat_range_product(const isl::multi_pw_aff &multi2) const;
+ inline isl::multi_union_pw_aff flat_range_product(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::pw_multi_aff flat_range_product(const isl::pw_multi_aff &pma2) const;
+ inline isl::union_pw_multi_aff flat_range_product(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::pw_aff floor() const;
+ inline stat foreach_piece(const std::function<stat(isl::set, isl::aff)> &fn) const;
+ inline stat foreach_piece(const std::function<stat(isl::set, isl::multi_aff)> &fn) const;
+ inline stat foreach_pw_aff(const std::function<stat(isl::pw_aff)> &fn) const;
+ inline isl::set ge_set(isl::pw_aff pwaff2) const;
+ inline isl::pw_aff gist(isl::set context) const;
+ inline isl::union_pw_aff gist(const isl::union_set &context) const;
+ inline isl::pw_aff gist(const isl::basic_set &context) const;
+ inline isl::pw_aff gist(const isl::point &context) const;
+ inline isl::set gt_set(isl::pw_aff pwaff2) const;
+ inline boolean has_range_tuple_id() const;
+ inline isl::multi_pw_aff identity() const;
+ inline isl::pw_aff insert_domain(isl::space domain) const;
+ inline isl::pw_aff intersect_domain(isl::set set) const;
+ inline isl::union_pw_aff intersect_domain(const isl::space &space) const;
+ inline isl::union_pw_aff intersect_domain(const isl::union_set &uset) const;
+ inline isl::pw_aff intersect_domain(const isl::basic_set &set) const;
+ inline isl::pw_aff intersect_domain(const isl::point &set) const;
+ inline isl::union_pw_aff intersect_domain_wrapped_domain(const isl::union_set &uset) const;
+ inline isl::union_pw_aff intersect_domain_wrapped_range(const isl::union_set &uset) const;
+ inline isl::pw_aff intersect_params(isl::set set) const;
+ inline boolean involves_locals() const;
+ inline boolean involves_nan() const;
+ inline boolean involves_param(const isl::id &id) const;
+ inline boolean involves_param(const std::string &id) const;
+ inline boolean involves_param(const isl::id_list &list) const;
+ inline boolean is_cst() const;
+ inline boolean is_equal(const isl::pw_aff &pa2) const;
+ inline boolean isa_aff() const;
+ inline boolean isa_multi_aff() const;
+ inline boolean isa_pw_multi_aff() const;
+ inline isl::set le_set(isl::pw_aff pwaff2) const;
+ inline isl::pw_aff_list list() const;
+ inline isl::set lt_set(isl::pw_aff pwaff2) const;
+ inline isl::multi_pw_aff max(const isl::multi_pw_aff &multi2) const;
+ inline isl::pw_aff max(isl::pw_aff pwaff2) const;
+ inline isl::pw_aff max(const isl::aff &pwaff2) const;
+ inline isl::multi_val max_multi_val() const;
+ inline isl::multi_pw_aff min(const isl::multi_pw_aff &multi2) const;
+ inline isl::pw_aff min(isl::pw_aff pwaff2) const;
+ inline isl::pw_aff min(const isl::aff &pwaff2) const;
+ inline isl::multi_val min_multi_val() const;
+ inline isl::pw_aff mod(isl::val mod) const;
+ inline isl::pw_aff mod(long mod) const;
+ inline isl::pw_aff mul(isl::pw_aff pwaff2) const;
+ inline class size n_piece() const;
+ inline isl::set ne_set(isl::pw_aff pwaff2) const;
+ inline isl::pw_aff neg() const;
+ static inline isl::pw_aff param_on_domain(isl::set domain, isl::id id);
+ inline boolean plain_is_empty() const;
+ inline boolean plain_is_equal(const isl::multi_pw_aff &multi2) const;
+ inline boolean plain_is_equal(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::pw_multi_aff preimage_domain_wrapped_domain(const isl::pw_multi_aff &pma2) const;
+ inline isl::union_pw_multi_aff preimage_domain_wrapped_domain(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::multi_pw_aff product(const isl::multi_pw_aff &multi2) const;
+ inline isl::pw_multi_aff product(const isl::pw_multi_aff &pma2) const;
+ inline isl::pw_aff pullback(isl::multi_aff ma) const;
+ inline isl::pw_aff pullback(isl::multi_pw_aff mpa) const;
+ inline isl::pw_aff pullback(isl::pw_multi_aff pma) const;
+ inline isl::union_pw_aff pullback(const isl::union_pw_multi_aff &upma) const;
+ inline isl::pw_multi_aff_list pw_multi_aff_list() const;
+ inline isl::pw_multi_aff range_factor_domain() const;
+ inline isl::pw_multi_aff range_factor_range() const;
+ inline isl::multi_pw_aff range_product(const isl::multi_pw_aff &multi2) const;
+ inline isl::multi_union_pw_aff range_product(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::pw_multi_aff range_product(const isl::pw_multi_aff &pma2) const;
+ inline isl::union_pw_multi_aff range_product(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::id range_tuple_id() const;
+ inline isl::multi_pw_aff reset_range_tuple_id() const;
+ inline isl::multi_pw_aff reset_tuple_id(isl::dim type) const;
+ inline isl::multi_pw_aff scale(const isl::multi_val &mv) const;
+ inline isl::pw_aff scale(isl::val v) const;
+ inline isl::pw_aff scale(long v) const;
+ inline isl::multi_pw_aff scale_down(const isl::multi_val &mv) const;
+ inline isl::pw_aff scale_down(isl::val f) const;
+ inline isl::pw_aff scale_down(long f) const;
+ inline isl::multi_pw_aff set_at(int pos, const isl::pw_aff &el) const;
+ inline isl::multi_union_pw_aff set_at(int pos, const isl::union_pw_aff &el) const;
+ inline isl::multi_pw_aff set_pw_aff(int pos, const isl::pw_aff &el) const;
+ inline isl::pw_multi_aff set_pw_aff(unsigned int pos, const isl::pw_aff &pa) const;
+ inline isl::pw_multi_aff set_range_tuple(const isl::id &id) const;
+ inline isl::pw_multi_aff set_range_tuple(const std::string &id) const;
+ inline isl::pw_aff set_tuple_id(isl::dim type, isl::id id) const;
+ inline isl::pw_aff set_tuple_id(isl::dim type, const std::string &id) const;
+ inline isl::multi_union_pw_aff set_union_pw_aff(int pos, const isl::union_pw_aff &el) const;
+ inline class size size() const;
+ inline isl::space space() const;
+ inline isl::space get_space() const;
+ inline isl::multi_pw_aff sub(const isl::multi_pw_aff &multi2) const;
+ inline isl::multi_union_pw_aff sub(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::pw_aff sub(isl::pw_aff pwaff2) const;
+ inline isl::pw_multi_aff sub(const isl::pw_multi_aff &pma2) const;
+ inline isl::union_pw_aff sub(const isl::union_pw_aff &upa2) const;
+ inline isl::union_pw_multi_aff sub(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::pw_aff sub(const isl::aff &pwaff2) const;
+ inline isl::pw_aff subtract_domain(isl::set set) const;
+ inline isl::union_pw_aff subtract_domain(const isl::space &space) const;
+ inline isl::union_pw_aff subtract_domain(const isl::union_set &uset) const;
+ inline isl::pw_aff subtract_domain(const isl::basic_set &set) const;
+ inline isl::pw_aff subtract_domain(const isl::point &set) const;
+ inline isl::pw_aff tdiv_q(isl::pw_aff pa2) const;
+ inline isl::pw_aff tdiv_r(isl::pw_aff pa2) const;
+ inline isl::pw_aff_list to_list() const;
+ inline isl::multi_pw_aff to_multi_pw_aff() const;
+ inline isl::union_pw_aff to_union_pw_aff() const;
+ inline isl::union_pw_multi_aff to_union_pw_multi_aff() const;
+ inline isl::id tuple_id(isl::dim type) const;
+ inline isl::id get_tuple_id(isl::dim type) const;
+ inline isl::multi_pw_aff unbind_params_insert_domain(const isl::multi_id &domain) const;
+ inline isl::multi_pw_aff union_add(const isl::multi_pw_aff &mpa2) const;
+ inline isl::multi_union_pw_aff union_add(const isl::multi_union_pw_aff &mupa2) const;
+ inline isl::pw_aff union_add(isl::pw_aff pwaff2) const;
+ inline isl::pw_multi_aff union_add(const isl::pw_multi_aff &pma2) const;
+ inline isl::union_pw_aff union_add(const isl::union_pw_aff &upa2) const;
+ inline isl::union_pw_multi_aff union_add(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::pw_aff union_add(const isl::aff &pwaff2) const;
+ static inline isl::pw_aff var_on_domain(isl::local_space ls, isl::dim type, unsigned int pos);
+};
+
+// declarations for isl::pw_aff_list
+inline pw_aff_list manage(__isl_take isl_pw_aff_list *ptr);
+inline pw_aff_list manage_copy(__isl_keep isl_pw_aff_list *ptr);
+
+class pw_aff_list {
+ friend inline pw_aff_list manage(__isl_take isl_pw_aff_list *ptr);
+ friend inline pw_aff_list manage_copy(__isl_keep isl_pw_aff_list *ptr);
+
+protected:
+ isl_pw_aff_list *ptr = nullptr;
+
+ inline explicit pw_aff_list(__isl_take isl_pw_aff_list *ptr);
+
+public:
+ inline /* implicit */ pw_aff_list();
+ inline /* implicit */ pw_aff_list(const pw_aff_list &obj);
+ inline explicit pw_aff_list(isl::ctx ctx, int n);
+ inline explicit pw_aff_list(isl::pw_aff el);
+ inline explicit pw_aff_list(isl::ctx ctx, const std::string &str);
+ inline pw_aff_list &operator=(pw_aff_list obj);
+ inline ~pw_aff_list();
+ inline __isl_give isl_pw_aff_list *copy() const &;
+ inline __isl_give isl_pw_aff_list *copy() && = delete;
+ inline __isl_keep isl_pw_aff_list *get() const;
+ inline __isl_give isl_pw_aff_list *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::pw_aff_list add(isl::pw_aff el) const;
+ inline isl::pw_aff at(int index) const;
+ inline isl::pw_aff get_at(int index) const;
+ inline isl::pw_aff_list clear() const;
+ inline isl::pw_aff_list concat(isl::pw_aff_list list2) const;
+ inline isl::pw_aff_list drop(unsigned int first, unsigned int n) const;
+ inline stat foreach(const std::function<stat(isl::pw_aff)> &fn) const;
+ inline isl::pw_aff_list insert(unsigned int pos, isl::pw_aff el) const;
+ inline class size size() const;
+};
+
+// declarations for isl::pw_multi_aff
+inline pw_multi_aff manage(__isl_take isl_pw_multi_aff *ptr);
+inline pw_multi_aff manage_copy(__isl_keep isl_pw_multi_aff *ptr);
+
+class pw_multi_aff {
+ friend inline pw_multi_aff manage(__isl_take isl_pw_multi_aff *ptr);
+ friend inline pw_multi_aff manage_copy(__isl_keep isl_pw_multi_aff *ptr);
+
+protected:
+ isl_pw_multi_aff *ptr = nullptr;
+
+ inline explicit pw_multi_aff(__isl_take isl_pw_multi_aff *ptr);
+
+public:
+ inline /* implicit */ pw_multi_aff();
+ inline /* implicit */ pw_multi_aff(const pw_multi_aff &obj);
+ inline /* implicit */ pw_multi_aff(isl::multi_aff ma);
+ inline /* implicit */ pw_multi_aff(isl::pw_aff pa);
+ inline explicit pw_multi_aff(isl::ctx ctx, const std::string &str);
+ inline pw_multi_aff &operator=(pw_multi_aff obj);
+ inline ~pw_multi_aff();
+ inline __isl_give isl_pw_multi_aff *copy() const &;
+ inline __isl_give isl_pw_multi_aff *copy() && = delete;
+ inline __isl_keep isl_pw_multi_aff *get() const;
+ inline __isl_give isl_pw_multi_aff *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::multi_pw_aff add(const isl::multi_pw_aff &multi2) const;
+ inline isl::multi_union_pw_aff add(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::pw_multi_aff add(isl::pw_multi_aff pma2) const;
+ inline isl::union_pw_multi_aff add(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::pw_multi_aff add(const isl::multi_aff &pma2) const;
+ inline isl::pw_multi_aff add(const isl::pw_aff &pma2) const;
+ inline isl::pw_multi_aff add_constant(isl::multi_val mv) const;
+ inline isl::pw_multi_aff add_constant(isl::val v) const;
+ inline isl::pw_multi_aff add_constant(long v) const;
+ inline isl::union_pw_multi_aff add_pw_multi_aff(const isl::pw_multi_aff &pma) const;
+ inline isl::union_pw_multi_aff apply(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::map as_map() const;
+ inline isl::multi_aff as_multi_aff() const;
+ inline isl::multi_union_pw_aff as_multi_union_pw_aff() const;
+ inline isl::pw_multi_aff as_pw_multi_aff() const;
+ inline isl::set as_set() const;
+ inline isl::union_map as_union_map() const;
+ inline isl::pw_aff at(int pos) const;
+ inline isl::pw_aff get_at(int pos) const;
+ inline isl::set bind(const isl::multi_id &tuple) const;
+ inline isl::pw_multi_aff bind_domain(isl::multi_id tuple) const;
+ inline isl::pw_multi_aff bind_domain_wrapped_domain(isl::multi_id tuple) const;
+ inline isl::pw_multi_aff coalesce() const;
+ inline class size dim(isl::dim type) const;
+ inline isl::set domain() const;
+ static inline isl::pw_multi_aff domain_map(isl::space space);
+ inline isl::pw_multi_aff drop_dims(isl::dim type, unsigned int first, unsigned int n) const;
+ inline isl::pw_multi_aff extract_pw_multi_aff(const isl::space &space) const;
+ inline isl::multi_pw_aff flat_range_product(const isl::multi_pw_aff &multi2) const;
+ inline isl::multi_union_pw_aff flat_range_product(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::pw_multi_aff flat_range_product(isl::pw_multi_aff pma2) const;
+ inline isl::union_pw_multi_aff flat_range_product(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::pw_multi_aff flat_range_product(const isl::multi_aff &pma2) const;
+ inline isl::pw_multi_aff flat_range_product(const isl::pw_aff &pma2) const;
+ inline stat foreach_piece(const std::function<stat(isl::set, isl::multi_aff)> &fn) const;
+ static inline isl::pw_multi_aff from_map(isl::map map);
+ inline isl::pw_multi_aff gist(isl::set set) const;
+ inline isl::union_pw_multi_aff gist(const isl::union_set &context) const;
+ inline isl::pw_multi_aff gist(const isl::basic_set &set) const;
+ inline isl::pw_multi_aff gist(const isl::point &set) const;
+ inline boolean has_range_tuple_id() const;
+ inline isl::multi_pw_aff identity() const;
+ static inline isl::pw_multi_aff identity_on_domain(isl::space space);
+ inline isl::pw_multi_aff insert_domain(isl::space domain) const;
+ inline isl::pw_multi_aff intersect_domain(isl::set set) const;
+ inline isl::union_pw_multi_aff intersect_domain(const isl::space &space) const;
+ inline isl::union_pw_multi_aff intersect_domain(const isl::union_set &uset) const;
+ inline isl::pw_multi_aff intersect_domain(const isl::basic_set &set) const;
+ inline isl::pw_multi_aff intersect_domain(const isl::point &set) const;
+ inline isl::union_pw_multi_aff intersect_domain_wrapped_domain(const isl::union_set &uset) const;
+ inline isl::union_pw_multi_aff intersect_domain_wrapped_range(const isl::union_set &uset) const;
+ inline isl::pw_multi_aff intersect_params(isl::set set) const;
+ inline boolean involves_locals() const;
+ inline boolean involves_nan() const;
+ inline boolean involves_param(const isl::id &id) const;
+ inline boolean involves_param(const std::string &id) const;
+ inline boolean involves_param(const isl::id_list &list) const;
+ inline boolean isa_multi_aff() const;
+ inline boolean isa_pw_multi_aff() const;
+ inline isl::pw_aff_list list() const;
+ inline isl::multi_pw_aff max(const isl::multi_pw_aff &multi2) const;
+ inline isl::multi_val max_multi_val() const;
+ inline isl::multi_pw_aff min(const isl::multi_pw_aff &multi2) const;
+ inline isl::multi_val min_multi_val() const;
+ static inline isl::pw_multi_aff multi_val_on_domain(isl::set domain, isl::multi_val mv);
+ inline class size n_piece() const;
+ inline isl::multi_pw_aff neg() const;
+ inline boolean plain_is_empty() const;
+ inline boolean plain_is_equal(const isl::multi_pw_aff &multi2) const;
+ inline boolean plain_is_equal(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::pw_multi_aff preimage_domain_wrapped_domain(isl::pw_multi_aff pma2) const;
+ inline isl::union_pw_multi_aff preimage_domain_wrapped_domain(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::pw_multi_aff preimage_domain_wrapped_domain(const isl::multi_aff &pma2) const;
+ inline isl::pw_multi_aff preimage_domain_wrapped_domain(const isl::pw_aff &pma2) const;
+ inline isl::multi_pw_aff product(const isl::multi_pw_aff &multi2) const;
+ inline isl::pw_multi_aff product(isl::pw_multi_aff pma2) const;
+ inline isl::pw_multi_aff product(const isl::multi_aff &pma2) const;
+ inline isl::pw_multi_aff product(const isl::pw_aff &pma2) const;
+ static inline isl::pw_multi_aff project_out_map(isl::space space, isl::dim type, unsigned int first, unsigned int n);
+ inline isl::multi_pw_aff pullback(const isl::multi_pw_aff &mpa2) const;
+ inline isl::pw_multi_aff pullback(isl::multi_aff ma) const;
+ inline isl::pw_multi_aff pullback(isl::pw_multi_aff pma2) const;
+ inline isl::union_pw_multi_aff pullback(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::pw_multi_aff_list pw_multi_aff_list() const;
+ inline isl::pw_multi_aff range_factor_domain() const;
+ inline isl::pw_multi_aff range_factor_range() const;
+ static inline isl::pw_multi_aff range_map(isl::space space);
+ inline isl::multi_pw_aff range_product(const isl::multi_pw_aff &multi2) const;
+ inline isl::multi_union_pw_aff range_product(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::pw_multi_aff range_product(isl::pw_multi_aff pma2) const;
+ inline isl::union_pw_multi_aff range_product(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::pw_multi_aff range_product(const isl::multi_aff &pma2) const;
+ inline isl::pw_multi_aff range_product(const isl::pw_aff &pma2) const;
+ inline isl::id range_tuple_id() const;
+ inline isl::id get_range_tuple_id() const;
+ inline isl::multi_pw_aff reset_range_tuple_id() const;
+ inline isl::multi_pw_aff reset_tuple_id(isl::dim type) const;
+ inline isl::multi_pw_aff scale(const isl::multi_val &mv) const;
+ inline isl::pw_multi_aff scale(isl::val v) const;
+ inline isl::pw_multi_aff scale(long v) const;
+ inline isl::multi_pw_aff scale_down(const isl::multi_val &mv) const;
+ inline isl::pw_multi_aff scale_down(isl::val v) const;
+ inline isl::pw_multi_aff scale_down(long v) const;
+ inline isl::multi_pw_aff set_at(int pos, const isl::pw_aff &el) const;
+ inline isl::multi_union_pw_aff set_at(int pos, const isl::union_pw_aff &el) const;
+ inline isl::multi_pw_aff set_pw_aff(int pos, const isl::pw_aff &el) const;
+ inline isl::pw_multi_aff set_pw_aff(unsigned int pos, isl::pw_aff pa) const;
+ inline isl::pw_multi_aff set_range_tuple(isl::id id) const;
+ inline isl::pw_multi_aff set_range_tuple(const std::string &id) const;
+ inline isl::multi_union_pw_aff set_union_pw_aff(int pos, const isl::union_pw_aff &el) const;
+ inline class size size() const;
+ inline isl::space space() const;
+ inline isl::space get_space() const;
+ inline isl::multi_pw_aff sub(const isl::multi_pw_aff &multi2) const;
+ inline isl::multi_union_pw_aff sub(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::pw_multi_aff sub(isl::pw_multi_aff pma2) const;
+ inline isl::union_pw_multi_aff sub(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::pw_multi_aff sub(const isl::multi_aff &pma2) const;
+ inline isl::pw_multi_aff sub(const isl::pw_aff &pma2) const;
+ inline isl::pw_multi_aff subtract_domain(isl::set set) const;
+ inline isl::union_pw_multi_aff subtract_domain(const isl::space &space) const;
+ inline isl::union_pw_multi_aff subtract_domain(const isl::union_set &uset) const;
+ inline isl::pw_multi_aff subtract_domain(const isl::basic_set &set) const;
+ inline isl::pw_multi_aff subtract_domain(const isl::point &set) const;
+ inline isl::pw_multi_aff_list to_list() const;
+ inline isl::multi_pw_aff to_multi_pw_aff() const;
+ inline isl::union_pw_multi_aff to_union_pw_multi_aff() const;
+ inline isl::id tuple_id(isl::dim type) const;
+ inline isl::id get_tuple_id(isl::dim type) const;
+ inline isl::multi_pw_aff unbind_params_insert_domain(const isl::multi_id &domain) const;
+ inline isl::multi_pw_aff union_add(const isl::multi_pw_aff &mpa2) const;
+ inline isl::multi_union_pw_aff union_add(const isl::multi_union_pw_aff &mupa2) const;
+ inline isl::pw_multi_aff union_add(isl::pw_multi_aff pma2) const;
+ inline isl::union_pw_multi_aff union_add(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::pw_multi_aff union_add(const isl::multi_aff &pma2) const;
+ inline isl::pw_multi_aff union_add(const isl::pw_aff &pma2) const;
+ static inline isl::pw_multi_aff zero(isl::space space);
+};
+
+// declarations for isl::pw_multi_aff_list
+inline pw_multi_aff_list manage(__isl_take isl_pw_multi_aff_list *ptr);
+inline pw_multi_aff_list manage_copy(__isl_keep isl_pw_multi_aff_list *ptr);
+
+class pw_multi_aff_list {
+ friend inline pw_multi_aff_list manage(__isl_take isl_pw_multi_aff_list *ptr);
+ friend inline pw_multi_aff_list manage_copy(__isl_keep isl_pw_multi_aff_list *ptr);
+
+protected:
+ isl_pw_multi_aff_list *ptr = nullptr;
+
+ inline explicit pw_multi_aff_list(__isl_take isl_pw_multi_aff_list *ptr);
+
+public:
+ inline /* implicit */ pw_multi_aff_list();
+ inline /* implicit */ pw_multi_aff_list(const pw_multi_aff_list &obj);
+ inline explicit pw_multi_aff_list(isl::ctx ctx, int n);
+ inline explicit pw_multi_aff_list(isl::pw_multi_aff el);
+ inline explicit pw_multi_aff_list(isl::ctx ctx, const std::string &str);
+ inline pw_multi_aff_list &operator=(pw_multi_aff_list obj);
+ inline ~pw_multi_aff_list();
+ inline __isl_give isl_pw_multi_aff_list *copy() const &;
+ inline __isl_give isl_pw_multi_aff_list *copy() && = delete;
+ inline __isl_keep isl_pw_multi_aff_list *get() const;
+ inline __isl_give isl_pw_multi_aff_list *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::pw_multi_aff_list add(isl::pw_multi_aff el) const;
+ inline isl::pw_multi_aff at(int index) const;
+ inline isl::pw_multi_aff get_at(int index) const;
+ inline isl::pw_multi_aff_list clear() const;
+ inline isl::pw_multi_aff_list concat(isl::pw_multi_aff_list list2) const;
+ inline isl::pw_multi_aff_list drop(unsigned int first, unsigned int n) const;
+ inline stat foreach(const std::function<stat(isl::pw_multi_aff)> &fn) const;
+ inline isl::pw_multi_aff_list insert(unsigned int pos, isl::pw_multi_aff el) const;
+ inline class size size() const;
+};
+
+// declarations for isl::schedule
+inline schedule manage(__isl_take isl_schedule *ptr);
+inline schedule manage_copy(__isl_keep isl_schedule *ptr);
+
+class schedule {
+ friend inline schedule manage(__isl_take isl_schedule *ptr);
+ friend inline schedule manage_copy(__isl_keep isl_schedule *ptr);
+
+protected:
+ isl_schedule *ptr = nullptr;
+
+ inline explicit schedule(__isl_take isl_schedule *ptr);
+
+public:
+ inline /* implicit */ schedule();
+ inline /* implicit */ schedule(const schedule &obj);
+ inline explicit schedule(isl::ctx ctx, const std::string &str);
+ inline schedule &operator=(schedule obj);
+ inline ~schedule();
+ inline __isl_give isl_schedule *copy() const &;
+ inline __isl_give isl_schedule *copy() && = delete;
+ inline __isl_keep isl_schedule *get() const;
+ inline __isl_give isl_schedule *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::schedule align_params(isl::space space) const;
+ inline isl::union_set domain() const;
+ inline isl::union_set get_domain() const;
+ static inline isl::schedule from_domain(isl::union_set domain);
+ inline isl::schedule gist_domain_params(isl::set context) const;
+ inline isl::schedule insert_partial_schedule(isl::multi_union_pw_aff partial) const;
+ inline isl::schedule intersect_domain(isl::union_set domain) const;
+ inline isl::union_map map() const;
+ inline isl::union_map get_map() const;
+ inline isl::schedule pullback(isl::union_pw_multi_aff upma) const;
+ inline isl::schedule_node root() const;
+ inline isl::schedule_node get_root() const;
+ inline isl::schedule sequence(isl::schedule schedule2) const;
+};
+
+// declarations for isl::schedule_constraints
+inline schedule_constraints manage(__isl_take isl_schedule_constraints *ptr);
+inline schedule_constraints manage_copy(__isl_keep isl_schedule_constraints *ptr);
+
+class schedule_constraints {
+ friend inline schedule_constraints manage(__isl_take isl_schedule_constraints *ptr);
+ friend inline schedule_constraints manage_copy(__isl_keep isl_schedule_constraints *ptr);
+
+protected:
+ isl_schedule_constraints *ptr = nullptr;
+
+ inline explicit schedule_constraints(__isl_take isl_schedule_constraints *ptr);
+
+public:
+ inline /* implicit */ schedule_constraints();
+ inline /* implicit */ schedule_constraints(const schedule_constraints &obj);
+ inline explicit schedule_constraints(isl::ctx ctx, const std::string &str);
+ inline schedule_constraints &operator=(schedule_constraints obj);
+ inline ~schedule_constraints();
+ inline __isl_give isl_schedule_constraints *copy() const &;
+ inline __isl_give isl_schedule_constraints *copy() && = delete;
+ inline __isl_keep isl_schedule_constraints *get() const;
+ inline __isl_give isl_schedule_constraints *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::union_map coincidence() const;
+ inline isl::union_map get_coincidence() const;
+ inline isl::schedule compute_schedule() const;
+ inline isl::union_map conditional_validity() const;
+ inline isl::union_map get_conditional_validity() const;
+ inline isl::union_map conditional_validity_condition() const;
+ inline isl::union_map get_conditional_validity_condition() const;
+ inline isl::set context() const;
+ inline isl::set get_context() const;
+ inline isl::union_set domain() const;
+ inline isl::union_set get_domain() const;
+ static inline isl::schedule_constraints on_domain(isl::union_set domain);
+ inline isl::union_map proximity() const;
+ inline isl::union_map get_proximity() const;
+ inline isl::schedule_constraints set_coincidence(isl::union_map coincidence) const;
+ inline isl::schedule_constraints set_conditional_validity(isl::union_map condition, isl::union_map validity) const;
+ inline isl::schedule_constraints set_context(isl::set context) const;
+ inline isl::schedule_constraints set_proximity(isl::union_map proximity) const;
+ inline isl::schedule_constraints set_validity(isl::union_map validity) const;
+ inline isl::union_map validity() const;
+ inline isl::union_map get_validity() const;
+};
+
+// declarations for isl::schedule_node
+inline schedule_node manage(__isl_take isl_schedule_node *ptr);
+inline schedule_node manage_copy(__isl_keep isl_schedule_node *ptr);
+
+class schedule_node {
+ friend inline schedule_node manage(__isl_take isl_schedule_node *ptr);
+ friend inline schedule_node manage_copy(__isl_keep isl_schedule_node *ptr);
+
+protected:
+ isl_schedule_node *ptr = nullptr;
+
+ inline explicit schedule_node(__isl_take isl_schedule_node *ptr);
+
+public:
+ inline /* implicit */ schedule_node();
+ inline /* implicit */ schedule_node(const schedule_node &obj);
+ inline schedule_node &operator=(schedule_node obj);
+ inline ~schedule_node();
+ inline __isl_give isl_schedule_node *copy() const &;
+ inline __isl_give isl_schedule_node *copy() && = delete;
+ inline __isl_keep isl_schedule_node *get() const;
+ inline __isl_give isl_schedule_node *release();
+ inline bool is_null() const;
+private:
+ template <typename T,
+ typename = typename std::enable_if<std::is_same<
+ const decltype(isl_schedule_node_get_type(NULL)),
+ const T>::value>::type>
+ inline boolean isa_type(T subtype) const;
+public:
+ template <class T> inline boolean isa() const;
+ template <class T> inline T as() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::schedule_node ancestor(int generation) const;
+ inline class size ancestor_child_position(const isl::schedule_node &ancestor) const;
+ inline class size get_ancestor_child_position(const isl::schedule_node &ancestor) const;
+ inline isl::schedule_node child(int pos) const;
+ inline class size child_position() const;
+ inline class size get_child_position() const;
+ inline isl::union_set domain() const;
+ inline isl::union_set get_domain() const;
+ inline boolean every_descendant(const std::function<boolean(isl::schedule_node)> &test) const;
+ inline isl::schedule_node first_child() const;
+ inline stat foreach_ancestor_top_down(const std::function<stat(isl::schedule_node)> &fn) const;
+ inline stat foreach_descendant_top_down(const std::function<boolean(isl::schedule_node)> &fn) const;
+ static inline isl::schedule_node from_domain(isl::union_set domain);
+ static inline isl::schedule_node from_extension(isl::union_map extension);
+ inline isl::schedule_node graft_after(isl::schedule_node graft) const;
+ inline isl::schedule_node graft_before(isl::schedule_node graft) const;
+ inline boolean has_children() const;
+ inline boolean has_next_sibling() const;
+ inline boolean has_parent() const;
+ inline boolean has_previous_sibling() const;
+ inline isl::schedule_node insert_context(isl::set context) const;
+ inline isl::schedule_node insert_filter(isl::union_set filter) const;
+ inline isl::schedule_node insert_guard(isl::set context) const;
+ inline isl::schedule_node insert_mark(isl::id mark) const;
+ inline isl::schedule_node insert_mark(const std::string &mark) const;
+ inline isl::schedule_node insert_partial_schedule(isl::multi_union_pw_aff schedule) const;
+ inline isl::schedule_node insert_sequence(isl::union_set_list filters) const;
+ inline isl::schedule_node insert_set(isl::union_set_list filters) const;
+ inline boolean is_equal(const isl::schedule_node &node2) const;
+ inline boolean is_subtree_anchored() const;
+ inline isl::schedule_node map_descendant_bottom_up(const std::function<isl::schedule_node(isl::schedule_node)> &fn) const;
+ inline class size n_children() const;
+ inline isl::schedule_node next_sibling() const;
+ inline isl::schedule_node order_after(isl::union_set filter) const;
+ inline isl::schedule_node order_before(isl::union_set filter) const;
+ inline isl::schedule_node parent() const;
+ inline isl::multi_union_pw_aff prefix_schedule_multi_union_pw_aff() const;
+ inline isl::multi_union_pw_aff get_prefix_schedule_multi_union_pw_aff() const;
+ inline isl::union_map prefix_schedule_relation() const;
+ inline isl::union_map get_prefix_schedule_relation() const;
+ inline isl::union_map prefix_schedule_union_map() const;
+ inline isl::union_map get_prefix_schedule_union_map() const;
+ inline isl::union_pw_multi_aff prefix_schedule_union_pw_multi_aff() const;
+ inline isl::union_pw_multi_aff get_prefix_schedule_union_pw_multi_aff() const;
+ inline isl::schedule_node previous_sibling() const;
+ inline isl::schedule_node root() const;
+ inline isl::schedule schedule() const;
+ inline isl::schedule get_schedule() const;
+ inline class size schedule_depth() const;
+ inline class size get_schedule_depth() const;
+ inline isl::schedule_node shared_ancestor(const isl::schedule_node &node2) const;
+ inline isl::schedule_node get_shared_ancestor(const isl::schedule_node &node2) const;
+ inline class size tree_depth() const;
+ inline class size get_tree_depth() const;
+ inline isl::union_set universe_domain() const;
+ inline isl::union_set get_universe_domain() const;
+};
+
+// declarations for isl::schedule_node_band
+
+class schedule_node_band : public schedule_node {
+ template <class T>
+ friend boolean schedule_node::isa() const;
+ friend schedule_node_band schedule_node::as<schedule_node_band>() const;
+ static const auto type = isl_schedule_node_band;
+
+protected:
+ inline explicit schedule_node_band(__isl_take isl_schedule_node *ptr);
+
+public:
+ inline /* implicit */ schedule_node_band();
+ inline /* implicit */ schedule_node_band(const schedule_node_band &obj);
+ inline schedule_node_band &operator=(schedule_node_band obj);
+ inline isl::ctx ctx() const;
+
+ inline isl::union_set ast_build_options() const;
+ inline isl::union_set get_ast_build_options() const;
+ inline isl::set ast_isolate_option() const;
+ inline isl::set get_ast_isolate_option() const;
+ inline boolean member_get_coincident(int pos) const;
+ inline schedule_node_band member_set_coincident(int pos, int coincident) const;
+ inline schedule_node_band mod(isl::multi_val mv) const;
+ inline class size n_member() const;
+ inline isl::multi_union_pw_aff partial_schedule() const;
+ inline isl::multi_union_pw_aff get_partial_schedule() const;
+ inline boolean permutable() const;
+ inline boolean get_permutable() const;
+ inline schedule_node_band scale(isl::multi_val mv) const;
+ inline schedule_node_band scale_down(isl::multi_val mv) const;
+ inline schedule_node_band set_ast_build_options(isl::union_set options) const;
+ inline schedule_node_band set_permutable(int permutable) const;
+ inline schedule_node_band shift(isl::multi_union_pw_aff shift) const;
+ inline schedule_node_band split(int pos) const;
+ inline schedule_node_band tile(isl::multi_val sizes) const;
+ inline schedule_node_band member_set_ast_loop_default(int pos) const;
+ inline schedule_node_band member_set_ast_loop_atomic(int pos) const;
+ inline schedule_node_band member_set_ast_loop_unroll(int pos) const;
+ inline schedule_node_band member_set_ast_loop_separate(int pos) const;
+};
+
+// declarations for isl::schedule_node_context
+
+class schedule_node_context : public schedule_node {
+ template <class T>
+ friend boolean schedule_node::isa() const;
+ friend schedule_node_context schedule_node::as<schedule_node_context>() const;
+ static const auto type = isl_schedule_node_context;
+
+protected:
+ inline explicit schedule_node_context(__isl_take isl_schedule_node *ptr);
+
+public:
+ inline /* implicit */ schedule_node_context();
+ inline /* implicit */ schedule_node_context(const schedule_node_context &obj);
+ inline schedule_node_context &operator=(schedule_node_context obj);
+ inline isl::ctx ctx() const;
+
+ inline isl::set context() const;
+ inline isl::set get_context() const;
+};
+
+// declarations for isl::schedule_node_domain
+
+class schedule_node_domain : public schedule_node {
+ template <class T>
+ friend boolean schedule_node::isa() const;
+ friend schedule_node_domain schedule_node::as<schedule_node_domain>() const;
+ static const auto type = isl_schedule_node_domain;
+
+protected:
+ inline explicit schedule_node_domain(__isl_take isl_schedule_node *ptr);
+
+public:
+ inline /* implicit */ schedule_node_domain();
+ inline /* implicit */ schedule_node_domain(const schedule_node_domain &obj);
+ inline schedule_node_domain &operator=(schedule_node_domain obj);
+ inline isl::ctx ctx() const;
+
+ inline isl::union_set domain() const;
+ inline isl::union_set get_domain() const;
+};
+
+// declarations for isl::schedule_node_expansion
+
+class schedule_node_expansion : public schedule_node {
+ template <class T>
+ friend boolean schedule_node::isa() const;
+ friend schedule_node_expansion schedule_node::as<schedule_node_expansion>() const;
+ static const auto type = isl_schedule_node_expansion;
+
+protected:
+ inline explicit schedule_node_expansion(__isl_take isl_schedule_node *ptr);
+
+public:
+ inline /* implicit */ schedule_node_expansion();
+ inline /* implicit */ schedule_node_expansion(const schedule_node_expansion &obj);
+ inline schedule_node_expansion &operator=(schedule_node_expansion obj);
+ inline isl::ctx ctx() const;
+
+ inline isl::union_pw_multi_aff contraction() const;
+ inline isl::union_pw_multi_aff get_contraction() const;
+ inline isl::union_map expansion() const;
+ inline isl::union_map get_expansion() const;
+};
+
+// declarations for isl::schedule_node_extension
+
+class schedule_node_extension : public schedule_node {
+ template <class T>
+ friend boolean schedule_node::isa() const;
+ friend schedule_node_extension schedule_node::as<schedule_node_extension>() const;
+ static const auto type = isl_schedule_node_extension;
+
+protected:
+ inline explicit schedule_node_extension(__isl_take isl_schedule_node *ptr);
+
+public:
+ inline /* implicit */ schedule_node_extension();
+ inline /* implicit */ schedule_node_extension(const schedule_node_extension &obj);
+ inline schedule_node_extension &operator=(schedule_node_extension obj);
+ inline isl::ctx ctx() const;
+
+ inline isl::union_map extension() const;
+ inline isl::union_map get_extension() const;
+};
+
+// declarations for isl::schedule_node_filter
+
+class schedule_node_filter : public schedule_node {
+ template <class T>
+ friend boolean schedule_node::isa() const;
+ friend schedule_node_filter schedule_node::as<schedule_node_filter>() const;
+ static const auto type = isl_schedule_node_filter;
+
+protected:
+ inline explicit schedule_node_filter(__isl_take isl_schedule_node *ptr);
+
+public:
+ inline /* implicit */ schedule_node_filter();
+ inline /* implicit */ schedule_node_filter(const schedule_node_filter &obj);
+ inline schedule_node_filter &operator=(schedule_node_filter obj);
+ inline isl::ctx ctx() const;
+
+ inline isl::union_set filter() const;
+ inline isl::union_set get_filter() const;
+};
+
+// declarations for isl::schedule_node_guard
+
+class schedule_node_guard : public schedule_node {
+ template <class T>
+ friend boolean schedule_node::isa() const;
+ friend schedule_node_guard schedule_node::as<schedule_node_guard>() const;
+ static const auto type = isl_schedule_node_guard;
+
+protected:
+ inline explicit schedule_node_guard(__isl_take isl_schedule_node *ptr);
+
+public:
+ inline /* implicit */ schedule_node_guard();
+ inline /* implicit */ schedule_node_guard(const schedule_node_guard &obj);
+ inline schedule_node_guard &operator=(schedule_node_guard obj);
+ inline isl::ctx ctx() const;
+
+ inline isl::set guard() const;
+ inline isl::set get_guard() const;
+};
+
+// declarations for isl::schedule_node_leaf
+
+class schedule_node_leaf : public schedule_node {
+ template <class T>
+ friend boolean schedule_node::isa() const;
+ friend schedule_node_leaf schedule_node::as<schedule_node_leaf>() const;
+ static const auto type = isl_schedule_node_leaf;
+
+protected:
+ inline explicit schedule_node_leaf(__isl_take isl_schedule_node *ptr);
+
+public:
+ inline /* implicit */ schedule_node_leaf();
+ inline /* implicit */ schedule_node_leaf(const schedule_node_leaf &obj);
+ inline schedule_node_leaf &operator=(schedule_node_leaf obj);
+ inline isl::ctx ctx() const;
+
+};
+
+// declarations for isl::schedule_node_mark
+
+class schedule_node_mark : public schedule_node {
+ template <class T>
+ friend boolean schedule_node::isa() const;
+ friend schedule_node_mark schedule_node::as<schedule_node_mark>() const;
+ static const auto type = isl_schedule_node_mark;
+
+protected:
+ inline explicit schedule_node_mark(__isl_take isl_schedule_node *ptr);
+
+public:
+ inline /* implicit */ schedule_node_mark();
+ inline /* implicit */ schedule_node_mark(const schedule_node_mark &obj);
+ inline schedule_node_mark &operator=(schedule_node_mark obj);
+ inline isl::ctx ctx() const;
+
+ inline isl::id id() const;
+ inline isl::id get_id() const;
+};
+
+// declarations for isl::schedule_node_sequence
+
+class schedule_node_sequence : public schedule_node {
+ template <class T>
+ friend boolean schedule_node::isa() const;
+ friend schedule_node_sequence schedule_node::as<schedule_node_sequence>() const;
+ static const auto type = isl_schedule_node_sequence;
+
+protected:
+ inline explicit schedule_node_sequence(__isl_take isl_schedule_node *ptr);
+
+public:
+ inline /* implicit */ schedule_node_sequence();
+ inline /* implicit */ schedule_node_sequence(const schedule_node_sequence &obj);
+ inline schedule_node_sequence &operator=(schedule_node_sequence obj);
+ inline isl::ctx ctx() const;
+
+};
+
+// declarations for isl::schedule_node_set
+
+class schedule_node_set : public schedule_node {
+ template <class T>
+ friend boolean schedule_node::isa() const;
+ friend schedule_node_set schedule_node::as<schedule_node_set>() const;
+ static const auto type = isl_schedule_node_set;
+
+protected:
+ inline explicit schedule_node_set(__isl_take isl_schedule_node *ptr);
+
+public:
+ inline /* implicit */ schedule_node_set();
+ inline /* implicit */ schedule_node_set(const schedule_node_set &obj);
+ inline schedule_node_set &operator=(schedule_node_set obj);
+ inline isl::ctx ctx() const;
+
+};
+
+// declarations for isl::set
+inline set manage(__isl_take isl_set *ptr);
+inline set manage_copy(__isl_keep isl_set *ptr);
+
+class set {
+ friend inline set manage(__isl_take isl_set *ptr);
+ friend inline set manage_copy(__isl_keep isl_set *ptr);
+
+protected:
+ isl_set *ptr = nullptr;
+
+ inline explicit set(__isl_take isl_set *ptr);
+
+public:
+ inline /* implicit */ set();
+ inline /* implicit */ set(const set &obj);
+ inline /* implicit */ set(isl::basic_set bset);
+ inline /* implicit */ set(isl::point pnt);
+ inline explicit set(isl::union_set uset);
+ inline explicit set(isl::ctx ctx, const std::string &str);
+ inline set &operator=(set obj);
+ inline ~set();
+ inline __isl_give isl_set *copy() const &;
+ inline __isl_give isl_set *copy() && = delete;
+ inline __isl_keep isl_set *get() const;
+ inline __isl_give isl_set *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::set add_constraint(isl::constraint constraint) const;
+ inline isl::set add_dims(isl::dim type, unsigned int n) const;
+ inline isl::basic_set affine_hull() const;
+ inline isl::set align_params(isl::space model) const;
+ inline isl::set apply(isl::map map) const;
+ inline isl::union_set apply(const isl::union_map &umap) const;
+ inline isl::set apply(const isl::basic_map &map) const;
+ inline isl::pw_multi_aff as_pw_multi_aff() const;
+ inline isl::set as_set() const;
+ inline isl::basic_set_list basic_set_list() const;
+ inline isl::basic_set_list get_basic_set_list() const;
+ inline isl::set bind(isl::multi_id tuple) const;
+ inline isl::set coalesce() const;
+ inline isl::set complement() const;
+ inline isl::union_set compute_divs() const;
+ inline boolean contains(const isl::space &space) const;
+ inline isl::basic_set convex_hull() const;
+ inline isl::set detect_equalities() const;
+ inline class size dim(isl::dim type) const;
+ inline boolean dim_has_any_lower_bound(isl::dim type, unsigned int pos) const;
+ inline isl::id dim_id(isl::dim type, unsigned int pos) const;
+ inline isl::id get_dim_id(isl::dim type, unsigned int pos) const;
+ inline isl::pw_aff dim_max(int pos) const;
+ inline isl::val dim_max_val(int pos) const;
+ inline isl::pw_aff dim_min(int pos) const;
+ inline isl::val dim_min_val(int pos) const;
+ inline std::string dim_name(isl::dim type, unsigned int pos) const;
+ inline std::string get_dim_name(isl::dim type, unsigned int pos) const;
+ inline isl::set drop_constraints_involving_dims(isl::dim type, unsigned int first, unsigned int n) const;
+ inline isl::set eliminate(isl::dim type, unsigned int first, unsigned int n) const;
+ static inline isl::set empty(isl::space space);
+ inline boolean every_set(const std::function<boolean(isl::set)> &test) const;
+ inline isl::set extract_set(const isl::space &space) const;
+ inline int find_dim_by_id(isl::dim type, const isl::id &id) const;
+ inline int find_dim_by_id(isl::dim type, const std::string &id) const;
+ inline isl::set fix_si(isl::dim type, unsigned int pos, int value) const;
+ inline isl::set flatten() const;
+ inline stat foreach_basic_set(const std::function<stat(isl::basic_set)> &fn) const;
+ inline stat foreach_point(const std::function<stat(isl::point)> &fn) const;
+ inline stat foreach_set(const std::function<stat(isl::set)> &fn) const;
+ inline isl::set gist(isl::set context) const;
+ inline isl::union_set gist(const isl::union_set &context) const;
+ inline isl::set gist(const isl::basic_set &context) const;
+ inline isl::set gist(const isl::point &context) const;
+ inline isl::set gist_params(isl::set context) const;
+ inline boolean has_equal_space(const isl::set &set2) const;
+ inline isl::map identity() const;
+ inline isl::union_pw_multi_aff identity_union_pw_multi_aff() const;
+ inline isl::pw_aff indicator_function() const;
+ inline isl::set insert_dims(isl::dim type, unsigned int pos, unsigned int n) const;
+ inline isl::map insert_domain(isl::space domain) const;
+ inline isl::set intersect(isl::set set2) const;
+ inline isl::union_set intersect(const isl::union_set &uset2) const;
+ inline isl::set intersect(const isl::basic_set &set2) const;
+ inline isl::set intersect(const isl::point &set2) const;
+ inline isl::set intersect_params(isl::set params) const;
+ inline boolean involves_dims(isl::dim type, unsigned int first, unsigned int n) const;
+ inline boolean involves_locals() const;
+ inline boolean is_bounded() const;
+ inline boolean is_disjoint(const isl::set &set2) const;
+ inline boolean is_disjoint(const isl::union_set &uset2) const;
+ inline boolean is_disjoint(const isl::basic_set &set2) const;
+ inline boolean is_disjoint(const isl::point &set2) const;
+ inline boolean is_empty() const;
+ inline boolean is_equal(const isl::set &set2) const;
+ inline boolean is_equal(const isl::union_set &uset2) const;
+ inline boolean is_equal(const isl::basic_set &set2) const;
+ inline boolean is_equal(const isl::point &set2) const;
+ inline boolean is_params() const;
+ inline boolean is_singleton() const;
+ inline boolean is_strict_subset(const isl::set &set2) const;
+ inline boolean is_strict_subset(const isl::union_set &uset2) const;
+ inline boolean is_strict_subset(const isl::basic_set &set2) const;
+ inline boolean is_strict_subset(const isl::point &set2) const;
+ inline boolean is_subset(const isl::set &set2) const;
+ inline boolean is_subset(const isl::union_set &uset2) const;
+ inline boolean is_subset(const isl::basic_set &set2) const;
+ inline boolean is_subset(const isl::point &set2) const;
+ inline boolean is_wrapping() const;
+ inline boolean isa_set() const;
+ inline isl::set lexmax() const;
+ inline isl::pw_multi_aff lexmax_pw_multi_aff() const;
+ inline isl::set lexmin() const;
+ inline isl::pw_multi_aff lexmin_pw_multi_aff() const;
+ inline isl::set lower_bound(isl::multi_pw_aff lower) const;
+ inline isl::set lower_bound(isl::multi_val lower) const;
+ inline isl::set lower_bound_si(isl::dim type, unsigned int pos, int value) const;
+ inline isl::set lower_bound_val(isl::dim type, unsigned int pos, isl::val value) const;
+ inline isl::set lower_bound_val(isl::dim type, unsigned int pos, long value) const;
+ inline isl::multi_pw_aff max_multi_pw_aff() const;
+ inline isl::val max_val(const isl::aff &obj) const;
+ inline isl::multi_pw_aff min_multi_pw_aff() const;
+ inline isl::val min_val(const isl::aff &obj) const;
+ inline class size n_basic_set() const;
+ inline isl::set params() const;
+ inline isl::val plain_get_val_if_fixed(isl::dim type, unsigned int pos) const;
+ inline isl::multi_val plain_multi_val_if_fixed() const;
+ inline isl::multi_val get_plain_multi_val_if_fixed() const;
+ inline isl::basic_set polyhedral_hull() const;
+ inline isl::set preimage(isl::multi_aff ma) const;
+ inline isl::set preimage(isl::multi_pw_aff mpa) const;
+ inline isl::set preimage(isl::pw_multi_aff pma) const;
+ inline isl::union_set preimage(const isl::union_pw_multi_aff &upma) const;
+ inline isl::set product(isl::set set2) const;
+ inline isl::set project_out(isl::dim type, unsigned int first, unsigned int n) const;
+ inline isl::set project_out_all_params() const;
+ inline isl::set project_out_param(isl::id id) const;
+ inline isl::set project_out_param(const std::string &id) const;
+ inline isl::set project_out_param(isl::id_list list) const;
+ inline isl::pw_multi_aff pw_multi_aff_on_domain(isl::multi_val mv) const;
+ inline isl::set remove_dims(isl::dim type, unsigned int first, unsigned int n) const;
+ inline isl::set remove_divs() const;
+ inline isl::set remove_redundancies() const;
+ inline isl::set reset_tuple_id() const;
+ inline isl::basic_set sample() const;
+ inline isl::point sample_point() const;
+ inline isl::set set_dim_id(isl::dim type, unsigned int pos, isl::id id) const;
+ inline isl::set set_dim_id(isl::dim type, unsigned int pos, const std::string &id) const;
+ inline isl::set_list set_list() const;
+ inline isl::set set_tuple_id(isl::id id) const;
+ inline isl::set set_tuple_id(const std::string &id) const;
+ inline isl::fixed_box simple_fixed_box_hull() const;
+ inline isl::fixed_box get_simple_fixed_box_hull() const;
+ inline isl::basic_set simple_hull() const;
+ inline isl::space space() const;
+ inline isl::space get_space() const;
+ inline isl::val stride(int pos) const;
+ inline isl::val get_stride(int pos) const;
+ inline isl::set subtract(isl::set set2) const;
+ inline isl::union_set subtract(const isl::union_set &uset2) const;
+ inline isl::set subtract(const isl::basic_set &set2) const;
+ inline isl::set subtract(const isl::point &set2) const;
+ inline isl::set_list to_list() const;
+ inline isl::union_set to_union_set() const;
+ inline isl::map translation() const;
+ inline class size tuple_dim() const;
+ inline isl::id tuple_id() const;
+ inline isl::id get_tuple_id() const;
+ inline std::string tuple_name() const;
+ inline std::string get_tuple_name() const;
+ inline isl::set unbind_params(isl::multi_id tuple) const;
+ inline isl::map unbind_params_insert_domain(isl::multi_id domain) const;
+ inline isl::set unite(isl::set set2) const;
+ inline isl::union_set unite(const isl::union_set &uset2) const;
+ inline isl::set unite(const isl::basic_set &set2) const;
+ inline isl::set unite(const isl::point &set2) const;
+ static inline isl::set universe(isl::space space);
+ inline isl::basic_set unshifted_simple_hull() const;
+ inline isl::map unwrap() const;
+ inline isl::set upper_bound(isl::multi_pw_aff upper) const;
+ inline isl::set upper_bound(isl::multi_val upper) const;
+ inline isl::set upper_bound_val(isl::dim type, unsigned int pos, isl::val value) const;
+ inline isl::set upper_bound_val(isl::dim type, unsigned int pos, long value) const;
+};
+
+// declarations for isl::set_list
+inline set_list manage(__isl_take isl_set_list *ptr);
+inline set_list manage_copy(__isl_keep isl_set_list *ptr);
+
+class set_list {
+ friend inline set_list manage(__isl_take isl_set_list *ptr);
+ friend inline set_list manage_copy(__isl_keep isl_set_list *ptr);
+
+protected:
+ isl_set_list *ptr = nullptr;
+
+ inline explicit set_list(__isl_take isl_set_list *ptr);
+
+public:
+ inline /* implicit */ set_list();
+ inline /* implicit */ set_list(const set_list &obj);
+ inline explicit set_list(isl::ctx ctx, int n);
+ inline explicit set_list(isl::set el);
+ inline explicit set_list(isl::ctx ctx, const std::string &str);
+ inline set_list &operator=(set_list obj);
+ inline ~set_list();
+ inline __isl_give isl_set_list *copy() const &;
+ inline __isl_give isl_set_list *copy() && = delete;
+ inline __isl_keep isl_set_list *get() const;
+ inline __isl_give isl_set_list *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::set_list add(isl::set el) const;
+ inline isl::set at(int index) const;
+ inline isl::set get_at(int index) const;
+ inline isl::set_list clear() const;
+ inline isl::set_list concat(isl::set_list list2) const;
+ inline isl::set_list drop(unsigned int first, unsigned int n) const;
+ inline stat foreach(const std::function<stat(isl::set)> &fn) const;
+ inline isl::set_list insert(unsigned int pos, isl::set el) const;
+ inline class size size() const;
+};
+
+// declarations for isl::space
+inline space manage(__isl_take isl_space *ptr);
+inline space manage_copy(__isl_keep isl_space *ptr);
+
+class space {
+ friend inline space manage(__isl_take isl_space *ptr);
+ friend inline space manage_copy(__isl_keep isl_space *ptr);
+
+protected:
+ isl_space *ptr = nullptr;
+
+ inline explicit space(__isl_take isl_space *ptr);
+
+public:
+ inline /* implicit */ space();
+ inline /* implicit */ space(const space &obj);
+ inline explicit space(isl::ctx ctx, unsigned int nparam, unsigned int n_in, unsigned int n_out);
+ inline explicit space(isl::ctx ctx, unsigned int nparam, unsigned int dim);
+ inline space &operator=(space obj);
+ inline ~space();
+ inline __isl_give isl_space *copy() const &;
+ inline __isl_give isl_space *copy() && = delete;
+ inline __isl_keep isl_space *get() const;
+ inline __isl_give isl_space *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::space add_dims(isl::dim type, unsigned int n) const;
+ inline isl::space add_named_tuple(isl::id tuple_id, unsigned int dim) const;
+ inline isl::space add_named_tuple(const std::string &tuple_id, unsigned int dim) const;
+ inline isl::space add_param(isl::id id) const;
+ inline isl::space add_param(const std::string &id) const;
+ inline isl::space add_unnamed_tuple(unsigned int dim) const;
+ inline isl::space align_params(isl::space space2) const;
+ inline isl::space curry() const;
+ inline class size dim(isl::dim type) const;
+ inline isl::id dim_id(isl::dim type, unsigned int pos) const;
+ inline isl::id get_dim_id(isl::dim type, unsigned int pos) const;
+ inline isl::space domain() const;
+ inline isl::multi_aff domain_map_multi_aff() const;
+ inline isl::pw_multi_aff domain_map_pw_multi_aff() const;
+ inline isl::id domain_tuple_id() const;
+ inline isl::id get_domain_tuple_id() const;
+ inline isl::space drop_dims(isl::dim type, unsigned int first, unsigned int num) const;
+ inline int find_dim_by_id(isl::dim type, const isl::id &id) const;
+ inline int find_dim_by_id(isl::dim type, const std::string &id) const;
+ inline isl::space flatten_domain() const;
+ inline isl::space flatten_range() const;
+ inline boolean has_domain_tuple_id() const;
+ inline boolean has_equal_tuples(const isl::space &space2) const;
+ inline boolean has_range_tuple_id() const;
+ inline boolean has_tuple_id(isl::dim type) const;
+ inline boolean has_tuple_name(isl::dim type) const;
+ inline isl::multi_aff identity_multi_aff_on_domain() const;
+ inline isl::multi_pw_aff identity_multi_pw_aff_on_domain() const;
+ inline isl::pw_multi_aff identity_pw_multi_aff_on_domain() const;
+ inline boolean is_equal(const isl::space &space2) const;
+ inline boolean is_params() const;
+ inline boolean is_set() const;
+ inline boolean is_wrapping() const;
+ inline isl::space map_from_domain_and_range(isl::space range) const;
+ inline isl::space map_from_set() const;
+ inline isl::multi_aff multi_aff(isl::aff_list list) const;
+ inline isl::multi_aff multi_aff_on_domain(isl::multi_val mv) const;
+ inline isl::multi_id multi_id(isl::id_list list) const;
+ inline isl::multi_pw_aff multi_pw_aff(isl::pw_aff_list list) const;
+ inline isl::multi_union_pw_aff multi_union_pw_aff(isl::union_pw_aff_list list) const;
+ inline isl::multi_val multi_val(isl::val_list list) const;
+ inline isl::aff param_aff_on_domain(isl::id id) const;
+ inline isl::aff param_aff_on_domain(const std::string &id) const;
+ inline isl::space params() const;
+ static inline isl::space params_alloc(isl::ctx ctx, unsigned int nparam);
+ inline isl::space product(isl::space right) const;
+ inline isl::space range() const;
+ inline isl::multi_aff range_map_multi_aff() const;
+ inline isl::pw_multi_aff range_map_pw_multi_aff() const;
+ inline isl::space range_reverse() const;
+ inline isl::id range_tuple_id() const;
+ inline isl::id get_range_tuple_id() const;
+ inline isl::space reverse() const;
+ inline isl::space set_dim_id(isl::dim type, unsigned int pos, isl::id id) const;
+ inline isl::space set_dim_id(isl::dim type, unsigned int pos, const std::string &id) const;
+ inline isl::space set_domain_tuple(isl::id id) const;
+ inline isl::space set_domain_tuple(const std::string &id) const;
+ inline isl::space set_from_params() const;
+ inline isl::space set_range_tuple(isl::id id) const;
+ inline isl::space set_range_tuple(const std::string &id) const;
+ inline isl::space set_tuple_id(isl::dim type, isl::id id) const;
+ inline isl::space set_tuple_id(isl::dim type, const std::string &id) const;
+ inline isl::id tuple_id(isl::dim type) const;
+ inline isl::id get_tuple_id(isl::dim type) const;
+ inline std::string tuple_name(isl::dim type) const;
+ inline std::string get_tuple_name(isl::dim type) const;
+ inline isl::space uncurry() const;
+ static inline isl::space unit(isl::ctx ctx);
+ inline isl::map universe_map() const;
+ inline isl::set universe_set() const;
+ inline isl::space unwrap() const;
+ inline isl::space wrap() const;
+ inline isl::aff zero_aff_on_domain() const;
+ inline isl::multi_aff zero_multi_aff() const;
+ inline isl::multi_pw_aff zero_multi_pw_aff() const;
+ inline isl::multi_union_pw_aff zero_multi_union_pw_aff() const;
+ inline isl::multi_val zero_multi_val() const;
+};
+
+// declarations for isl::union_access_info
+inline union_access_info manage(__isl_take isl_union_access_info *ptr);
+inline union_access_info manage_copy(__isl_keep isl_union_access_info *ptr);
+
+class union_access_info {
+ friend inline union_access_info manage(__isl_take isl_union_access_info *ptr);
+ friend inline union_access_info manage_copy(__isl_keep isl_union_access_info *ptr);
+
+protected:
+ isl_union_access_info *ptr = nullptr;
+
+ inline explicit union_access_info(__isl_take isl_union_access_info *ptr);
+
+public:
+ inline /* implicit */ union_access_info();
+ inline /* implicit */ union_access_info(const union_access_info &obj);
+ inline explicit union_access_info(isl::union_map sink);
+ inline union_access_info &operator=(union_access_info obj);
+ inline ~union_access_info();
+ inline __isl_give isl_union_access_info *copy() const &;
+ inline __isl_give isl_union_access_info *copy() && = delete;
+ inline __isl_keep isl_union_access_info *get() const;
+ inline __isl_give isl_union_access_info *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::union_flow compute_flow() const;
+ inline isl::union_access_info set_kill(isl::union_map kill) const;
+ inline isl::union_access_info set_may_source(isl::union_map may_source) const;
+ inline isl::union_access_info set_must_source(isl::union_map must_source) const;
+ inline isl::union_access_info set_schedule(isl::schedule schedule) const;
+ inline isl::union_access_info set_schedule_map(isl::union_map schedule_map) const;
+};
+
+// declarations for isl::union_flow
+inline union_flow manage(__isl_take isl_union_flow *ptr);
+inline union_flow manage_copy(__isl_keep isl_union_flow *ptr);
+
+class union_flow {
+ friend inline union_flow manage(__isl_take isl_union_flow *ptr);
+ friend inline union_flow manage_copy(__isl_keep isl_union_flow *ptr);
+
+protected:
+ isl_union_flow *ptr = nullptr;
+
+ inline explicit union_flow(__isl_take isl_union_flow *ptr);
+
+public:
+ inline /* implicit */ union_flow();
+ inline /* implicit */ union_flow(const union_flow &obj);
+ inline union_flow &operator=(union_flow obj);
+ inline ~union_flow();
+ inline __isl_give isl_union_flow *copy() const &;
+ inline __isl_give isl_union_flow *copy() && = delete;
+ inline __isl_keep isl_union_flow *get() const;
+ inline __isl_give isl_union_flow *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::union_map full_may_dependence() const;
+ inline isl::union_map get_full_may_dependence() const;
+ inline isl::union_map full_must_dependence() const;
+ inline isl::union_map get_full_must_dependence() const;
+ inline isl::union_map may_dependence() const;
+ inline isl::union_map get_may_dependence() const;
+ inline isl::union_map may_no_source() const;
+ inline isl::union_map get_may_no_source() const;
+ inline isl::union_map must_dependence() const;
+ inline isl::union_map get_must_dependence() const;
+ inline isl::union_map must_no_source() const;
+ inline isl::union_map get_must_no_source() const;
+};
+
+// declarations for isl::union_map
+inline union_map manage(__isl_take isl_union_map *ptr);
+inline union_map manage_copy(__isl_keep isl_union_map *ptr);
+
+class union_map {
+ friend inline union_map manage(__isl_take isl_union_map *ptr);
+ friend inline union_map manage_copy(__isl_keep isl_union_map *ptr);
+
+protected:
+ isl_union_map *ptr = nullptr;
+
+ inline explicit union_map(__isl_take isl_union_map *ptr);
+
+public:
+ inline /* implicit */ union_map();
+ inline /* implicit */ union_map(const union_map &obj);
+ inline /* implicit */ union_map(isl::basic_map bmap);
+ inline /* implicit */ union_map(isl::map map);
+ inline explicit union_map(isl::ctx ctx, const std::string &str);
+ inline union_map &operator=(union_map obj);
+ inline ~union_map();
+ inline __isl_give isl_union_map *copy() const &;
+ inline __isl_give isl_union_map *copy() && = delete;
+ inline __isl_keep isl_union_map *get() const;
+ inline __isl_give isl_union_map *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::union_map affine_hull() const;
+ inline isl::union_map apply_domain(isl::union_map umap2) const;
+ inline isl::union_map apply_range(isl::union_map umap2) const;
+ inline isl::map as_map() const;
+ inline isl::multi_union_pw_aff as_multi_union_pw_aff() const;
+ inline isl::union_pw_multi_aff as_union_pw_multi_aff() const;
+ inline isl::union_set bind_range(isl::multi_id tuple) const;
+ inline isl::union_map coalesce() const;
+ inline isl::union_map compute_divs() const;
+ inline isl::union_map curry() const;
+ inline isl::union_set deltas() const;
+ inline isl::union_map detect_equalities() const;
+ inline isl::union_set domain() const;
+ inline isl::union_map domain_factor_domain() const;
+ inline isl::union_map domain_factor_range() const;
+ inline isl::union_map domain_map() const;
+ inline isl::union_pw_multi_aff domain_map_union_pw_multi_aff() const;
+ inline isl::union_map domain_product(isl::union_map umap2) const;
+ static inline isl::union_map empty(isl::ctx ctx);
+ inline isl::union_map eq_at(isl::multi_union_pw_aff mupa) const;
+ inline boolean every_map(const std::function<boolean(isl::map)> &test) const;
+ inline isl::map extract_map(isl::space space) const;
+ inline isl::union_map factor_domain() const;
+ inline isl::union_map factor_range() const;
+ inline isl::union_map fixed_power(isl::val exp) const;
+ inline isl::union_map fixed_power(long exp) const;
+ inline isl::union_map flat_range_product(isl::union_map umap2) const;
+ inline stat foreach_map(const std::function<stat(isl::map)> &fn) const;
+ static inline isl::union_map from(isl::multi_union_pw_aff mupa);
+ static inline isl::union_map from(isl::union_pw_multi_aff upma);
+ static inline isl::union_map from_domain(isl::union_set uset);
+ static inline isl::union_map from_domain_and_range(isl::union_set domain, isl::union_set range);
+ static inline isl::union_map from_range(isl::union_set uset);
+ inline isl::union_map gist(isl::union_map context) const;
+ inline isl::union_map gist_domain(isl::union_set uset) const;
+ inline isl::union_map gist_params(isl::set set) const;
+ inline isl::union_map gist_range(isl::union_set uset) const;
+ inline isl::union_map intersect(isl::union_map umap2) const;
+ inline isl::union_map intersect_domain(isl::space space) const;
+ inline isl::union_map intersect_domain(isl::union_set uset) const;
+ inline isl::union_map intersect_domain_factor_domain(isl::union_map factor) const;
+ inline isl::union_map intersect_domain_factor_range(isl::union_map factor) const;
+ inline isl::union_map intersect_params(isl::set set) const;
+ inline isl::union_map intersect_range(isl::space space) const;
+ inline isl::union_map intersect_range(isl::union_set uset) const;
+ inline isl::union_map intersect_range_factor_domain(isl::union_map factor) const;
+ inline isl::union_map intersect_range_factor_range(isl::union_map factor) const;
+ inline boolean is_bijective() const;
+ inline boolean is_disjoint(const isl::union_map &umap2) const;
+ inline boolean is_empty() const;
+ inline boolean is_equal(const isl::union_map &umap2) const;
+ inline boolean is_injective() const;
+ inline boolean is_single_valued() const;
+ inline boolean is_strict_subset(const isl::union_map &umap2) const;
+ inline boolean is_subset(const isl::union_map &umap2) const;
+ inline boolean isa_map() const;
+ inline isl::union_map lexmax() const;
+ inline isl::union_map lexmin() const;
+ inline isl::map_list map_list() const;
+ inline isl::map_list get_map_list() const;
+ inline isl::set params() const;
+ inline isl::union_map polyhedral_hull() const;
+ inline isl::union_map preimage_domain(isl::multi_aff ma) const;
+ inline isl::union_map preimage_domain(isl::multi_pw_aff mpa) const;
+ inline isl::union_map preimage_domain(isl::pw_multi_aff pma) const;
+ inline isl::union_map preimage_domain(isl::union_pw_multi_aff upma) const;
+ inline isl::union_map preimage_range(isl::multi_aff ma) const;
+ inline isl::union_map preimage_range(isl::pw_multi_aff pma) const;
+ inline isl::union_map preimage_range(isl::union_pw_multi_aff upma) const;
+ inline isl::union_map product(isl::union_map umap2) const;
+ inline isl::union_map project_out_all_params() const;
+ inline isl::union_set range() const;
+ inline isl::union_map range_factor_domain() const;
+ inline isl::union_map range_factor_range() const;
+ inline isl::union_map range_map() const;
+ inline isl::union_map range_product(isl::union_map umap2) const;
+ inline isl::union_map range_reverse() const;
+ inline isl::union_map reverse() const;
+ inline isl::space space() const;
+ inline isl::space get_space() const;
+ inline isl::union_map subtract(isl::union_map umap2) const;
+ inline isl::union_map subtract_domain(isl::union_set dom) const;
+ inline isl::union_map subtract_range(isl::union_set dom) const;
+ inline isl::union_map uncurry() const;
+ inline isl::union_map unite(isl::union_map umap2) const;
+ inline isl::union_map universe() const;
+ inline isl::union_set wrap() const;
+ inline isl::union_map zip() const;
+};
+
+// declarations for isl::union_pw_aff
+inline union_pw_aff manage(__isl_take isl_union_pw_aff *ptr);
+inline union_pw_aff manage_copy(__isl_keep isl_union_pw_aff *ptr);
+
+class union_pw_aff {
+ friend inline union_pw_aff manage(__isl_take isl_union_pw_aff *ptr);
+ friend inline union_pw_aff manage_copy(__isl_keep isl_union_pw_aff *ptr);
+
+protected:
+ isl_union_pw_aff *ptr = nullptr;
+
+ inline explicit union_pw_aff(__isl_take isl_union_pw_aff *ptr);
+
+public:
+ inline /* implicit */ union_pw_aff();
+ inline /* implicit */ union_pw_aff(const union_pw_aff &obj);
+ inline /* implicit */ union_pw_aff(isl::aff aff);
+ inline /* implicit */ union_pw_aff(isl::pw_aff pa);
+ inline explicit union_pw_aff(isl::ctx ctx, const std::string &str);
+ inline explicit union_pw_aff(isl::union_set domain, isl::val v);
+ inline union_pw_aff &operator=(union_pw_aff obj);
+ inline ~union_pw_aff();
+ inline __isl_give isl_union_pw_aff *copy() const &;
+ inline __isl_give isl_union_pw_aff *copy() && = delete;
+ inline __isl_keep isl_union_pw_aff *get() const;
+ inline __isl_give isl_union_pw_aff *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::multi_union_pw_aff add(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::union_pw_aff add(isl::union_pw_aff upa2) const;
+ inline isl::union_pw_multi_aff add(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::union_pw_aff add(const isl::aff &upa2) const;
+ inline isl::union_pw_aff add(const isl::pw_aff &upa2) const;
+ inline isl::union_pw_multi_aff add_pw_multi_aff(const isl::pw_multi_aff &pma) const;
+ inline isl::union_pw_multi_aff apply(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::multi_union_pw_aff as_multi_union_pw_aff() const;
+ inline isl::pw_multi_aff as_pw_multi_aff() const;
+ inline isl::union_map as_union_map() const;
+ inline isl::union_pw_aff at(int pos) const;
+ inline isl::union_set bind(const isl::multi_id &tuple) const;
+ inline isl::union_set bind(isl::id id) const;
+ inline isl::union_set bind(const std::string &id) const;
+ inline isl::union_pw_aff coalesce() const;
+ inline class size dim(isl::dim type) const;
+ inline isl::union_set domain() const;
+ static inline isl::union_pw_aff empty(isl::space space);
+ inline isl::pw_multi_aff extract_pw_multi_aff(const isl::space &space) const;
+ inline isl::multi_union_pw_aff flat_range_product(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::union_pw_multi_aff flat_range_product(const isl::union_pw_multi_aff &upma2) const;
+ inline stat foreach_pw_aff(const std::function<stat(isl::pw_aff)> &fn) const;
+ inline isl::union_pw_aff gist(isl::union_set context) const;
+ inline boolean has_range_tuple_id() const;
+ inline isl::union_pw_aff intersect_domain(isl::space space) const;
+ inline isl::union_pw_aff intersect_domain(isl::union_set uset) const;
+ inline isl::union_pw_aff intersect_domain_wrapped_domain(isl::union_set uset) const;
+ inline isl::union_pw_aff intersect_domain_wrapped_range(isl::union_set uset) const;
+ inline isl::union_pw_aff intersect_params(isl::set set) const;
+ inline boolean involves_locals() const;
+ inline boolean involves_nan() const;
+ inline boolean isa_pw_multi_aff() const;
+ inline isl::union_pw_aff_list list() const;
+ inline isl::multi_union_pw_aff neg() const;
+ inline boolean plain_is_empty() const;
+ inline boolean plain_is_equal(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::union_pw_multi_aff preimage_domain_wrapped_domain(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::union_pw_aff pullback(isl::union_pw_multi_aff upma) const;
+ inline isl::pw_multi_aff_list pw_multi_aff_list() const;
+ inline isl::union_pw_multi_aff range_factor_domain() const;
+ inline isl::union_pw_multi_aff range_factor_range() const;
+ inline isl::multi_union_pw_aff range_product(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::union_pw_multi_aff range_product(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::id range_tuple_id() const;
+ inline isl::multi_union_pw_aff reset_range_tuple_id() const;
+ inline isl::multi_union_pw_aff reset_tuple_id(isl::dim type) const;
+ inline isl::multi_union_pw_aff scale(const isl::multi_val &mv) const;
+ inline isl::multi_union_pw_aff scale(const isl::val &v) const;
+ inline isl::multi_union_pw_aff scale(long v) const;
+ inline isl::multi_union_pw_aff scale_down(const isl::multi_val &mv) const;
+ inline isl::multi_union_pw_aff scale_down(const isl::val &v) const;
+ inline isl::multi_union_pw_aff scale_down(long v) const;
+ inline isl::multi_union_pw_aff set_at(int pos, const isl::union_pw_aff &el) const;
+ inline isl::multi_union_pw_aff set_range_tuple(const isl::id &id) const;
+ inline isl::multi_union_pw_aff set_range_tuple(const std::string &id) const;
+ inline isl::multi_union_pw_aff set_union_pw_aff(int pos, const isl::union_pw_aff &el) const;
+ inline class size size() const;
+ inline isl::space space() const;
+ inline isl::space get_space() const;
+ inline isl::multi_union_pw_aff sub(const isl::multi_union_pw_aff &multi2) const;
+ inline isl::union_pw_aff sub(isl::union_pw_aff upa2) const;
+ inline isl::union_pw_multi_aff sub(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::union_pw_aff sub(const isl::aff &upa2) const;
+ inline isl::union_pw_aff sub(const isl::pw_aff &upa2) const;
+ inline isl::union_pw_aff subtract_domain(isl::space space) const;
+ inline isl::union_pw_aff subtract_domain(isl::union_set uset) const;
+ inline isl::union_pw_aff_list to_list() const;
+ inline isl::multi_union_pw_aff union_add(const isl::multi_union_pw_aff &mupa2) const;
+ inline isl::union_pw_aff union_add(isl::union_pw_aff upa2) const;
+ inline isl::union_pw_multi_aff union_add(const isl::union_pw_multi_aff &upma2) const;
+ inline isl::union_pw_aff union_add(const isl::aff &upa2) const;
+ inline isl::union_pw_aff union_add(const isl::pw_aff &upa2) const;
+};
+
+// declarations for isl::union_pw_aff_list
+inline union_pw_aff_list manage(__isl_take isl_union_pw_aff_list *ptr);
+inline union_pw_aff_list manage_copy(__isl_keep isl_union_pw_aff_list *ptr);
+
+class union_pw_aff_list {
+ friend inline union_pw_aff_list manage(__isl_take isl_union_pw_aff_list *ptr);
+ friend inline union_pw_aff_list manage_copy(__isl_keep isl_union_pw_aff_list *ptr);
+
+protected:
+ isl_union_pw_aff_list *ptr = nullptr;
+
+ inline explicit union_pw_aff_list(__isl_take isl_union_pw_aff_list *ptr);
+
+public:
+ inline /* implicit */ union_pw_aff_list();
+ inline /* implicit */ union_pw_aff_list(const union_pw_aff_list &obj);
+ inline explicit union_pw_aff_list(isl::ctx ctx, int n);
+ inline explicit union_pw_aff_list(isl::union_pw_aff el);
+ inline explicit union_pw_aff_list(isl::ctx ctx, const std::string &str);
+ inline union_pw_aff_list &operator=(union_pw_aff_list obj);
+ inline ~union_pw_aff_list();
+ inline __isl_give isl_union_pw_aff_list *copy() const &;
+ inline __isl_give isl_union_pw_aff_list *copy() && = delete;
+ inline __isl_keep isl_union_pw_aff_list *get() const;
+ inline __isl_give isl_union_pw_aff_list *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::union_pw_aff_list add(isl::union_pw_aff el) const;
+ inline isl::union_pw_aff at(int index) const;
+ inline isl::union_pw_aff get_at(int index) const;
+ inline isl::union_pw_aff_list clear() const;
+ inline isl::union_pw_aff_list concat(isl::union_pw_aff_list list2) const;
+ inline isl::union_pw_aff_list drop(unsigned int first, unsigned int n) const;
+ inline stat foreach(const std::function<stat(isl::union_pw_aff)> &fn) const;
+ inline isl::union_pw_aff_list insert(unsigned int pos, isl::union_pw_aff el) const;
+ inline class size size() const;
+};
+
+// declarations for isl::union_pw_multi_aff
+inline union_pw_multi_aff manage(__isl_take isl_union_pw_multi_aff *ptr);
+inline union_pw_multi_aff manage_copy(__isl_keep isl_union_pw_multi_aff *ptr);
+
+class union_pw_multi_aff {
+ friend inline union_pw_multi_aff manage(__isl_take isl_union_pw_multi_aff *ptr);
+ friend inline union_pw_multi_aff manage_copy(__isl_keep isl_union_pw_multi_aff *ptr);
+
+protected:
+ isl_union_pw_multi_aff *ptr = nullptr;
+
+ inline explicit union_pw_multi_aff(__isl_take isl_union_pw_multi_aff *ptr);
+
+public:
+ inline /* implicit */ union_pw_multi_aff();
+ inline /* implicit */ union_pw_multi_aff(const union_pw_multi_aff &obj);
+ inline explicit union_pw_multi_aff(isl::union_set uset);
+ inline /* implicit */ union_pw_multi_aff(isl::multi_aff ma);
+ inline /* implicit */ union_pw_multi_aff(isl::pw_multi_aff pma);
+ inline explicit union_pw_multi_aff(isl::union_map umap);
+ inline /* implicit */ union_pw_multi_aff(isl::union_pw_aff upa);
+ inline explicit union_pw_multi_aff(isl::ctx ctx, const std::string &str);
+ inline union_pw_multi_aff &operator=(union_pw_multi_aff obj);
+ inline ~union_pw_multi_aff();
+ inline __isl_give isl_union_pw_multi_aff *copy() const &;
+ inline __isl_give isl_union_pw_multi_aff *copy() && = delete;
+ inline __isl_keep isl_union_pw_multi_aff *get() const;
+ inline __isl_give isl_union_pw_multi_aff *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::union_pw_multi_aff add(isl::union_pw_multi_aff upma2) const;
+ inline isl::union_pw_multi_aff add_pw_multi_aff(isl::pw_multi_aff pma) const;
+ inline isl::union_pw_multi_aff apply(isl::union_pw_multi_aff upma2) const;
+ inline isl::multi_union_pw_aff as_multi_union_pw_aff() const;
+ inline isl::pw_multi_aff as_pw_multi_aff() const;
+ inline isl::union_map as_union_map() const;
+ inline isl::union_pw_multi_aff coalesce() const;
+ inline isl::union_set domain() const;
+ static inline isl::union_pw_multi_aff empty(isl::space space);
+ static inline isl::union_pw_multi_aff empty(isl::ctx ctx);
+ inline isl::pw_multi_aff extract_pw_multi_aff(isl::space space) const;
+ inline isl::union_pw_multi_aff flat_range_product(isl::union_pw_multi_aff upma2) const;
+ inline isl::union_pw_multi_aff gist(isl::union_set context) const;
+ inline isl::union_pw_multi_aff intersect_domain(isl::space space) const;
+ inline isl::union_pw_multi_aff intersect_domain(isl::union_set uset) const;
+ inline isl::union_pw_multi_aff intersect_domain_wrapped_domain(isl::union_set uset) const;
+ inline isl::union_pw_multi_aff intersect_domain_wrapped_range(isl::union_set uset) const;
+ inline isl::union_pw_multi_aff intersect_params(isl::set set) const;
+ inline boolean involves_locals() const;
+ inline boolean isa_pw_multi_aff() const;
+ inline boolean plain_is_empty() const;
+ inline isl::union_pw_multi_aff preimage_domain_wrapped_domain(isl::union_pw_multi_aff upma2) const;
+ inline isl::union_pw_multi_aff pullback(isl::union_pw_multi_aff upma2) const;
+ inline isl::pw_multi_aff_list pw_multi_aff_list() const;
+ inline isl::pw_multi_aff_list get_pw_multi_aff_list() const;
+ inline isl::union_pw_multi_aff range_factor_domain() const;
+ inline isl::union_pw_multi_aff range_factor_range() const;
+ inline isl::union_pw_multi_aff range_product(isl::union_pw_multi_aff upma2) const;
+ inline isl::space space() const;
+ inline isl::space get_space() const;
+ inline isl::union_pw_multi_aff sub(isl::union_pw_multi_aff upma2) const;
+ inline isl::union_pw_multi_aff subtract_domain(isl::space space) const;
+ inline isl::union_pw_multi_aff subtract_domain(isl::union_set uset) const;
+ inline isl::union_pw_multi_aff union_add(isl::union_pw_multi_aff upma2) const;
+};
+
+// declarations for isl::union_set
+inline union_set manage(__isl_take isl_union_set *ptr);
+inline union_set manage_copy(__isl_keep isl_union_set *ptr);
+
+class union_set {
+ friend inline union_set manage(__isl_take isl_union_set *ptr);
+ friend inline union_set manage_copy(__isl_keep isl_union_set *ptr);
+
+protected:
+ isl_union_set *ptr = nullptr;
+
+ inline explicit union_set(__isl_take isl_union_set *ptr);
+
+public:
+ inline /* implicit */ union_set();
+ inline /* implicit */ union_set(const union_set &obj);
+ inline /* implicit */ union_set(isl::basic_set bset);
+ inline /* implicit */ union_set(isl::point pnt);
+ inline /* implicit */ union_set(isl::set set);
+ inline explicit union_set(isl::ctx ctx, const std::string &str);
+ inline union_set &operator=(union_set obj);
+ inline ~union_set();
+ inline __isl_give isl_union_set *copy() const &;
+ inline __isl_give isl_union_set *copy() && = delete;
+ inline __isl_keep isl_union_set *get() const;
+ inline __isl_give isl_union_set *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::union_set affine_hull() const;
+ inline isl::union_set apply(isl::union_map umap) const;
+ inline isl::set as_set() const;
+ inline isl::union_set coalesce() const;
+ inline isl::union_set compute_divs() const;
+ inline boolean contains(const isl::space &space) const;
+ inline isl::union_set detect_equalities() const;
+ static inline isl::union_set empty(isl::ctx ctx);
+ inline boolean every_set(const std::function<boolean(isl::set)> &test) const;
+ inline isl::set extract_set(isl::space space) const;
+ inline stat foreach_point(const std::function<stat(isl::point)> &fn) const;
+ inline stat foreach_set(const std::function<stat(isl::set)> &fn) const;
+ inline isl::union_set gist(isl::union_set context) const;
+ inline isl::union_set gist_params(isl::set set) const;
+ inline isl::union_map identity() const;
+ inline isl::union_pw_multi_aff identity_union_pw_multi_aff() const;
+ inline isl::union_set intersect(isl::union_set uset2) const;
+ inline isl::union_set intersect_params(isl::set set) const;
+ inline boolean is_disjoint(const isl::union_set &uset2) const;
+ inline boolean is_empty() const;
+ inline boolean is_equal(const isl::union_set &uset2) const;
+ inline boolean is_strict_subset(const isl::union_set &uset2) const;
+ inline boolean is_subset(const isl::union_set &uset2) const;
+ inline boolean isa_set() const;
+ inline isl::union_set lexmax() const;
+ inline isl::union_set lexmin() const;
+ inline isl::set params() const;
+ inline isl::union_set polyhedral_hull() const;
+ inline isl::union_set preimage(isl::multi_aff ma) const;
+ inline isl::union_set preimage(isl::pw_multi_aff pma) const;
+ inline isl::union_set preimage(isl::union_pw_multi_aff upma) const;
+ inline isl::point sample_point() const;
+ inline isl::set_list set_list() const;
+ inline isl::set_list get_set_list() const;
+ inline isl::space space() const;
+ inline isl::space get_space() const;
+ inline isl::union_set subtract(isl::union_set uset2) const;
+ inline isl::union_set_list to_list() const;
+ inline isl::union_set unite(isl::union_set uset2) const;
+ inline isl::union_set universe() const;
+ inline isl::union_map unwrap() const;
+};
+
+// declarations for isl::union_set_list
+inline union_set_list manage(__isl_take isl_union_set_list *ptr);
+inline union_set_list manage_copy(__isl_keep isl_union_set_list *ptr);
+
+class union_set_list {
+ friend inline union_set_list manage(__isl_take isl_union_set_list *ptr);
+ friend inline union_set_list manage_copy(__isl_keep isl_union_set_list *ptr);
+
+protected:
+ isl_union_set_list *ptr = nullptr;
+
+ inline explicit union_set_list(__isl_take isl_union_set_list *ptr);
+
+public:
+ inline /* implicit */ union_set_list();
+ inline /* implicit */ union_set_list(const union_set_list &obj);
+ inline explicit union_set_list(isl::ctx ctx, int n);
+ inline explicit union_set_list(isl::union_set el);
+ inline explicit union_set_list(isl::ctx ctx, const std::string &str);
+ inline union_set_list &operator=(union_set_list obj);
+ inline ~union_set_list();
+ inline __isl_give isl_union_set_list *copy() const &;
+ inline __isl_give isl_union_set_list *copy() && = delete;
+ inline __isl_keep isl_union_set_list *get() const;
+ inline __isl_give isl_union_set_list *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::union_set_list add(isl::union_set el) const;
+ inline isl::union_set at(int index) const;
+ inline isl::union_set get_at(int index) const;
+ inline isl::union_set_list clear() const;
+ inline isl::union_set_list concat(isl::union_set_list list2) const;
+ inline isl::union_set_list drop(unsigned int first, unsigned int n) const;
+ inline stat foreach(const std::function<stat(isl::union_set)> &fn) const;
+ inline isl::union_set_list insert(unsigned int pos, isl::union_set el) const;
+ inline class size size() const;
+};
+
+// declarations for isl::val
+inline val manage(__isl_take isl_val *ptr);
+inline val manage_copy(__isl_keep isl_val *ptr);
+
+class val {
+ friend inline val manage(__isl_take isl_val *ptr);
+ friend inline val manage_copy(__isl_keep isl_val *ptr);
+
+protected:
+ isl_val *ptr = nullptr;
+
+ inline explicit val(__isl_take isl_val *ptr);
+
+public:
+ inline /* implicit */ val();
+ inline /* implicit */ val(const val &obj);
+ inline explicit val(isl::ctx ctx, long i);
+ inline explicit val(isl::ctx ctx, const std::string &str);
+ inline val &operator=(val obj);
+ inline ~val();
+ inline __isl_give isl_val *copy() const &;
+ inline __isl_give isl_val *copy() && = delete;
+ inline __isl_keep isl_val *get() const;
+ inline __isl_give isl_val *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::val abs() const;
+ inline boolean abs_eq(const isl::val &v2) const;
+ inline boolean abs_eq(long v2) const;
+ inline isl::val add(isl::val v2) const;
+ inline isl::val add(long v2) const;
+ inline isl::val ceil() const;
+ inline int cmp_si(long i) const;
+ inline long den_si() const;
+ inline long get_den_si() const;
+ inline isl::val div(isl::val v2) const;
+ inline isl::val div(long v2) const;
+ inline boolean eq(const isl::val &v2) const;
+ inline boolean eq(long v2) const;
+ inline isl::val floor() const;
+ inline isl::val gcd(isl::val v2) const;
+ inline isl::val gcd(long v2) const;
+ inline boolean ge(const isl::val &v2) const;
+ inline boolean ge(long v2) const;
+ inline boolean gt(const isl::val &v2) const;
+ inline boolean gt(long v2) const;
+ static inline isl::val infty(isl::ctx ctx);
+ static inline isl::val int_from_ui(isl::ctx ctx, unsigned long u);
+ inline isl::val inv() const;
+ inline boolean is_divisible_by(const isl::val &v2) const;
+ inline boolean is_divisible_by(long v2) const;
+ inline boolean is_infty() const;
+ inline boolean is_int() const;
+ inline boolean is_nan() const;
+ inline boolean is_neg() const;
+ inline boolean is_neginfty() const;
+ inline boolean is_negone() const;
+ inline boolean is_nonneg() const;
+ inline boolean is_nonpos() const;
+ inline boolean is_one() const;
+ inline boolean is_pos() const;
+ inline boolean is_rat() const;
+ inline boolean is_zero() const;
+ inline boolean le(const isl::val &v2) const;
+ inline boolean le(long v2) const;
+ inline boolean lt(const isl::val &v2) const;
+ inline boolean lt(long v2) const;
+ inline isl::val max(isl::val v2) const;
+ inline isl::val max(long v2) const;
+ inline isl::val min(isl::val v2) const;
+ inline isl::val min(long v2) const;
+ inline isl::val mod(isl::val v2) const;
+ inline isl::val mod(long v2) const;
+ inline isl::val mul(isl::val v2) const;
+ inline isl::val mul(long v2) const;
+ static inline isl::val nan(isl::ctx ctx);
+ inline boolean ne(const isl::val &v2) const;
+ inline boolean ne(long v2) const;
+ inline isl::val neg() const;
+ static inline isl::val neginfty(isl::ctx ctx);
+ static inline isl::val negone(isl::ctx ctx);
+ inline long num_si() const;
+ inline long get_num_si() const;
+ static inline isl::val one(isl::ctx ctx);
+ inline isl::val pow2() const;
+ inline int sgn() const;
+ inline isl::val sub(isl::val v2) const;
+ inline isl::val sub(long v2) const;
+ inline isl::val sub_ui(unsigned long v2) const;
+ inline isl::val_list to_list() const;
+ inline isl::val trunc() const;
+ static inline isl::val zero(isl::ctx ctx);
+};
+
+// declarations for isl::val_list
+inline val_list manage(__isl_take isl_val_list *ptr);
+inline val_list manage_copy(__isl_keep isl_val_list *ptr);
+
+class val_list {
+ friend inline val_list manage(__isl_take isl_val_list *ptr);
+ friend inline val_list manage_copy(__isl_keep isl_val_list *ptr);
+
+protected:
+ isl_val_list *ptr = nullptr;
+
+ inline explicit val_list(__isl_take isl_val_list *ptr);
+
+public:
+ inline /* implicit */ val_list();
+ inline /* implicit */ val_list(const val_list &obj);
+ inline explicit val_list(isl::ctx ctx, int n);
+ inline explicit val_list(isl::val el);
+ inline explicit val_list(isl::ctx ctx, const std::string &str);
+ inline val_list &operator=(val_list obj);
+ inline ~val_list();
+ inline __isl_give isl_val_list *copy() const &;
+ inline __isl_give isl_val_list *copy() && = delete;
+ inline __isl_keep isl_val_list *get() const;
+ inline __isl_give isl_val_list *release();
+ inline bool is_null() const;
+ inline isl::ctx ctx() const;
+
+ inline isl::val_list add(isl::val el) const;
+ inline isl::val_list add(long el) const;
+ inline isl::val at(int index) const;
+ inline isl::val get_at(int index) const;
+ inline isl::val_list clear() const;
+ inline isl::val_list concat(isl::val_list list2) const;
+ inline isl::val_list drop(unsigned int first, unsigned int n) const;
+ inline stat foreach(const std::function<stat(isl::val)> &fn) const;
+ inline isl::val_list insert(unsigned int pos, isl::val el) const;
+ inline isl::val_list insert(unsigned int pos, long el) const;
+ inline class size size() const;
+};
+
+// implementations for isl::aff
+aff manage(__isl_take isl_aff *ptr) {
+ return aff(ptr);
+}
+aff manage_copy(__isl_keep isl_aff *ptr) {
+ ptr = isl_aff_copy(ptr);
+ return aff(ptr);
+}
+
+aff::aff()
+ : ptr(nullptr) {}
+
+aff::aff(const aff &obj)
+ : ptr(nullptr)
+{
+ ptr = obj.copy();
+}
+
+aff::aff(__isl_take isl_aff *ptr)
+ : ptr(ptr) {}
+
+aff::aff(isl::ctx ctx, const std::string &str)
+{
+ auto res = isl_aff_read_from_str(ctx.release(), str.c_str());
+ ptr = res;
+}
+
+aff::aff(isl::local_space ls, isl::val val)
+{
+ auto res = isl_aff_val_on_domain(ls.release(), val.release());
+ ptr = res;
+}
+
+aff::aff(isl::local_space ls)
+{
+ auto res = isl_aff_zero_on_domain(ls.release());
+ ptr = res;
+}
+
+aff &aff::operator=(aff obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
+}
+
+aff::~aff() {
+ if (ptr)
+ isl_aff_free(ptr);
+}
+
+__isl_give isl_aff *aff::copy() const & {
+ return isl_aff_copy(ptr);
+}
+
+__isl_keep isl_aff *aff::get() const {
+ return ptr;
+}
+
+__isl_give isl_aff *aff::release() {
+ isl_aff *tmp = ptr;
+ ptr = nullptr;
+ return tmp;
+}
+
+bool aff::is_null() const {
+ return ptr == nullptr;
+}
+
+isl::ctx aff::ctx() const {
+ return isl::ctx(isl_aff_get_ctx(ptr));
+}
+
+isl::aff aff::add(isl::aff aff2) const
+{
+ auto res = isl_aff_add(copy(), aff2.release());
+ return manage(res);
+}
+
+isl::multi_aff aff::add(const isl::multi_aff &multi2) const
+{
+ return isl::multi_aff(*this).add(multi2);
+}
+
+isl::multi_pw_aff aff::add(const isl::multi_pw_aff &multi2) const
+{
+ return isl::pw_aff(*this).add(multi2);
+}
+
+isl::multi_union_pw_aff aff::add(const isl::multi_union_pw_aff &multi2) const
+{
+ return isl::pw_aff(*this).add(multi2);
+}
+
+isl::pw_aff aff::add(const isl::pw_aff &pwaff2) const
+{
+ return isl::pw_aff(*this).add(pwaff2);
+}
+
+isl::pw_multi_aff aff::add(const isl::pw_multi_aff &pma2) const
+{
+ return isl::pw_aff(*this).add(pma2);
+}
+
+isl::union_pw_aff aff::add(const isl::union_pw_aff &upa2) const
+{
+ return isl::pw_aff(*this).add(upa2);
+}
+
+isl::union_pw_multi_aff aff::add(const isl::union_pw_multi_aff &upma2) const
+{
+ return isl::pw_aff(*this).add(upma2);
+}
+
+isl::aff aff::add_constant(isl::val v) const
+{
+ auto res = isl_aff_add_constant_val(copy(), v.release());
+ return manage(res);
+}
+
+isl::aff aff::add_constant(long v) const
+{
+ return this->add_constant(isl::val(ctx(), v));
+}
+
+isl::multi_aff aff::add_constant(const isl::multi_val &mv) const
+{
+ return isl::multi_aff(*this).add_constant(mv);
+}
+
+isl::aff aff::add_constant_si(int v) const
+{
+ auto res = isl_aff_add_constant_si(copy(), v);
+ return manage(res);
+}
+
+isl::pw_aff aff::add_dims(isl::dim type, unsigned int n) const
+{
+ return isl::pw_aff(*this).add_dims(type, n);
+}
+
+isl::union_pw_multi_aff aff::add_pw_multi_aff(const isl::pw_multi_aff &pma) const
+{
+ return isl::pw_aff(*this).add_pw_multi_aff(pma);
+}
+
+isl::union_pw_multi_aff aff::apply(const isl::union_pw_multi_aff &upma2) const
+{
+ return isl::pw_aff(*this).apply(upma2);
+}
+
+isl::aff aff::as_aff() const
+{
+ return isl::pw_aff(*this).as_aff();
+}
+
+isl::map aff::as_map() const
+{
+ return isl::pw_aff(*this).as_map();
+}
+
+isl::multi_aff aff::as_multi_aff() const
+{
+ return isl::pw_aff(*this).as_multi_aff();
+}
+
+isl::multi_union_pw_aff aff::as_multi_union_pw_aff() const
+{
+ return isl::pw_aff(*this).as_multi_union_pw_aff();
+}
+
+isl::pw_multi_aff aff::as_pw_multi_aff() const
+{
+ return isl::pw_aff(*this).as_pw_multi_aff();
+}
+
+isl::set aff::as_set() const
+{
+ return isl::multi_aff(*this).as_set();
+}
+
+isl::union_map aff::as_union_map() const
+{
+ return isl::pw_aff(*this).as_union_map();
+}
+
+isl::aff aff::at(int pos) const
+{
+ return isl::multi_aff(*this).at(pos);
+}
+
+isl::basic_set aff::bind(isl::id id) const
+{
+ auto res = isl_aff_bind_id(copy(), id.release());
+ return manage(res);
+}
+
+isl::basic_set aff::bind(const std::string &id) const
+{
+ return this->bind(isl::id(ctx(), id));
+}
+
+isl::basic_set aff::bind(const isl::multi_id &tuple) const
+{
+ return isl::multi_aff(*this).bind(tuple);
+}
+
+isl::pw_aff aff::bind_domain(const isl::multi_id &tuple) const
+{
+ return isl::pw_aff(*this).bind_domain(tuple);
+}
+
+isl::pw_aff aff::bind_domain_wrapped_domain(const isl::multi_id &tuple) const
+{
+ return isl::pw_aff(*this).bind_domain_wrapped_domain(tuple);
+}
+
+isl::aff aff::ceil() const
+{
+ auto res = isl_aff_ceil(copy());
+ return manage(res);
+}
+
+isl::pw_aff aff::coalesce() const
+{
+ return isl::pw_aff(*this).coalesce();
+}
+
+isl::pw_aff aff::cond(const isl::pw_aff &pwaff_true, const isl::pw_aff &pwaff_false) const
+{
+ return isl::pw_aff(*this).cond(pwaff_true, pwaff_false);
+}
+
+isl::multi_val aff::constant_multi_val() const
+{
+ return isl::multi_aff(*this).constant_multi_val();
+}
+
+isl::val aff::constant_val() const
+{
+ auto res = isl_aff_get_constant_val(get());
+ return manage(res);
+}
+
+isl::val aff::get_constant_val() const
+{
+ return constant_val();
+}
+
+isl::val aff::denominator_val() const
+{
+ auto res = isl_aff_get_denominator_val(get());
+ return manage(res);
+}
+
+isl::val aff::get_denominator_val() const
+{
+ return denominator_val();
+}
+
+class size aff::dim(isl::dim type) const
+{
+ return isl::multi_aff(*this).dim(type);
+}
+
+isl::id aff::dim_id(isl::dim type, unsigned int pos) const
+{
+ return isl::pw_aff(*this).dim_id(type, pos);
+}
+
+isl::aff aff::div(isl::aff aff2) const
+{
+ auto res = isl_aff_div(copy(), aff2.release());
+ return manage(res);
+}
+
+isl::pw_aff aff::div(const isl::pw_aff &pa2) const
+{
+ return isl::pw_aff(*this).div(pa2);
+}
+
+isl::set aff::domain() const
+{
+ return isl::pw_aff(*this).domain();
+}
+
+isl::space aff::domain_space() const
+{
+ return isl::pw_aff(*this).domain_space();
+}
+
+isl::pw_multi_aff aff::drop_dims(isl::dim type, unsigned int first, unsigned int n) const
+{
+ return isl::pw_aff(*this).drop_dims(type, first, n);
+}
+
+isl::set aff::eq_set(isl::aff aff2) const
+{
+ auto res = isl_aff_eq_set(copy(), aff2.release());
+ return manage(res);
+}
+
+isl::set aff::eq_set(const isl::pw_aff &pwaff2) const
+{
+ return isl::pw_aff(*this).eq_set(pwaff2);
+}
+
+isl::val aff::eval(isl::point pnt) const
+{
+ auto res = isl_aff_eval(copy(), pnt.release());
+ return manage(res);
+}
+
+isl::pw_multi_aff aff::extract_pw_multi_aff(const isl::space &space) const
+{
+ return isl::pw_aff(*this).extract_pw_multi_aff(space);
+}
+
+isl::multi_aff aff::flat_range_product(const isl::multi_aff &multi2) const
+{
+ return isl::multi_aff(*this).flat_range_product(multi2);
+}
+
+isl::multi_pw_aff aff::flat_range_product(const isl::multi_pw_aff &multi2) const
+{
+ return isl::pw_aff(*this).flat_range_product(multi2);
+}
+
+isl::multi_union_pw_aff aff::flat_range_product(const isl::multi_union_pw_aff &multi2) const
+{
+ return isl::pw_aff(*this).flat_range_product(multi2);
+}
+
+isl::pw_multi_aff aff::flat_range_product(const isl::pw_multi_aff &pma2) const
+{
+ return isl::pw_aff(*this).flat_range_product(pma2);
+}
+
+isl::union_pw_multi_aff aff::flat_range_product(const isl::union_pw_multi_aff &upma2) const
+{
+ return isl::pw_aff(*this).flat_range_product(upma2);
+}
+
+isl::aff aff::floor() const
+{
+ auto res = isl_aff_floor(copy());
+ return manage(res);
+}
+
+stat aff::foreach_piece(const std::function<stat(isl::set, isl::aff)> &fn) const
+{
+ return isl::pw_aff(*this).foreach_piece(fn);
+}
+
+stat aff::foreach_piece(const std::function<stat(isl::set, isl::multi_aff)> &fn) const
+{
+ return isl::pw_aff(*this).foreach_piece(fn);
+}
+
+stat aff::foreach_pw_aff(const std::function<stat(isl::pw_aff)> &fn) const
+{
+ return isl::pw_aff(*this).foreach_pw_aff(fn);
+}
+
+isl::set aff::ge_set(isl::aff aff2) const
+{
+ auto res = isl_aff_ge_set(copy(), aff2.release());
+ return manage(res);
+}
+
+isl::set aff::ge_set(const isl::pw_aff &pwaff2) const
+{
+ return isl::pw_aff(*this).ge_set(pwaff2);
+}
+
+isl::aff aff::gist(isl::set context) const
+{
+ auto res = isl_aff_gist(copy(), context.release());
+ return manage(res);
+}
+
+isl::union_pw_aff aff::gist(const isl::union_set &context) const
+{
+ return isl::pw_aff(*this).gist(context);
+}
+
+isl::aff aff::gist(const isl::basic_set &context) const
+{
+ return this->gist(isl::set(context));
+}
+
+isl::aff aff::gist(const isl::point &context) const
+{
+ return this->gist(isl::set(context));
+}
+
+isl::set aff::gt_set(isl::aff aff2) const
+{
+ auto res = isl_aff_gt_set(copy(), aff2.release());
+ return manage(res);
+}
+
+isl::set aff::gt_set(const isl::pw_aff &pwaff2) const
+{
+ return isl::pw_aff(*this).gt_set(pwaff2);
+}
+
+boolean aff::has_range_tuple_id() const
+{
+ return isl::multi_aff(*this).has_range_tuple_id();
+}
+
+isl::multi_aff aff::identity() const
+{
+ return isl::multi_aff(*this).identity();
+}
+
+isl::pw_aff aff::insert_domain(const isl::space &domain) const
+{
+ return isl::pw_aff(*this).insert_domain(domain);
+}
+
+isl::pw_aff aff::intersect_domain(const isl::set &set) const
+{
+ return isl::pw_aff(*this).intersect_domain(set);
+}
+
+isl::union_pw_aff aff::intersect_domain(const isl::space &space) const
+{
+ return isl::pw_aff(*this).intersect_domain(space);
+}
+
+isl::union_pw_aff aff::intersect_domain(const isl::union_set &uset) const
+{
+ return isl::pw_aff(*this).intersect_domain(uset);
+}
+
+isl::union_pw_aff aff::intersect_domain_wrapped_domain(const isl::union_set &uset) const
+{
+ return isl::pw_aff(*this).intersect_domain_wrapped_domain(uset);
+}
+
+isl::union_pw_aff aff::intersect_domain_wrapped_range(const isl::union_set &uset) const
+{
+ return isl::pw_aff(*this).intersect_domain_wrapped_range(uset);
+}
+
+isl::pw_aff aff::intersect_params(const isl::set &set) const
+{
+ return isl::pw_aff(*this).intersect_params(set);
+}
+
+boolean aff::involves_locals() const
+{
+ return isl::multi_aff(*this).involves_locals();
+}
+
+boolean aff::involves_nan() const
+{
+ return isl::multi_aff(*this).involves_nan();
+}
+
+boolean aff::involves_param(const isl::id &id) const
+{
+ return isl::pw_aff(*this).involves_param(id);
+}
+
+boolean aff::involves_param(const std::string &id) const
+{
+ return this->involves_param(isl::id(ctx(), id));
+}
+
+boolean aff::involves_param(const isl::id_list &list) const
+{
+ return isl::pw_aff(*this).involves_param(list);
+}
+
+boolean aff::is_cst() const
+{
+ auto res = isl_aff_is_cst(get());
+ return manage(res);
+}
+
+boolean aff::is_equal(const isl::pw_aff &pa2) const
+{
+ return isl::pw_aff(*this).is_equal(pa2);
+}
+
+boolean aff::isa_aff() const
+{
+ return isl::pw_aff(*this).isa_aff();
+}
+
+boolean aff::isa_multi_aff() const
+{
+ return isl::pw_aff(*this).isa_multi_aff();
+}
+
+boolean aff::isa_pw_multi_aff() const
+{
+ return isl::pw_aff(*this).isa_pw_multi_aff();
+}
+
+isl::set aff::le_set(isl::aff aff2) const
+{
+ auto res = isl_aff_le_set(copy(), aff2.release());
+ return manage(res);
+}
+
+isl::set aff::le_set(const isl::pw_aff &pwaff2) const
+{
+ return isl::pw_aff(*this).le_set(pwaff2);
+}
+
+isl::aff_list aff::list() const
+{
+ return isl::multi_aff(*this).list();
+}
+
+isl::set aff::lt_set(isl::aff aff2) const
+{
+ auto res = isl_aff_lt_set(copy(), aff2.release());
+ return manage(res);
+}
+
+isl::set aff::lt_set(const isl::pw_aff &pwaff2) const
+{
+ return isl::pw_aff(*this).lt_set(pwaff2);
+}
+
+isl::multi_pw_aff aff::max(const isl::multi_pw_aff &multi2) const
+{
+ return isl::pw_aff(*this).max(multi2);
+}
+
+isl::pw_aff aff::max(const isl::pw_aff &pwaff2) const
+{
+ return isl::pw_aff(*this).max(pwaff2);
+}
+
+isl::multi_val aff::max_multi_val() const
+{
+ return isl::pw_aff(*this).max_multi_val();
+}
+
+isl::multi_pw_aff aff::min(const isl::multi_pw_aff &multi2) const
+{
+ return isl::pw_aff(*this).min(multi2);
+}
+
+isl::pw_aff aff::min(const isl::pw_aff &pwaff2) const
+{
+ return isl::pw_aff(*this).min(pwaff2);
+}
+
+isl::multi_val aff::min_multi_val() const
+{
+ return isl::pw_aff(*this).min_multi_val();
+}
+
+isl::aff aff::mod(isl::val mod) const
+{
+ auto res = isl_aff_mod_val(copy(), mod.release());
+ return manage(res);
+}
+
+isl::aff aff::mod(long mod) const
+{
+ return this->mod(isl::val(ctx(), mod));
+}
+
+isl::aff aff::mul(isl::aff aff2) const
+{
+ auto res = isl_aff_mul(copy(), aff2.release());
+ return manage(res);
+}
+
+isl::pw_aff aff::mul(const isl::pw_aff &pwaff2) const
+{
+ return isl::pw_aff(*this).mul(pwaff2);
+}
+
+class size aff::n_piece() const
+{
+ return isl::pw_aff(*this).n_piece();
+}
+
+isl::set aff::ne_set(isl::aff aff2) const
+{
+ auto res = isl_aff_ne_set(copy(), aff2.release());
+ return manage(res);
+}
+
+isl::set aff::ne_set(const isl::pw_aff &pwaff2) const
+{
+ return isl::pw_aff(*this).ne_set(pwaff2);
+}
+
+isl::aff aff::neg() const
+{
+ auto res = isl_aff_neg(copy());
+ return manage(res);
+}
+
+boolean aff::plain_is_empty() const
+{
+ return isl::pw_aff(*this).plain_is_empty();
+}
+
+boolean aff::plain_is_equal(const isl::multi_aff &multi2) const
+{
+ return isl::multi_aff(*this).plain_is_equal(multi2);
+}
+
+boolean aff::plain_is_equal(const isl::multi_pw_aff &multi2) const
+{
+ return isl::pw_aff(*this).plain_is_equal(multi2);
+}
+
+boolean aff::plain_is_equal(const isl::multi_union_pw_aff &multi2) const
+{
+ return isl::pw_aff(*this).plain_is_equal(multi2);
+}
+
+isl::pw_multi_aff aff::preimage_domain_wrapped_domain(const isl::pw_multi_aff &pma2) const
+{
+ return isl::pw_aff(*this).preimage_domain_wrapped_domain(pma2);
+}
+
+isl::union_pw_multi_aff aff::preimage_domain_wrapped_domain(const isl::union_pw_multi_aff &upma2) const
+{
+ return isl::pw_aff(*this).preimage_domain_wrapped_domain(upma2);
+}
+
+isl::multi_aff aff::product(const isl::multi_aff &multi2) const
+{
+ return isl::multi_aff(*this).product(multi2);
+}
+
+isl::multi_pw_aff aff::product(const isl::multi_pw_aff &multi2) const
+{
+ return isl::pw_aff(*this).product(multi2);
+}
+
+isl::pw_multi_aff aff::product(const isl::pw_multi_aff &pma2) const
+{
+ return isl::pw_aff(*this).product(pma2);
+}
+
+isl::aff aff::pullback(isl::multi_aff ma) const
+{
+ auto res = isl_aff_pullback_multi_aff(copy(), ma.release());
+ return manage(res);
+}
+
+isl::pw_aff aff::pullback(const isl::multi_pw_aff &mpa) const
+{
+ return isl::pw_aff(*this).pullback(mpa);
+}
+
+isl::pw_aff aff::pullback(const isl::pw_multi_aff &pma) const
+{
+ return isl::pw_aff(*this).pullback(pma);
+}
+
+isl::union_pw_aff aff::pullback(const isl::union_pw_multi_aff &upma) const
+{
+ return isl::pw_aff(*this).pullback(upma);
+}
+
+isl::aff aff::pullback(const isl::aff &ma) const
+{
+ return this->pullback(isl::multi_aff(ma));
+}
+
+isl::pw_multi_aff_list aff::pw_multi_aff_list() const
+{
+ return isl::pw_aff(*this).pw_multi_aff_list();
+}
+
+isl::pw_multi_aff aff::range_factor_domain() const
+{
+ return isl::pw_aff(*this).range_factor_domain();
+}
+
+isl::pw_multi_aff aff::range_factor_range() const
+{
+ return isl::pw_aff(*this).range_factor_range();
+}
+
+isl::multi_aff aff::range_product(const isl::multi_aff &multi2) const
+{
+ return isl::multi_aff(*this).range_product(multi2);
+}
+
+isl::multi_pw_aff aff::range_product(const isl::multi_pw_aff &multi2) const
+{
+ return isl::pw_aff(*this).range_product(multi2);
+}
+
+isl::multi_union_pw_aff aff::range_product(const isl::multi_union_pw_aff &multi2) const
+{
+ return isl::pw_aff(*this).range_product(multi2);
+}
+
+isl::pw_multi_aff aff::range_product(const isl::pw_multi_aff &pma2) const
+{
+ return isl::pw_aff(*this).range_product(pma2);
+}
+
+isl::union_pw_multi_aff aff::range_product(const isl::union_pw_multi_aff &upma2) const
+{
+ return isl::pw_aff(*this).range_product(upma2);
+}
+
+isl::id aff::range_tuple_id() const
+{
+ return isl::multi_aff(*this).range_tuple_id();
+}
+
+isl::multi_aff aff::reset_range_tuple_id() const
+{
+ return isl::multi_aff(*this).reset_range_tuple_id();
+}
+
+isl::multi_aff aff::reset_tuple_id(isl::dim type) const
+{
+ return isl::multi_aff(*this).reset_tuple_id(type);
+}
+
+isl::aff aff::scale(isl::val v) const
+{
+ auto res = isl_aff_scale_val(copy(), v.release());
+ return manage(res);
+}
+
+isl::aff aff::scale(long v) const
+{
+ return this->scale(isl::val(ctx(), v));
+}
+
+isl::multi_aff aff::scale(const isl::multi_val &mv) const
+{
+ return isl::multi_aff(*this).scale(mv);
+}
+
+isl::aff aff::scale_down(isl::val v) const
+{
+ auto res = isl_aff_scale_down_val(copy(), v.release());
+ return manage(res);
+}
+
+isl::aff aff::scale_down(long v) const
+{
+ return this->scale_down(isl::val(ctx(), v));
+}
+
+isl::multi_aff aff::scale_down(const isl::multi_val &mv) const
+{
+ return isl::multi_aff(*this).scale_down(mv);
+}
+
+isl::multi_aff aff::set_aff(int pos, const isl::aff &el) const
+{
+ return isl::multi_aff(*this).set_aff(pos, el);
+}
+
+isl::multi_aff aff::set_at(int pos, const isl::aff &el) const
+{
+ return isl::multi_aff(*this).set_at(pos, el);
+}
+
+isl::multi_pw_aff aff::set_at(int pos, const isl::pw_aff &el) const
+{
+ return isl::pw_aff(*this).set_at(pos, el);
+}
+
+isl::multi_union_pw_aff aff::set_at(int pos, const isl::union_pw_aff &el) const
+{
+ return isl::pw_aff(*this).set_at(pos, el);
+}
+
+isl::aff aff::set_constant_si(int v) const
+{
+ auto res = isl_aff_set_constant_si(copy(), v);
+ return manage(res);
+}
+
+isl::multi_pw_aff aff::set_pw_aff(int pos, const isl::pw_aff &el) const
+{
+ return isl::pw_aff(*this).set_pw_aff(pos, el);
+}
+
+isl::pw_multi_aff aff::set_pw_aff(unsigned int pos, const isl::pw_aff &pa) const
+{
+ return isl::pw_aff(*this).set_pw_aff(pos, pa);
+}
+
+isl::multi_aff aff::set_range_tuple(const isl::id &id) const
+{
+ return isl::multi_aff(*this).set_range_tuple(id);
+}
+
+isl::multi_aff aff::set_range_tuple(const std::string &id) const
+{
+ return this->set_range_tuple(isl::id(ctx(), id));
+}
+
+isl::pw_aff aff::set_tuple_id(isl::dim type, const isl::id &id) const
+{
+ return isl::pw_aff(*this).set_tuple_id(type, id);
+}
+
+isl::pw_aff aff::set_tuple_id(isl::dim type, const std::string &id) const
+{
+ return this->set_tuple_id(type, isl::id(ctx(), id));
+}
+
+isl::multi_union_pw_aff aff::set_union_pw_aff(int pos, const isl::union_pw_aff &el) const
+{
+ return isl::pw_aff(*this).set_union_pw_aff(pos, el);
+}
+
+class size aff::size() const
+{
+ return isl::multi_aff(*this).size();
+}
+
+isl::space aff::space() const
+{
+ return isl::pw_aff(*this).space();
+}
+
+isl::aff aff::sub(isl::aff aff2) const
+{
+ auto res = isl_aff_sub(copy(), aff2.release());
+ return manage(res);
+}
+
+isl::multi_aff aff::sub(const isl::multi_aff &multi2) const
+{
+ return isl::multi_aff(*this).sub(multi2);
+}
+
+isl::multi_pw_aff aff::sub(const isl::multi_pw_aff &multi2) const
+{
+ return isl::pw_aff(*this).sub(multi2);
+}
+
+isl::multi_union_pw_aff aff::sub(const isl::multi_union_pw_aff &multi2) const
+{
+ return isl::pw_aff(*this).sub(multi2);
+}
+
+isl::pw_aff aff::sub(const isl::pw_aff &pwaff2) const
+{
+ return isl::pw_aff(*this).sub(pwaff2);
+}
+
+isl::pw_multi_aff aff::sub(const isl::pw_multi_aff &pma2) const
+{
+ return isl::pw_aff(*this).sub(pma2);
+}
+
+isl::union_pw_aff aff::sub(const isl::union_pw_aff &upa2) const
+{
+ return isl::pw_aff(*this).sub(upa2);
+}
+
+isl::union_pw_multi_aff aff::sub(const isl::union_pw_multi_aff &upma2) const
+{
+ return isl::pw_aff(*this).sub(upma2);
+}
+
+isl::pw_aff aff::subtract_domain(const isl::set &set) const
+{
+ return isl::pw_aff(*this).subtract_domain(set);
+}
+
+isl::union_pw_aff aff::subtract_domain(const isl::space &space) const
+{
+ return isl::pw_aff(*this).subtract_domain(space);
+}
+
+isl::union_pw_aff aff::subtract_domain(const isl::union_set &uset) const
+{
+ return isl::pw_aff(*this).subtract_domain(uset);
+}
+
+isl::pw_aff aff::tdiv_q(const isl::pw_aff &pa2) const
+{
+ return isl::pw_aff(*this).tdiv_q(pa2);
+}
+
+isl::pw_aff aff::tdiv_r(const isl::pw_aff &pa2) const
+{
+ return isl::pw_aff(*this).tdiv_r(pa2);
+}
+
+isl::aff_list aff::to_list() const
+{
+ auto res = isl_aff_to_list(copy());
+ return manage(res);
+}
+
+isl::multi_pw_aff aff::to_multi_pw_aff() const
+{
+ return isl::multi_aff(*this).to_multi_pw_aff();
+}
+
+isl::multi_union_pw_aff aff::to_multi_union_pw_aff() const
+{
+ return isl::multi_aff(*this).to_multi_union_pw_aff();
+}
+
+isl::pw_multi_aff aff::to_pw_multi_aff() const
+{
+ return isl::multi_aff(*this).to_pw_multi_aff();
+}
+
+isl::union_pw_aff aff::to_union_pw_aff() const
+{
+ return isl::pw_aff(*this).to_union_pw_aff();
+}
+
+isl::union_pw_multi_aff aff::to_union_pw_multi_aff() const
+{
+ return isl::pw_aff(*this).to_union_pw_multi_aff();
+}
+
+isl::id aff::tuple_id(isl::dim type) const
+{
+ return isl::pw_aff(*this).tuple_id(type);
+}
+
+isl::aff aff::unbind_params_insert_domain(isl::multi_id domain) const
+{
+ auto res = isl_aff_unbind_params_insert_domain(copy(), domain.release());
+ return manage(res);
+}
+
+isl::multi_pw_aff aff::union_add(const isl::multi_pw_aff &mpa2) const
+{
+ return isl::pw_aff(*this).union_add(mpa2);
+}
+
+isl::multi_union_pw_aff aff::union_add(const isl::multi_union_pw_aff &mupa2) const
+{
+ return isl::pw_aff(*this).union_add(mupa2);
+}
+
+isl::pw_aff aff::union_add(const isl::pw_aff &pwaff2) const
+{
+ return isl::pw_aff(*this).union_add(pwaff2);
+}
+
+isl::pw_multi_aff aff::union_add(const isl::pw_multi_aff &pma2) const
+{
+ return isl::pw_aff(*this).union_add(pma2);
+}
+
+isl::union_pw_aff aff::union_add(const isl::union_pw_aff &upa2) const
+{
+ return isl::pw_aff(*this).union_add(upa2);
+}
+
+isl::union_pw_multi_aff aff::union_add(const isl::union_pw_multi_aff &upma2) const
+{
+ return isl::pw_aff(*this).union_add(upma2);
+}
+
+isl::aff aff::var_on_domain(isl::local_space ls, isl::dim type, unsigned int pos)
+{
+ auto res = isl_aff_var_on_domain(ls.release(), static_cast<enum isl_dim_type>(type), pos);
+ return manage(res);
+}
+
+isl::aff aff::zero_on_domain(isl::space space)
+{
+ auto res = isl_aff_zero_on_domain_space(space.release());
+ return manage(res);
+}
+
+inline std::ostream &operator<<(std::ostream &os, const aff &obj)
+{
+ char *str = isl_aff_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
+}
+
+// implementations for isl::aff_list
+aff_list manage(__isl_take isl_aff_list *ptr) {
+ return aff_list(ptr);
+}
+aff_list manage_copy(__isl_keep isl_aff_list *ptr) {
+ ptr = isl_aff_list_copy(ptr);
+ return aff_list(ptr);
+}
+
+aff_list::aff_list()
+ : ptr(nullptr) {}
+
+aff_list::aff_list(const aff_list &obj)
+ : ptr(nullptr)
+{
+ ptr = obj.copy();
+}
+
+aff_list::aff_list(__isl_take isl_aff_list *ptr)
+ : ptr(ptr) {}
+
+aff_list::aff_list(isl::ctx ctx, int n)
+{
+ auto res = isl_aff_list_alloc(ctx.release(), n);
+ ptr = res;
+}
+
+aff_list::aff_list(isl::aff el)
+{
+ auto res = isl_aff_list_from_aff(el.release());
+ ptr = res;
+}
+
+aff_list::aff_list(isl::ctx ctx, const std::string &str)
+{
+ auto res = isl_aff_list_read_from_str(ctx.release(), str.c_str());
+ ptr = res;
+}
+
+aff_list &aff_list::operator=(aff_list obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
+}
+
+aff_list::~aff_list() {
+ if (ptr)
+ isl_aff_list_free(ptr);
+}
+
+__isl_give isl_aff_list *aff_list::copy() const & {
+ return isl_aff_list_copy(ptr);
+}
+
+__isl_keep isl_aff_list *aff_list::get() const {
+ return ptr;
+}
+
+__isl_give isl_aff_list *aff_list::release() {
+ isl_aff_list *tmp = ptr;
+ ptr = nullptr;
+ return tmp;
+}
+
+bool aff_list::is_null() const {
+ return ptr == nullptr;
+}
+
+isl::ctx aff_list::ctx() const {
+ return isl::ctx(isl_aff_list_get_ctx(ptr));
+}
+
+isl::aff_list aff_list::add(isl::aff el) const
+{
+ auto res = isl_aff_list_add(copy(), el.release());
+ return manage(res);
+}
+
+isl::aff aff_list::at(int index) const
+{
+ auto res = isl_aff_list_get_at(get(), index);
+ return manage(res);
+}
+
+isl::aff aff_list::get_at(int index) const
+{
+ return at(index);
+}
+
+isl::aff_list aff_list::clear() const
+{
+ auto res = isl_aff_list_clear(copy());
+ return manage(res);
+}
+
+isl::aff_list aff_list::concat(isl::aff_list list2) const
+{
+ auto res = isl_aff_list_concat(copy(), list2.release());
+ return manage(res);
+}
+
+isl::aff_list aff_list::drop(unsigned int first, unsigned int n) const
+{
+ auto res = isl_aff_list_drop(copy(), first, n);
+ return manage(res);
+}
+
+stat aff_list::foreach(const std::function<stat(isl::aff)> &fn) const
+{
+ struct fn_data {
+ std::function<stat(isl::aff)> func;
+ } fn_data = { fn };
+ auto fn_lambda = [](isl_aff *arg_0, void *arg_1) -> isl_stat {
+ auto *data = static_cast<struct fn_data *>(arg_1);
+ auto ret = (data->func)(manage(arg_0));
+ return ret.release();
+ };
+ auto res = isl_aff_list_foreach(get(), fn_lambda, &fn_data);
+ return manage(res);
+}
-class term {
- friend inline term manage(__isl_take isl_term *ptr);
- friend inline term manage_copy(__isl_keep isl_term *ptr);
+isl::aff_list aff_list::insert(unsigned int pos, isl::aff el) const
+{
+ auto res = isl_aff_list_insert(copy(), pos, el.release());
+ return manage(res);
+}
- isl_term *ptr = nullptr;
+class size aff_list::size() const
+{
+ auto res = isl_aff_list_size(get());
+ return manage(res);
+}
- inline explicit term(__isl_take isl_term *ptr);
+inline std::ostream &operator<<(std::ostream &os, const aff_list &obj)
+{
+ char *str = isl_aff_list_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
+}
-public:
- inline /* implicit */ term();
- inline /* implicit */ term(const term &obj);
- inline term &operator=(term obj);
- inline ~term();
- inline __isl_give isl_term *copy() const &;
- inline __isl_give isl_term *copy() && = delete;
- inline __isl_keep isl_term *get() const;
- inline __isl_give isl_term *release();
- inline bool is_null() const;
- inline isl::ctx ctx() const;
+// implementations for isl::ast_build
+ast_build manage(__isl_take isl_ast_build *ptr) {
+ return ast_build(ptr);
+}
+ast_build manage_copy(__isl_keep isl_ast_build *ptr) {
+ ptr = isl_ast_build_copy(ptr);
+ return ast_build(ptr);
+}
- inline isl_size dim(isl::dim type) const;
- inline isl::val get_coefficient_val() const;
- inline isl::aff get_div(unsigned int pos) const;
- inline isl_size get_exp(isl::dim type, unsigned int pos) const;
-};
+ast_build::ast_build()
+ : ptr(nullptr) {}
-// declarations for isl::union_access_info
-inline union_access_info manage(__isl_take isl_union_access_info *ptr);
-inline union_access_info manage_copy(__isl_keep isl_union_access_info *ptr);
+ast_build::ast_build(const ast_build &obj)
+ : ptr(nullptr)
+{
+ ptr = obj.copy();
+ copy_callbacks(obj);
+}
-class union_access_info {
- friend inline union_access_info manage(__isl_take isl_union_access_info *ptr);
- friend inline union_access_info manage_copy(__isl_keep isl_union_access_info *ptr);
+ast_build::ast_build(__isl_take isl_ast_build *ptr)
+ : ptr(ptr) {}
- isl_union_access_info *ptr = nullptr;
+ast_build::ast_build(isl::ctx ctx)
+{
+ auto res = isl_ast_build_alloc(ctx.release());
+ ptr = res;
+}
- inline explicit union_access_info(__isl_take isl_union_access_info *ptr);
+ast_build &ast_build::operator=(ast_build obj) {
+ std::swap(this->ptr, obj.ptr);
+ copy_callbacks(obj);
+ return *this;
+}
-public:
- inline /* implicit */ union_access_info();
- inline /* implicit */ union_access_info(const union_access_info &obj);
- inline explicit union_access_info(isl::union_map sink);
- inline union_access_info &operator=(union_access_info obj);
- inline ~union_access_info();
- inline __isl_give isl_union_access_info *copy() const &;
- inline __isl_give isl_union_access_info *copy() && = delete;
- inline __isl_keep isl_union_access_info *get() const;
- inline __isl_give isl_union_access_info *release();
- inline bool is_null() const;
- inline isl::ctx ctx() const;
+ast_build::~ast_build() {
+ if (ptr)
+ isl_ast_build_free(ptr);
+}
- inline isl::union_flow compute_flow() const;
- inline isl::union_access_info set_kill(isl::union_map kill) const;
- inline isl::union_access_info set_may_source(isl::union_map may_source) const;
- inline isl::union_access_info set_must_source(isl::union_map must_source) const;
- inline isl::union_access_info set_schedule(isl::schedule schedule) const;
- inline isl::union_access_info set_schedule_map(isl::union_map schedule_map) const;
-};
+__isl_give isl_ast_build *ast_build::copy() const & {
+ return isl_ast_build_copy(ptr);
+}
-// declarations for isl::union_flow
-inline union_flow manage(__isl_take isl_union_flow *ptr);
-inline union_flow manage_copy(__isl_keep isl_union_flow *ptr);
+__isl_keep isl_ast_build *ast_build::get() const {
+ return ptr;
+}
-class union_flow {
- friend inline union_flow manage(__isl_take isl_union_flow *ptr);
- friend inline union_flow manage_copy(__isl_keep isl_union_flow *ptr);
+__isl_give isl_ast_build *ast_build::release() {
+ if (at_each_domain_data)
+ isl_die(ctx().get(), isl_error_invalid, "cannot release object with persistent callbacks", return nullptr);
+ isl_ast_build *tmp = ptr;
+ ptr = nullptr;
+ return tmp;
+}
- isl_union_flow *ptr = nullptr;
+bool ast_build::is_null() const {
+ return ptr == nullptr;
+}
- inline explicit union_flow(__isl_take isl_union_flow *ptr);
+isl::ctx ast_build::ctx() const {
+ return isl::ctx(isl_ast_build_get_ctx(ptr));
+}
-public:
- inline /* implicit */ union_flow();
- inline /* implicit */ union_flow(const union_flow &obj);
- inline union_flow &operator=(union_flow obj);
- inline ~union_flow();
- inline __isl_give isl_union_flow *copy() const &;
- inline __isl_give isl_union_flow *copy() && = delete;
- inline __isl_keep isl_union_flow *get() const;
- inline __isl_give isl_union_flow *release();
- inline bool is_null() const;
- inline isl::ctx ctx() const;
+ast_build &ast_build::copy_callbacks(const ast_build &obj)
+{
+ at_each_domain_data = obj.at_each_domain_data;
+ return *this;
+}
- inline isl::union_map get_full_may_dependence() const;
- inline isl::union_map get_full_must_dependence() const;
- inline isl::union_map get_may_dependence() const;
- inline isl::union_map get_may_no_source() const;
- inline isl::union_map get_must_dependence() const;
- inline isl::union_map get_must_no_source() const;
-};
+isl_ast_node *ast_build::at_each_domain(isl_ast_node *arg_0, isl_ast_build *arg_1, void *arg_2)
+{
+ auto *data = static_cast<struct at_each_domain_data *>(arg_2);
+ auto ret = (data->func)(manage(arg_0), manage_copy(arg_1));
+ return ret.release();
+}
-// declarations for isl::union_map
-inline union_map manage(__isl_take isl_union_map *ptr);
-inline union_map manage_copy(__isl_keep isl_union_map *ptr);
+void ast_build::set_at_each_domain_data(const std::function<isl::ast_node(isl::ast_node, isl::ast_build)> &fn)
+{
+ at_each_domain_data = std::make_shared<struct at_each_domain_data>();
+ at_each_domain_data->func = fn;
+ ptr = isl_ast_build_set_at_each_domain(ptr, &at_each_domain, at_each_domain_data.get());
+}
-class union_map {
- friend inline union_map manage(__isl_take isl_union_map *ptr);
- friend inline union_map manage_copy(__isl_keep isl_union_map *ptr);
+isl::ast_build ast_build::set_at_each_domain(const std::function<isl::ast_node(isl::ast_node, isl::ast_build)> &fn) const
+{
+ auto copy = *this;
+ copy.set_at_each_domain_data(fn);
+ return copy;
+}
- isl_union_map *ptr = nullptr;
+isl::ast_expr ast_build::access_from(isl::multi_pw_aff mpa) const
+{
+ auto res = isl_ast_build_access_from_multi_pw_aff(get(), mpa.release());
+ return manage(res);
+}
- inline explicit union_map(__isl_take isl_union_map *ptr);
+isl::ast_expr ast_build::access_from(isl::pw_multi_aff pma) const
+{
+ auto res = isl_ast_build_access_from_pw_multi_aff(get(), pma.release());
+ return manage(res);
+}
-public:
- inline /* implicit */ union_map();
- inline /* implicit */ union_map(const union_map &obj);
- inline /* implicit */ union_map(isl::basic_map bmap);
- inline /* implicit */ union_map(isl::map map);
- inline explicit union_map(isl::union_pw_multi_aff upma);
- inline explicit union_map(isl::ctx ctx, const std::string &str);
- inline union_map &operator=(union_map obj);
- inline ~union_map();
- inline __isl_give isl_union_map *copy() const &;
- inline __isl_give isl_union_map *copy() && = delete;
- inline __isl_keep isl_union_map *get() const;
- inline __isl_give isl_union_map *release();
- inline bool is_null() const;
- inline isl::ctx ctx() const;
- inline void dump() const;
+isl::ast_expr ast_build::call_from(isl::multi_pw_aff mpa) const
+{
+ auto res = isl_ast_build_call_from_multi_pw_aff(get(), mpa.release());
+ return manage(res);
+}
- inline isl::union_map affine_hull() const;
- inline isl::union_map align_params(isl::space model) const;
- inline isl::union_map apply_domain(isl::union_map umap2) const;
- inline isl::union_map apply_range(isl::union_map umap2) const;
- inline isl::union_set bind_range(isl::multi_id tuple) const;
- inline isl::union_map coalesce() const;
- inline boolean contains(const isl::space &space) const;
- inline isl::union_map curry() const;
- inline isl::union_set deltas() const;
- inline isl::union_map deltas_map() const;
- inline isl::union_map detect_equalities() const;
- inline isl_size dim(isl::dim type) const;
- inline isl::union_set domain() const;
- inline isl::union_map domain_factor_domain() const;
- inline isl::union_map domain_factor_range() const;
- inline isl::union_map domain_map() const;
- inline isl::union_pw_multi_aff domain_map_union_pw_multi_aff() const;
- inline isl::union_map domain_product(isl::union_map umap2) const;
- static inline isl::union_map empty(isl::ctx ctx);
- inline isl::union_map eq_at(isl::multi_union_pw_aff mupa) const;
- inline isl::map extract_map(isl::space space) const;
- inline isl::union_map factor_domain() const;
- inline isl::union_map factor_range() const;
- inline int find_dim_by_name(isl::dim type, const std::string &name) const;
- inline isl::union_map fixed_power(isl::val exp) const;
- inline isl::union_map flat_domain_product(isl::union_map umap2) const;
- inline isl::union_map flat_range_product(isl::union_map umap2) const;
- inline stat foreach_map(const std::function<stat(map)> &fn) const;
- static inline isl::union_map from(isl::multi_union_pw_aff mupa);
- static inline isl::union_map from_domain(isl::union_set uset);
- static inline isl::union_map from_domain_and_range(isl::union_set domain, isl::union_set range);
- static inline isl::union_map from_range(isl::union_set uset);
- static inline isl::union_map from_union_pw_aff(isl::union_pw_aff upa);
- inline isl::id get_dim_id(isl::dim type, unsigned int pos) const;
- inline uint32_t get_hash() const;
- inline isl::map_list get_map_list() const;
- inline isl::space get_space() const;
- inline isl::union_map gist(isl::union_map context) const;
- inline isl::union_map gist_domain(isl::union_set uset) const;
- inline isl::union_map gist_params(isl::set set) const;
- inline isl::union_map gist_range(isl::union_set uset) const;
- inline isl::union_map intersect(isl::union_map umap2) const;
- inline isl::union_map intersect_domain(isl::space space) const;
- inline isl::union_map intersect_domain(isl::union_set uset) const;
- inline isl::union_map intersect_domain_factor_domain(isl::union_map factor) const;
- inline isl::union_map intersect_domain_factor_range(isl::union_map factor) const;
- inline isl::union_map intersect_params(isl::set set) const;
- inline isl::union_map intersect_range(isl::space space) const;
- inline isl::union_map intersect_range(isl::union_set uset) const;
- inline isl::union_map intersect_range_factor_domain(isl::union_map factor) const;
- inline isl::union_map intersect_range_factor_range(isl::union_map factor) const;
- inline boolean involves_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline boolean is_bijective() const;
- inline boolean is_disjoint(const isl::union_map &umap2) const;
- inline boolean is_empty() const;
- inline boolean is_equal(const isl::union_map &umap2) const;
- inline boolean is_identity() const;
- inline boolean is_injective() const;
- inline boolean is_single_valued() const;
- inline boolean is_strict_subset(const isl::union_map &umap2) const;
- inline boolean is_subset(const isl::union_map &umap2) const;
- inline boolean isa_map() const;
- inline isl::union_map lex_ge_at_multi_union_pw_aff(isl::multi_union_pw_aff mupa) const;
- inline isl::union_map lex_ge_union_map(isl::union_map umap2) const;
- inline isl::union_map lex_gt_at_multi_union_pw_aff(isl::multi_union_pw_aff mupa) const;
- inline isl::union_map lex_gt_union_map(isl::union_map umap2) const;
- inline isl::union_map lex_le_at_multi_union_pw_aff(isl::multi_union_pw_aff mupa) const;
- inline isl::union_map lex_le_union_map(isl::union_map umap2) const;
- inline isl::union_map lex_lt_at_multi_union_pw_aff(isl::multi_union_pw_aff mupa) const;
- inline isl::union_map lex_lt_union_map(isl::union_map umap2) const;
- inline isl::union_map lexmax() const;
- inline isl::union_map lexmin() const;
- inline isl_size n_map() const;
- inline isl::set params() const;
- inline boolean plain_is_empty() const;
- inline boolean plain_is_injective() const;
- inline isl::union_map polyhedral_hull() const;
- inline isl::union_map preimage_domain(isl::multi_aff ma) const;
- inline isl::union_map preimage_domain(isl::multi_pw_aff mpa) const;
- inline isl::union_map preimage_domain(isl::pw_multi_aff pma) const;
- inline isl::union_map preimage_domain(isl::union_pw_multi_aff upma) const;
- inline isl::union_map preimage_range(isl::multi_aff ma) const;
- inline isl::union_map preimage_range(isl::pw_multi_aff pma) const;
- inline isl::union_map preimage_range(isl::union_pw_multi_aff upma) const;
- inline isl::union_map product(isl::union_map umap2) const;
- inline isl::union_map project_out(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::union_map project_out_all_params() const;
- inline isl::union_set range() const;
- inline isl::union_map range_curry() const;
- inline isl::union_map range_factor_domain() const;
- inline isl::union_map range_factor_range() const;
- inline isl::union_map range_map() const;
- inline isl::union_map range_product(isl::union_map umap2) const;
- inline isl::union_map range_reverse() const;
- inline isl::union_map remove_divs() const;
- inline isl::union_map remove_redundancies() const;
- inline isl::union_map reset_user() const;
- inline isl::union_map reverse() const;
- inline isl::basic_map sample() const;
- inline isl::union_map simple_hull() const;
- inline isl::union_map subtract(isl::union_map umap2) const;
- inline isl::union_map subtract_domain(isl::union_set dom) const;
- inline isl::union_map subtract_range(isl::union_set dom) const;
- inline isl::union_map uncurry() const;
- inline isl::union_map unite(isl::union_map umap2) const;
- inline isl::union_map universe() const;
- inline isl::union_set wrap() const;
- inline isl::union_map zip() const;
-};
+isl::ast_expr ast_build::call_from(isl::pw_multi_aff pma) const
+{
+ auto res = isl_ast_build_call_from_pw_multi_aff(get(), pma.release());
+ return manage(res);
+}
-// declarations for isl::union_map_list
-inline union_map_list manage(__isl_take isl_union_map_list *ptr);
-inline union_map_list manage_copy(__isl_keep isl_union_map_list *ptr);
+isl::ast_expr ast_build::expr_from(isl::pw_aff pa) const
+{
+ auto res = isl_ast_build_expr_from_pw_aff(get(), pa.release());
+ return manage(res);
+}
-class union_map_list {
- friend inline union_map_list manage(__isl_take isl_union_map_list *ptr);
- friend inline union_map_list manage_copy(__isl_keep isl_union_map_list *ptr);
+isl::ast_expr ast_build::expr_from(isl::set set) const
+{
+ auto res = isl_ast_build_expr_from_set(get(), set.release());
+ return manage(res);
+}
- isl_union_map_list *ptr = nullptr;
+isl::ast_build ast_build::from_context(isl::set set)
+{
+ auto res = isl_ast_build_from_context(set.release());
+ return manage(res);
+}
- inline explicit union_map_list(__isl_take isl_union_map_list *ptr);
+isl::ast_node ast_build::node_from(isl::schedule schedule) const
+{
+ auto res = isl_ast_build_node_from_schedule(get(), schedule.release());
+ return manage(res);
+}
-public:
- inline /* implicit */ union_map_list();
- inline /* implicit */ union_map_list(const union_map_list &obj);
- inline union_map_list &operator=(union_map_list obj);
- inline ~union_map_list();
- inline __isl_give isl_union_map_list *copy() const &;
- inline __isl_give isl_union_map_list *copy() && = delete;
- inline __isl_keep isl_union_map_list *get() const;
- inline __isl_give isl_union_map_list *release();
- inline bool is_null() const;
- inline isl::ctx ctx() const;
- inline void dump() const;
-
- inline isl::union_map_list add(isl::union_map el) const;
- static inline isl::union_map_list alloc(isl::ctx ctx, int n);
- inline isl::union_map_list clear() const;
- inline isl::union_map_list concat(isl::union_map_list list2) const;
- inline isl::union_map_list drop(unsigned int first, unsigned int n) const;
- inline stat foreach(const std::function<stat(union_map)> &fn) const;
- static inline isl::union_map_list from_union_map(isl::union_map el);
- inline isl::union_map get_at(int index) const;
- inline isl::union_map get_union_map(int index) const;
- inline isl::union_map_list insert(unsigned int pos, isl::union_map el) const;
- inline isl_size n_union_map() const;
- inline isl::union_map_list reverse() const;
- inline isl::union_map_list set_union_map(int index, isl::union_map el) const;
- inline isl_size size() const;
- inline isl::union_map_list swap(unsigned int pos1, unsigned int pos2) const;
-};
+isl::ast_node ast_build::node_from_schedule_map(isl::union_map schedule) const
+{
+ auto res = isl_ast_build_node_from_schedule_map(get(), schedule.release());
+ return manage(res);
+}
-// declarations for isl::union_pw_aff
-inline union_pw_aff manage(__isl_take isl_union_pw_aff *ptr);
-inline union_pw_aff manage_copy(__isl_keep isl_union_pw_aff *ptr);
+isl::ast_build ast_build::restrict(isl::set set) const
+{
+ auto res = isl_ast_build_restrict(copy(), set.release());
+ return manage(res).copy_callbacks(*this);
+}
-class union_pw_aff {
- friend inline union_pw_aff manage(__isl_take isl_union_pw_aff *ptr);
- friend inline union_pw_aff manage_copy(__isl_keep isl_union_pw_aff *ptr);
+isl::union_map ast_build::schedule() const
+{
+ auto res = isl_ast_build_get_schedule(get());
+ return manage(res);
+}
- isl_union_pw_aff *ptr = nullptr;
+isl::union_map ast_build::get_schedule() const
+{
+ return schedule();
+}
- inline explicit union_pw_aff(__isl_take isl_union_pw_aff *ptr);
+// implementations for isl::ast_expr
+ast_expr manage(__isl_take isl_ast_expr *ptr) {
+ return ast_expr(ptr);
+}
+ast_expr manage_copy(__isl_keep isl_ast_expr *ptr) {
+ ptr = isl_ast_expr_copy(ptr);
+ return ast_expr(ptr);
+}
-public:
- inline /* implicit */ union_pw_aff();
- inline /* implicit */ union_pw_aff(const union_pw_aff &obj);
- inline /* implicit */ union_pw_aff(isl::aff aff);
- inline /* implicit */ union_pw_aff(isl::pw_aff pa);
- inline explicit union_pw_aff(isl::ctx ctx, const std::string &str);
- inline explicit union_pw_aff(isl::union_set domain, isl::val v);
- inline union_pw_aff &operator=(union_pw_aff obj);
- inline ~union_pw_aff();
- inline __isl_give isl_union_pw_aff *copy() const &;
- inline __isl_give isl_union_pw_aff *copy() && = delete;
- inline __isl_keep isl_union_pw_aff *get() const;
- inline __isl_give isl_union_pw_aff *release();
- inline bool is_null() const;
- inline isl::ctx ctx() const;
- inline void dump() const;
+ast_expr::ast_expr()
+ : ptr(nullptr) {}
- inline isl::union_pw_aff add(isl::union_pw_aff upa2) const;
- inline isl::union_pw_aff add_pw_aff(isl::pw_aff pa) const;
- static inline isl::union_pw_aff aff_on_domain(isl::union_set domain, isl::aff aff);
- inline isl::union_pw_aff align_params(isl::space model) const;
- inline isl::union_set bind(isl::id id) const;
- inline isl::union_pw_aff coalesce() const;
- inline isl_size dim(isl::dim type) const;
- inline isl::union_set domain() const;
- inline isl::union_pw_aff drop_dims(isl::dim type, unsigned int first, unsigned int n) const;
- static inline isl::union_pw_aff empty(isl::space space);
- static inline isl::union_pw_aff empty_ctx(isl::ctx ctx);
- static inline isl::union_pw_aff empty_space(isl::space space);
- inline isl::pw_aff extract_pw_aff(isl::space space) const;
- inline int find_dim_by_name(isl::dim type, const std::string &name) const;
- inline isl::union_pw_aff floor() const;
- inline stat foreach_pw_aff(const std::function<stat(pw_aff)> &fn) const;
- inline isl::pw_aff_list get_pw_aff_list() const;
- inline isl::space get_space() const;
- inline isl::union_pw_aff gist(isl::union_set context) const;
- inline isl::union_pw_aff gist_params(isl::set context) const;
- inline isl::union_pw_aff intersect_domain(isl::space space) const;
- inline isl::union_pw_aff intersect_domain(isl::union_set uset) const;
- inline isl::union_pw_aff intersect_domain_wrapped_domain(isl::union_set uset) const;
- inline isl::union_pw_aff intersect_domain_wrapped_range(isl::union_set uset) const;
- inline isl::union_pw_aff intersect_params(isl::set set) const;
- inline boolean involves_nan() const;
- inline isl::val max_val() const;
- inline isl::val min_val() const;
- inline isl::union_pw_aff mod_val(isl::val f) const;
- inline isl_size n_pw_aff() const;
- inline isl::union_pw_aff neg() const;
- static inline isl::union_pw_aff param_on_domain_id(isl::union_set domain, isl::id id);
- inline boolean plain_is_equal(const isl::union_pw_aff &upa2) const;
- inline isl::union_pw_aff pullback(isl::union_pw_multi_aff upma) const;
- static inline isl::union_pw_aff pw_aff_on_domain(isl::union_set domain, isl::pw_aff pa);
- inline isl::union_pw_aff reset_user() const;
- inline isl::union_pw_aff scale_down_val(isl::val v) const;
- inline isl::union_pw_aff scale_val(isl::val v) const;
- inline isl::union_pw_aff sub(isl::union_pw_aff upa2) const;
- inline isl::union_pw_aff subtract_domain(isl::space space) const;
- inline isl::union_pw_aff subtract_domain(isl::union_set uset) const;
- inline isl::union_pw_aff union_add(isl::union_pw_aff upa2) const;
- inline isl::union_set zero_union_set() const;
-};
+ast_expr::ast_expr(const ast_expr &obj)
+ : ptr(nullptr)
+{
+ ptr = obj.copy();
+}
-// declarations for isl::union_pw_aff_list
-inline union_pw_aff_list manage(__isl_take isl_union_pw_aff_list *ptr);
-inline union_pw_aff_list manage_copy(__isl_keep isl_union_pw_aff_list *ptr);
+ast_expr::ast_expr(__isl_take isl_ast_expr *ptr)
+ : ptr(ptr) {}
-class union_pw_aff_list {
- friend inline union_pw_aff_list manage(__isl_take isl_union_pw_aff_list *ptr);
- friend inline union_pw_aff_list manage_copy(__isl_keep isl_union_pw_aff_list *ptr);
+ast_expr &ast_expr::operator=(ast_expr obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
+}
- isl_union_pw_aff_list *ptr = nullptr;
+ast_expr::~ast_expr() {
+ if (ptr)
+ isl_ast_expr_free(ptr);
+}
- inline explicit union_pw_aff_list(__isl_take isl_union_pw_aff_list *ptr);
+__isl_give isl_ast_expr *ast_expr::copy() const & {
+ return isl_ast_expr_copy(ptr);
+}
-public:
- inline /* implicit */ union_pw_aff_list();
- inline /* implicit */ union_pw_aff_list(const union_pw_aff_list &obj);
- inline union_pw_aff_list &operator=(union_pw_aff_list obj);
- inline ~union_pw_aff_list();
- inline __isl_give isl_union_pw_aff_list *copy() const &;
- inline __isl_give isl_union_pw_aff_list *copy() && = delete;
- inline __isl_keep isl_union_pw_aff_list *get() const;
- inline __isl_give isl_union_pw_aff_list *release();
- inline bool is_null() const;
- inline isl::ctx ctx() const;
- inline void dump() const;
+__isl_keep isl_ast_expr *ast_expr::get() const {
+ return ptr;
+}
- inline isl::union_pw_aff_list add(isl::union_pw_aff el) const;
- static inline isl::union_pw_aff_list alloc(isl::ctx ctx, int n);
- inline isl::union_pw_aff_list clear() const;
- inline isl::union_pw_aff_list concat(isl::union_pw_aff_list list2) const;
- inline isl::union_pw_aff_list drop(unsigned int first, unsigned int n) const;
- inline stat foreach(const std::function<stat(union_pw_aff)> &fn) const;
- static inline isl::union_pw_aff_list from_union_pw_aff(isl::union_pw_aff el);
- inline isl::union_pw_aff get_at(int index) const;
- inline isl::union_pw_aff get_union_pw_aff(int index) const;
- inline isl::union_pw_aff_list insert(unsigned int pos, isl::union_pw_aff el) const;
- inline isl_size n_union_pw_aff() const;
- inline isl::union_pw_aff_list reverse() const;
- inline isl::union_pw_aff_list set_union_pw_aff(int index, isl::union_pw_aff el) const;
- inline isl_size size() const;
- inline isl::union_pw_aff_list swap(unsigned int pos1, unsigned int pos2) const;
-};
+__isl_give isl_ast_expr *ast_expr::release() {
+ isl_ast_expr *tmp = ptr;
+ ptr = nullptr;
+ return tmp;
+}
-// declarations for isl::union_pw_multi_aff
-inline union_pw_multi_aff manage(__isl_take isl_union_pw_multi_aff *ptr);
-inline union_pw_multi_aff manage_copy(__isl_keep isl_union_pw_multi_aff *ptr);
+bool ast_expr::is_null() const {
+ return ptr == nullptr;
+}
-class union_pw_multi_aff {
- friend inline union_pw_multi_aff manage(__isl_take isl_union_pw_multi_aff *ptr);
- friend inline union_pw_multi_aff manage_copy(__isl_keep isl_union_pw_multi_aff *ptr);
+template <typename T, typename>
+boolean ast_expr::isa_type(T subtype) const
+{
+ if (is_null())
+ return boolean();
+ return isl_ast_expr_get_type(get()) == subtype;
+}
+template <class T>
+boolean ast_expr::isa() const
+{
+ return isa_type<decltype(T::type)>(T::type);
+}
+template <class T>
+T ast_expr::as() const
+{
+ if (isa<T>().is_false())
+ isl_die(ctx().get(), isl_error_invalid, "not an object of the requested subtype", return T());
+ return T(copy());
+}
- isl_union_pw_multi_aff *ptr = nullptr;
+isl::ctx ast_expr::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
+}
- inline explicit union_pw_multi_aff(__isl_take isl_union_pw_multi_aff *ptr);
+isl::ast_expr ast_expr::add(isl::ast_expr expr2) const
+{
+ auto res = isl_ast_expr_add(copy(), expr2.release());
+ return manage(res);
+}
-public:
- inline /* implicit */ union_pw_multi_aff();
- inline /* implicit */ union_pw_multi_aff(const union_pw_multi_aff &obj);
- inline /* implicit */ union_pw_multi_aff(isl::aff aff);
- inline explicit union_pw_multi_aff(isl::union_set uset);
- inline /* implicit */ union_pw_multi_aff(isl::multi_aff ma);
- inline explicit union_pw_multi_aff(isl::multi_union_pw_aff mupa);
- inline /* implicit */ union_pw_multi_aff(isl::pw_multi_aff pma);
- inline explicit union_pw_multi_aff(isl::union_map umap);
- inline /* implicit */ union_pw_multi_aff(isl::union_pw_aff upa);
- inline explicit union_pw_multi_aff(isl::ctx ctx, const std::string &str);
- inline union_pw_multi_aff &operator=(union_pw_multi_aff obj);
- inline ~union_pw_multi_aff();
- inline __isl_give isl_union_pw_multi_aff *copy() const &;
- inline __isl_give isl_union_pw_multi_aff *copy() && = delete;
- inline __isl_keep isl_union_pw_multi_aff *get() const;
- inline __isl_give isl_union_pw_multi_aff *release();
- inline bool is_null() const;
- inline isl::ctx ctx() const;
- inline void dump() const;
+isl::ast_expr ast_expr::address_of() const
+{
+ auto res = isl_ast_expr_address_of(copy());
+ return manage(res);
+}
- inline isl::union_pw_multi_aff add(isl::union_pw_multi_aff upma2) const;
- inline isl::union_pw_multi_aff add_pw_multi_aff(isl::pw_multi_aff pma) const;
- inline isl::union_pw_multi_aff align_params(isl::space model) const;
- inline isl::union_pw_multi_aff apply(isl::union_pw_multi_aff upma2) const;
- inline isl::pw_multi_aff as_pw_multi_aff() const;
- inline isl::union_pw_multi_aff coalesce() const;
- inline isl_size dim(isl::dim type) const;
- inline isl::union_set domain() const;
- inline isl::union_pw_multi_aff drop_dims(isl::dim type, unsigned int first, unsigned int n) const;
- static inline isl::union_pw_multi_aff empty(isl::space space);
- static inline isl::union_pw_multi_aff empty(isl::ctx ctx);
- static inline isl::union_pw_multi_aff empty_space(isl::space space);
- inline isl::pw_multi_aff extract_pw_multi_aff(isl::space space) const;
- inline int find_dim_by_name(isl::dim type, const std::string &name) const;
- inline isl::union_pw_multi_aff flat_range_product(isl::union_pw_multi_aff upma2) const;
- inline stat foreach_pw_multi_aff(const std::function<stat(pw_multi_aff)> &fn) const;
- static inline isl::union_pw_multi_aff from_union_set(isl::union_set uset);
- inline isl::pw_multi_aff_list get_pw_multi_aff_list() const;
- inline isl::space get_space() const;
- inline isl::union_pw_aff get_union_pw_aff(int pos) const;
- inline isl::union_pw_multi_aff gist(isl::union_set context) const;
- inline isl::union_pw_multi_aff gist_params(isl::set context) const;
- inline isl::union_pw_multi_aff intersect_domain(isl::space space) const;
- inline isl::union_pw_multi_aff intersect_domain(isl::union_set uset) const;
- inline isl::union_pw_multi_aff intersect_domain_wrapped_domain(isl::union_set uset) const;
- inline isl::union_pw_multi_aff intersect_domain_wrapped_range(isl::union_set uset) const;
- inline isl::union_pw_multi_aff intersect_params(isl::set set) const;
- inline boolean involves_locals() const;
- inline boolean involves_nan() const;
- inline boolean isa_pw_multi_aff() const;
- static inline isl::union_pw_multi_aff multi_val_on_domain(isl::union_set domain, isl::multi_val mv);
- inline isl_size n_pw_multi_aff() const;
- inline isl::union_pw_multi_aff neg() const;
- inline boolean plain_is_empty() const;
- inline boolean plain_is_equal(const isl::union_pw_multi_aff &upma2) const;
- inline isl::union_pw_multi_aff preimage_domain_wrapped_domain(isl::union_pw_multi_aff upma2) const;
- inline isl::union_pw_multi_aff pullback(isl::union_pw_multi_aff upma2) const;
- inline isl::union_pw_multi_aff range_factor_domain() const;
- inline isl::union_pw_multi_aff range_factor_range() const;
- inline isl::union_pw_multi_aff range_product(isl::union_pw_multi_aff upma2) const;
- inline isl::union_pw_multi_aff reset_user() const;
- inline isl::union_pw_multi_aff scale_down_val(isl::val val) const;
- inline isl::union_pw_multi_aff scale_multi_val(isl::multi_val mv) const;
- inline isl::union_pw_multi_aff scale_val(isl::val val) const;
- inline isl::union_pw_multi_aff sub(isl::union_pw_multi_aff upma2) const;
- inline isl::union_pw_multi_aff subtract_domain(isl::space space) const;
- inline isl::union_pw_multi_aff subtract_domain(isl::union_set uset) const;
- inline isl::union_pw_multi_aff union_add(isl::union_pw_multi_aff upma2) const;
-};
+isl::ast_expr ast_expr::eq(isl::ast_expr expr2) const
+{
+ auto res = isl_ast_expr_eq(copy(), expr2.release());
+ return manage(res);
+}
+
+isl::ast_expr ast_expr::from_val(isl::val v)
+{
+ auto res = isl_ast_expr_from_val(v.release());
+ return manage(res);
+}
+
+isl::id ast_expr::id() const
+{
+ auto res = isl_ast_expr_get_id(get());
+ return manage(res);
+}
+
+isl::id ast_expr::get_id() const
+{
+ return id();
+}
+
+isl::ast_expr ast_expr::le(isl::ast_expr expr2) const
+{
+ auto res = isl_ast_expr_le(copy(), expr2.release());
+ return manage(res);
+}
+
+isl::ast_expr ast_expr::mul(isl::ast_expr expr2) const
+{
+ auto res = isl_ast_expr_mul(copy(), expr2.release());
+ return manage(res);
+}
-// declarations for isl::union_pw_multi_aff_list
-inline union_pw_multi_aff_list manage(__isl_take isl_union_pw_multi_aff_list *ptr);
-inline union_pw_multi_aff_list manage_copy(__isl_keep isl_union_pw_multi_aff_list *ptr);
+isl::ast_expr ast_expr::op_arg(int pos) const
+{
+ auto res = isl_ast_expr_get_op_arg(get(), pos);
+ return manage(res);
+}
-class union_pw_multi_aff_list {
- friend inline union_pw_multi_aff_list manage(__isl_take isl_union_pw_multi_aff_list *ptr);
- friend inline union_pw_multi_aff_list manage_copy(__isl_keep isl_union_pw_multi_aff_list *ptr);
+isl::ast_expr ast_expr::get_op_arg(int pos) const
+{
+ return op_arg(pos);
+}
- isl_union_pw_multi_aff_list *ptr = nullptr;
+std::string ast_expr::to_C_str() const
+{
+ auto res = isl_ast_expr_to_C_str(get());
+ std::string tmp(res);
+ free(res);
+ return tmp;
+}
- inline explicit union_pw_multi_aff_list(__isl_take isl_union_pw_multi_aff_list *ptr);
+isl::val ast_expr::val() const
+{
+ auto res = isl_ast_expr_get_val(get());
+ return manage(res);
+}
-public:
- inline /* implicit */ union_pw_multi_aff_list();
- inline /* implicit */ union_pw_multi_aff_list(const union_pw_multi_aff_list &obj);
- inline union_pw_multi_aff_list &operator=(union_pw_multi_aff_list obj);
- inline ~union_pw_multi_aff_list();
- inline __isl_give isl_union_pw_multi_aff_list *copy() const &;
- inline __isl_give isl_union_pw_multi_aff_list *copy() && = delete;
- inline __isl_keep isl_union_pw_multi_aff_list *get() const;
- inline __isl_give isl_union_pw_multi_aff_list *release();
- inline bool is_null() const;
- inline isl::ctx ctx() const;
- inline void dump() const;
-
- inline isl::union_pw_multi_aff_list add(isl::union_pw_multi_aff el) const;
- static inline isl::union_pw_multi_aff_list alloc(isl::ctx ctx, int n);
- inline isl::union_pw_multi_aff_list clear() const;
- inline isl::union_pw_multi_aff_list concat(isl::union_pw_multi_aff_list list2) const;
- inline isl::union_pw_multi_aff_list drop(unsigned int first, unsigned int n) const;
- inline stat foreach(const std::function<stat(union_pw_multi_aff)> &fn) const;
- static inline isl::union_pw_multi_aff_list from_union_pw_multi_aff(isl::union_pw_multi_aff el);
- inline isl::union_pw_multi_aff get_at(int index) const;
- inline isl::union_pw_multi_aff get_union_pw_multi_aff(int index) const;
- inline isl::union_pw_multi_aff_list insert(unsigned int pos, isl::union_pw_multi_aff el) const;
- inline isl_size n_union_pw_multi_aff() const;
- inline isl::union_pw_multi_aff_list reverse() const;
- inline isl::union_pw_multi_aff_list set_union_pw_multi_aff(int index, isl::union_pw_multi_aff el) const;
- inline isl_size size() const;
- inline isl::union_pw_multi_aff_list swap(unsigned int pos1, unsigned int pos2) const;
-};
+isl::val ast_expr::get_val() const
+{
+ return val();
+}
-// declarations for isl::union_pw_qpolynomial
-inline union_pw_qpolynomial manage(__isl_take isl_union_pw_qpolynomial *ptr);
-inline union_pw_qpolynomial manage_copy(__isl_keep isl_union_pw_qpolynomial *ptr);
+inline std::ostream &operator<<(std::ostream &os, const ast_expr &obj)
+{
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
+}
-class union_pw_qpolynomial {
- friend inline union_pw_qpolynomial manage(__isl_take isl_union_pw_qpolynomial *ptr);
- friend inline union_pw_qpolynomial manage_copy(__isl_keep isl_union_pw_qpolynomial *ptr);
+// implementations for isl::ast_expr_id
+ast_expr_id::ast_expr_id()
+ : ast_expr() {}
- isl_union_pw_qpolynomial *ptr = nullptr;
+ast_expr_id::ast_expr_id(const ast_expr_id &obj)
+ : ast_expr(obj)
+{
+}
- inline explicit union_pw_qpolynomial(__isl_take isl_union_pw_qpolynomial *ptr);
+ast_expr_id::ast_expr_id(__isl_take isl_ast_expr *ptr)
+ : ast_expr(ptr) {}
-public:
- inline /* implicit */ union_pw_qpolynomial();
- inline /* implicit */ union_pw_qpolynomial(const union_pw_qpolynomial &obj);
- inline explicit union_pw_qpolynomial(isl::ctx ctx, const std::string &str);
- inline union_pw_qpolynomial &operator=(union_pw_qpolynomial obj);
- inline ~union_pw_qpolynomial();
- inline __isl_give isl_union_pw_qpolynomial *copy() const &;
- inline __isl_give isl_union_pw_qpolynomial *copy() && = delete;
- inline __isl_keep isl_union_pw_qpolynomial *get() const;
- inline __isl_give isl_union_pw_qpolynomial *release();
- inline bool is_null() const;
- inline isl::ctx ctx() const;
+ast_expr_id &ast_expr_id::operator=(ast_expr_id obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
+}
- inline isl::union_pw_qpolynomial add(isl::union_pw_qpolynomial upwqp2) const;
- inline isl::union_pw_qpolynomial add_pw_qpolynomial(isl::pw_qpolynomial pwqp) const;
- inline isl::union_pw_qpolynomial align_params(isl::space model) const;
- inline isl::union_pw_qpolynomial coalesce() const;
- inline isl_size dim(isl::dim type) const;
- inline isl::union_set domain() const;
- inline isl::union_pw_qpolynomial drop_dims(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::val eval(isl::point pnt) const;
- inline isl::pw_qpolynomial extract_pw_qpolynomial(isl::space space) const;
- inline int find_dim_by_name(isl::dim type, const std::string &name) const;
- inline stat foreach_pw_qpolynomial(const std::function<stat(pw_qpolynomial)> &fn) const;
- static inline isl::union_pw_qpolynomial from_pw_qpolynomial(isl::pw_qpolynomial pwqp);
- inline isl::pw_qpolynomial_list get_pw_qpolynomial_list() const;
- inline isl::space get_space() const;
- inline isl::union_pw_qpolynomial gist(isl::union_set context) const;
- inline isl::union_pw_qpolynomial gist_params(isl::set context) const;
- inline isl::union_pw_qpolynomial intersect_domain(isl::union_set uset) const;
- inline isl::union_pw_qpolynomial intersect_domain_space(isl::space space) const;
- inline isl::union_pw_qpolynomial intersect_domain_union_set(isl::union_set uset) const;
- inline isl::union_pw_qpolynomial intersect_domain_wrapped_domain(isl::union_set uset) const;
- inline isl::union_pw_qpolynomial intersect_domain_wrapped_range(isl::union_set uset) const;
- inline isl::union_pw_qpolynomial intersect_params(isl::set set) const;
- inline boolean involves_nan() const;
- inline isl::union_pw_qpolynomial mul(isl::union_pw_qpolynomial upwqp2) const;
- inline isl_size n_pw_qpolynomial() const;
- inline isl::union_pw_qpolynomial neg() const;
- inline boolean plain_is_equal(const isl::union_pw_qpolynomial &upwqp2) const;
- inline isl::union_pw_qpolynomial reset_user() const;
- inline isl::union_pw_qpolynomial scale_down_val(isl::val v) const;
- inline isl::union_pw_qpolynomial scale_val(isl::val v) const;
- inline isl::union_pw_qpolynomial sub(isl::union_pw_qpolynomial upwqp2) const;
- inline isl::union_pw_qpolynomial subtract_domain(isl::union_set uset) const;
- inline isl::union_pw_qpolynomial subtract_domain_space(isl::space space) const;
- inline isl::union_pw_qpolynomial subtract_domain_union_set(isl::union_set uset) const;
- inline isl::union_pw_qpolynomial to_polynomial(int sign) const;
- static inline isl::union_pw_qpolynomial zero(isl::space space);
- static inline isl::union_pw_qpolynomial zero_ctx(isl::ctx ctx);
- static inline isl::union_pw_qpolynomial zero_space(isl::space space);
-};
+isl::ctx ast_expr_id::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
+}
-// declarations for isl::union_set
-inline union_set manage(__isl_take isl_union_set *ptr);
-inline union_set manage_copy(__isl_keep isl_union_set *ptr);
+isl::id ast_expr_id::id() const
+{
+ auto res = isl_ast_expr_id_get_id(get());
+ return manage(res);
+}
-class union_set {
- friend inline union_set manage(__isl_take isl_union_set *ptr);
- friend inline union_set manage_copy(__isl_keep isl_union_set *ptr);
+isl::id ast_expr_id::get_id() const
+{
+ return id();
+}
- isl_union_set *ptr = nullptr;
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_id &obj)
+{
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
+}
- inline explicit union_set(__isl_take isl_union_set *ptr);
+// implementations for isl::ast_expr_int
+ast_expr_int::ast_expr_int()
+ : ast_expr() {}
-public:
- inline /* implicit */ union_set();
- inline /* implicit */ union_set(const union_set &obj);
- inline /* implicit */ union_set(isl::basic_set bset);
- inline /* implicit */ union_set(isl::point pnt);
- inline /* implicit */ union_set(isl::set set);
- inline explicit union_set(isl::ctx ctx, const std::string &str);
- inline union_set &operator=(union_set obj);
- inline ~union_set();
- inline __isl_give isl_union_set *copy() const &;
- inline __isl_give isl_union_set *copy() && = delete;
- inline __isl_keep isl_union_set *get() const;
- inline __isl_give isl_union_set *release();
- inline bool is_null() const;
- inline isl::ctx ctx() const;
- inline void dump() const;
+ast_expr_int::ast_expr_int(const ast_expr_int &obj)
+ : ast_expr(obj)
+{
+}
- inline isl::union_set affine_hull() const;
- inline isl::union_set align_params(isl::space model) const;
- inline isl::union_set apply(isl::union_map umap) const;
- inline isl::union_set coalesce() const;
- inline isl::union_set coefficients() const;
- inline isl::schedule compute_schedule(isl::union_map validity, isl::union_map proximity) const;
- inline boolean contains(const isl::space &space) const;
- inline isl::union_set detect_equalities() const;
- inline isl_size dim(isl::dim type) const;
- static inline isl::union_set empty(isl::ctx ctx);
- inline isl::set extract_set(isl::space space) const;
- inline stat foreach_point(const std::function<stat(point)> &fn) const;
- inline stat foreach_set(const std::function<stat(set)> &fn) const;
- inline isl::basic_set_list get_basic_set_list() const;
- inline uint32_t get_hash() const;
- inline isl::set_list get_set_list() const;
- inline isl::space get_space() const;
- inline isl::union_set gist(isl::union_set context) const;
- inline isl::union_set gist_params(isl::set set) const;
- inline isl::union_map identity() const;
- inline isl::union_pw_multi_aff identity_union_pw_multi_aff() const;
- inline isl::union_set intersect(isl::union_set uset2) const;
- inline isl::union_set intersect_params(isl::set set) const;
- inline boolean is_disjoint(const isl::union_set &uset2) const;
- inline boolean is_empty() const;
- inline boolean is_equal(const isl::union_set &uset2) const;
- inline boolean is_params() const;
- inline boolean is_strict_subset(const isl::union_set &uset2) const;
- inline boolean is_subset(const isl::union_set &uset2) const;
- inline boolean isa_set() const;
- inline isl::union_map lex_ge_union_set(isl::union_set uset2) const;
- inline isl::union_map lex_gt_union_set(isl::union_set uset2) const;
- inline isl::union_map lex_le_union_set(isl::union_set uset2) const;
- inline isl::union_map lex_lt_union_set(isl::union_set uset2) const;
- inline isl::union_set lexmax() const;
- inline isl::union_set lexmin() const;
- inline isl::multi_val min_multi_union_pw_aff(const isl::multi_union_pw_aff &obj) const;
- inline isl_size n_set() const;
- inline isl::set params() const;
- inline isl::union_set polyhedral_hull() const;
- inline isl::union_set preimage(isl::multi_aff ma) const;
- inline isl::union_set preimage(isl::pw_multi_aff pma) const;
- inline isl::union_set preimage(isl::union_pw_multi_aff upma) const;
- inline isl::union_set product(isl::union_set uset2) const;
- inline isl::union_set project_out(isl::dim type, unsigned int first, unsigned int n) const;
- inline isl::union_set project_out_all_params() const;
- inline isl::union_set remove_divs() const;
- inline isl::union_set remove_redundancies() const;
- inline isl::union_set reset_user() const;
- inline isl::basic_set sample() const;
- inline isl::point sample_point() const;
- inline isl::union_set simple_hull() const;
- inline isl::union_set solutions() const;
- inline isl::union_set subtract(isl::union_set uset2) const;
- inline isl::union_set unite(isl::union_set uset2) const;
- inline isl::union_set universe() const;
- inline isl::union_map unwrap() const;
- inline isl::union_map wrapped_domain_map() const;
-};
+ast_expr_int::ast_expr_int(__isl_take isl_ast_expr *ptr)
+ : ast_expr(ptr) {}
-// declarations for isl::union_set_list
-inline union_set_list manage(__isl_take isl_union_set_list *ptr);
-inline union_set_list manage_copy(__isl_keep isl_union_set_list *ptr);
+ast_expr_int &ast_expr_int::operator=(ast_expr_int obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
+}
-class union_set_list {
- friend inline union_set_list manage(__isl_take isl_union_set_list *ptr);
- friend inline union_set_list manage_copy(__isl_keep isl_union_set_list *ptr);
+isl::ctx ast_expr_int::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
+}
- isl_union_set_list *ptr = nullptr;
+isl::val ast_expr_int::val() const
+{
+ auto res = isl_ast_expr_int_get_val(get());
+ return manage(res);
+}
- inline explicit union_set_list(__isl_take isl_union_set_list *ptr);
+isl::val ast_expr_int::get_val() const
+{
+ return val();
+}
-public:
- inline /* implicit */ union_set_list();
- inline /* implicit */ union_set_list(const union_set_list &obj);
- inline union_set_list &operator=(union_set_list obj);
- inline ~union_set_list();
- inline __isl_give isl_union_set_list *copy() const &;
- inline __isl_give isl_union_set_list *copy() && = delete;
- inline __isl_keep isl_union_set_list *get() const;
- inline __isl_give isl_union_set_list *release();
- inline bool is_null() const;
- inline isl::ctx ctx() const;
- inline void dump() const;
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_int &obj)
+{
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
+}
- inline isl::union_set_list add(isl::union_set el) const;
- static inline isl::union_set_list alloc(isl::ctx ctx, int n);
- inline isl::union_set_list clear() const;
- inline isl::union_set_list concat(isl::union_set_list list2) const;
- inline isl::union_set_list drop(unsigned int first, unsigned int n) const;
- inline stat foreach(const std::function<stat(union_set)> &fn) const;
- static inline isl::union_set_list from_union_set(isl::union_set el);
- inline isl::union_set get_at(int index) const;
- inline isl::union_set get_union_set(int index) const;
- inline isl::union_set_list insert(unsigned int pos, isl::union_set el) const;
- inline isl_size n_union_set() const;
- inline isl::union_set_list reverse() const;
- inline isl::union_set_list set_union_set(int index, isl::union_set el) const;
- inline isl_size size() const;
- inline isl::union_set_list swap(unsigned int pos1, unsigned int pos2) const;
- inline isl::union_set unite() const;
-};
+// implementations for isl::ast_expr_op
+ast_expr_op::ast_expr_op()
+ : ast_expr() {}
-// declarations for isl::val
-inline val manage(__isl_take isl_val *ptr);
-inline val manage_copy(__isl_keep isl_val *ptr);
+ast_expr_op::ast_expr_op(const ast_expr_op &obj)
+ : ast_expr(obj)
+{
+}
-class val {
- friend inline val manage(__isl_take isl_val *ptr);
- friend inline val manage_copy(__isl_keep isl_val *ptr);
+ast_expr_op::ast_expr_op(__isl_take isl_ast_expr *ptr)
+ : ast_expr(ptr) {}
- isl_val *ptr = nullptr;
+ast_expr_op &ast_expr_op::operator=(ast_expr_op obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
+}
- inline explicit val(__isl_take isl_val *ptr);
+template <typename T, typename>
+boolean ast_expr_op::isa_type(T subtype) const
+{
+ if (is_null())
+ return boolean();
+ return isl_ast_expr_op_get_type(get()) == subtype;
+}
+template <class T>
+boolean ast_expr_op::isa() const
+{
+ return isa_type<decltype(T::type)>(T::type);
+}
+template <class T>
+T ast_expr_op::as() const
+{
+ if (isa<T>().is_false())
+ isl_die(ctx().get(), isl_error_invalid, "not an object of the requested subtype", return T());
+ return T(copy());
+}
-public:
- inline /* implicit */ val();
- inline /* implicit */ val(const val &obj);
- inline explicit val(isl::ctx ctx, long i);
- inline explicit val(isl::ctx ctx, const std::string &str);
- inline val &operator=(val obj);
- inline ~val();
- inline __isl_give isl_val *copy() const &;
- inline __isl_give isl_val *copy() && = delete;
- inline __isl_keep isl_val *get() const;
- inline __isl_give isl_val *release();
- inline bool is_null() const;
- inline isl::ctx ctx() const;
- inline void dump() const;
+isl::ctx ast_expr_op::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
+}
- inline isl::val abs() const;
- inline boolean abs_eq(const isl::val &v2) const;
- inline isl::val add(isl::val v2) const;
- inline isl::val add_ui(unsigned long v2) const;
- inline isl::val ceil() const;
- inline int cmp_si(long i) const;
- inline isl::val div(isl::val v2) const;
- inline isl::val div_ui(unsigned long v2) const;
- inline boolean eq(const isl::val &v2) const;
- inline boolean eq_si(long i) const;
- inline isl::val floor() const;
- inline isl::val gcd(isl::val v2) const;
- inline boolean ge(const isl::val &v2) const;
- inline uint32_t get_hash() const;
- inline long get_num_si() const;
- inline boolean gt(const isl::val &v2) const;
- inline boolean gt_si(long i) const;
- static inline isl::val infty(isl::ctx ctx);
- static inline isl::val int_from_ui(isl::ctx ctx, unsigned long u);
- inline isl::val inv() const;
- inline boolean is_divisible_by(const isl::val &v2) const;
- inline boolean is_infty() const;
- inline boolean is_int() const;
- inline boolean is_nan() const;
- inline boolean is_neg() const;
- inline boolean is_neginfty() const;
- inline boolean is_negone() const;
- inline boolean is_nonneg() const;
- inline boolean is_nonpos() const;
- inline boolean is_one() const;
- inline boolean is_pos() const;
- inline boolean is_rat() const;
- inline boolean is_zero() const;
- inline boolean le(const isl::val &v2) const;
- inline boolean lt(const isl::val &v2) const;
- inline isl::val max(isl::val v2) const;
- inline isl::val min(isl::val v2) const;
- inline isl::val mod(isl::val v2) const;
- inline isl::val mul(isl::val v2) const;
- inline isl::val mul_ui(unsigned long v2) const;
- inline isl_size n_abs_num_chunks(size_t size) const;
- static inline isl::val nan(isl::ctx ctx);
- inline boolean ne(const isl::val &v2) const;
- inline isl::val neg() const;
- static inline isl::val neginfty(isl::ctx ctx);
- static inline isl::val negone(isl::ctx ctx);
- static inline isl::val one(isl::ctx ctx);
- inline isl::val pow2() const;
- inline isl::val set_si(long i) const;
- inline int sgn() const;
- inline isl::val sub(isl::val v2) const;
- inline isl::val sub_ui(unsigned long v2) const;
- inline isl::val trunc() const;
- static inline isl::val zero(isl::ctx ctx);
-};
+isl::ast_expr ast_expr_op::arg(int pos) const
+{
+ auto res = isl_ast_expr_op_get_arg(get(), pos);
+ return manage(res);
+}
-// declarations for isl::val_list
-inline val_list manage(__isl_take isl_val_list *ptr);
-inline val_list manage_copy(__isl_keep isl_val_list *ptr);
+isl::ast_expr ast_expr_op::get_arg(int pos) const
+{
+ return arg(pos);
+}
+
+class size ast_expr_op::n_arg() const
+{
+ auto res = isl_ast_expr_op_get_n_arg(get());
+ return manage(res);
+}
+
+class size ast_expr_op::get_n_arg() const
+{
+ return n_arg();
+}
+
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_op &obj)
+{
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
+}
-class val_list {
- friend inline val_list manage(__isl_take isl_val_list *ptr);
- friend inline val_list manage_copy(__isl_keep isl_val_list *ptr);
+// implementations for isl::ast_expr_op_access
+ast_expr_op_access::ast_expr_op_access()
+ : ast_expr_op() {}
- isl_val_list *ptr = nullptr;
+ast_expr_op_access::ast_expr_op_access(const ast_expr_op_access &obj)
+ : ast_expr_op(obj)
+{
+}
- inline explicit val_list(__isl_take isl_val_list *ptr);
+ast_expr_op_access::ast_expr_op_access(__isl_take isl_ast_expr *ptr)
+ : ast_expr_op(ptr) {}
-public:
- inline /* implicit */ val_list();
- inline /* implicit */ val_list(const val_list &obj);
- inline val_list &operator=(val_list obj);
- inline ~val_list();
- inline __isl_give isl_val_list *copy() const &;
- inline __isl_give isl_val_list *copy() && = delete;
- inline __isl_keep isl_val_list *get() const;
- inline __isl_give isl_val_list *release();
- inline bool is_null() const;
- inline isl::ctx ctx() const;
- inline void dump() const;
+ast_expr_op_access &ast_expr_op_access::operator=(ast_expr_op_access obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
+}
- inline isl::val_list add(isl::val el) const;
- static inline isl::val_list alloc(isl::ctx ctx, int n);
- inline isl::val_list clear() const;
- inline isl::val_list concat(isl::val_list list2) const;
- inline isl::val_list drop(unsigned int first, unsigned int n) const;
- inline stat foreach(const std::function<stat(val)> &fn) const;
- static inline isl::val_list from_val(isl::val el);
- inline isl::val get_at(int index) const;
- inline isl::val get_val(int index) const;
- inline isl::val_list insert(unsigned int pos, isl::val el) const;
- inline isl_size n_val() const;
- inline isl::val_list reverse() const;
- inline isl::val_list set_val(int index, isl::val el) const;
- inline isl_size size() const;
- inline isl::val_list swap(unsigned int pos1, unsigned int pos2) const;
-};
+isl::ctx ast_expr_op_access::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
+}
-// declarations for isl::vec
-inline vec manage(__isl_take isl_vec *ptr);
-inline vec manage_copy(__isl_keep isl_vec *ptr);
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_access &obj)
+{
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
+}
-class vec {
- friend inline vec manage(__isl_take isl_vec *ptr);
- friend inline vec manage_copy(__isl_keep isl_vec *ptr);
+// implementations for isl::ast_expr_op_add
+ast_expr_op_add::ast_expr_op_add()
+ : ast_expr_op() {}
- isl_vec *ptr = nullptr;
+ast_expr_op_add::ast_expr_op_add(const ast_expr_op_add &obj)
+ : ast_expr_op(obj)
+{
+}
- inline explicit vec(__isl_take isl_vec *ptr);
+ast_expr_op_add::ast_expr_op_add(__isl_take isl_ast_expr *ptr)
+ : ast_expr_op(ptr) {}
-public:
- inline /* implicit */ vec();
- inline /* implicit */ vec(const vec &obj);
- inline vec &operator=(vec obj);
- inline ~vec();
- inline __isl_give isl_vec *copy() const &;
- inline __isl_give isl_vec *copy() && = delete;
- inline __isl_keep isl_vec *get() const;
- inline __isl_give isl_vec *release();
- inline bool is_null() const;
- inline isl::ctx ctx() const;
- inline void dump() const;
-
- inline isl::vec add(isl::vec vec2) const;
- inline isl::vec add_els(unsigned int n) const;
- static inline isl::vec alloc(isl::ctx ctx, unsigned int size);
- inline isl::vec ceil() const;
- inline isl::vec clr() const;
- inline int cmp_element(const isl::vec &vec2, int pos) const;
- inline isl::vec concat(isl::vec vec2) const;
- inline isl::vec drop_els(unsigned int pos, unsigned int n) const;
- inline isl::vec extend(unsigned int size) const;
- inline isl::val get_element_val(int pos) const;
- inline isl::vec insert_els(unsigned int pos, unsigned int n) const;
- inline isl::vec insert_zero_els(unsigned int pos, unsigned int n) const;
- inline boolean is_equal(const isl::vec &vec2) const;
- inline isl::vec mat_product(isl::mat mat) const;
- inline isl::vec move_els(unsigned int dst_col, unsigned int src_col, unsigned int n) const;
- inline isl::vec neg() const;
- inline isl::vec set_element_si(int pos, int v) const;
- inline isl::vec set_element_val(int pos, isl::val v) const;
- inline isl::vec set_si(int v) const;
- inline isl::vec set_val(isl::val v) const;
- inline isl_size size() const;
- inline isl::vec sort() const;
- static inline isl::vec zero(isl::ctx ctx, unsigned int size);
- inline isl::vec zero_extend(unsigned int size) const;
-};
+ast_expr_op_add &ast_expr_op_add::operator=(ast_expr_op_add obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
+}
-// implementations for isl::aff
-aff manage(__isl_take isl_aff *ptr) {
- return aff(ptr);
+isl::ctx ast_expr_op_add::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
}
-aff manage_copy(__isl_keep isl_aff *ptr) {
- ptr = isl_aff_copy(ptr);
- return aff(ptr);
+
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_add &obj)
+{
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-aff::aff()
- : ptr(nullptr) {}
+// implementations for isl::ast_expr_op_address_of
+ast_expr_op_address_of::ast_expr_op_address_of()
+ : ast_expr_op() {}
-aff::aff(const aff &obj)
- : ptr(nullptr)
+ast_expr_op_address_of::ast_expr_op_address_of(const ast_expr_op_address_of &obj)
+ : ast_expr_op(obj)
{
- ptr = obj.copy();
}
+ast_expr_op_address_of::ast_expr_op_address_of(__isl_take isl_ast_expr *ptr)
+ : ast_expr_op(ptr) {}
-aff::aff(__isl_take isl_aff *ptr)
- : ptr(ptr) {}
+ast_expr_op_address_of &ast_expr_op_address_of::operator=(ast_expr_op_address_of obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
+}
-aff::aff(isl::ctx ctx, const std::string &str)
-{
- auto res = isl_aff_read_from_str(ctx.release(), str.c_str());
- ptr = res;
+isl::ctx ast_expr_op_address_of::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
}
-aff::aff(isl::local_space ls, isl::val val)
+
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_address_of &obj)
{
- auto res = isl_aff_val_on_domain(ls.release(), val.release());
- ptr = res;
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-aff::aff(isl::local_space ls)
+
+// implementations for isl::ast_expr_op_and
+ast_expr_op_and::ast_expr_op_and()
+ : ast_expr_op() {}
+
+ast_expr_op_and::ast_expr_op_and(const ast_expr_op_and &obj)
+ : ast_expr_op(obj)
{
- auto res = isl_aff_zero_on_domain(ls.release());
- ptr = res;
}
-aff &aff::operator=(aff obj) {
+ast_expr_op_and::ast_expr_op_and(__isl_take isl_ast_expr *ptr)
+ : ast_expr_op(ptr) {}
+
+ast_expr_op_and &ast_expr_op_and::operator=(ast_expr_op_and obj) {
std::swap(this->ptr, obj.ptr);
return *this;
}
-aff::~aff() {
- if (ptr)
- isl_aff_free(ptr);
+isl::ctx ast_expr_op_and::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
}
-__isl_give isl_aff *aff::copy() const & {
- return isl_aff_copy(ptr);
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_and &obj)
+{
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-__isl_keep isl_aff *aff::get() const {
- return ptr;
+// implementations for isl::ast_expr_op_and_then
+ast_expr_op_and_then::ast_expr_op_and_then()
+ : ast_expr_op() {}
+
+ast_expr_op_and_then::ast_expr_op_and_then(const ast_expr_op_and_then &obj)
+ : ast_expr_op(obj)
+{
}
-__isl_give isl_aff *aff::release() {
- isl_aff *tmp = ptr;
- ptr = nullptr;
- return tmp;
+ast_expr_op_and_then::ast_expr_op_and_then(__isl_take isl_ast_expr *ptr)
+ : ast_expr_op(ptr) {}
+
+ast_expr_op_and_then &ast_expr_op_and_then::operator=(ast_expr_op_and_then obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-bool aff::is_null() const {
- return ptr == nullptr;
+isl::ctx ast_expr_op_and_then::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
+}
+
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_and_then &obj)
+{
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
+// implementations for isl::ast_expr_op_call
+ast_expr_op_call::ast_expr_op_call()
+ : ast_expr_op() {}
-isl::ctx aff::ctx() const {
- return isl::ctx(isl_aff_get_ctx(ptr));
+ast_expr_op_call::ast_expr_op_call(const ast_expr_op_call &obj)
+ : ast_expr_op(obj)
+{
}
-void aff::dump() const {
- isl_aff_dump(get());
+ast_expr_op_call::ast_expr_op_call(__isl_take isl_ast_expr *ptr)
+ : ast_expr_op(ptr) {}
+
+ast_expr_op_call &ast_expr_op_call::operator=(ast_expr_op_call obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
+isl::ctx ast_expr_op_call::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
+}
-isl::aff aff::add(isl::aff aff2) const
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_call &obj)
{
- auto res = isl_aff_add(copy(), aff2.release());
- return manage(res);
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::aff aff::add_coefficient_si(isl::dim type, int pos, int v) const
+// implementations for isl::ast_expr_op_cond
+ast_expr_op_cond::ast_expr_op_cond()
+ : ast_expr_op() {}
+
+ast_expr_op_cond::ast_expr_op_cond(const ast_expr_op_cond &obj)
+ : ast_expr_op(obj)
{
- auto res = isl_aff_add_coefficient_si(copy(), static_cast<enum isl_dim_type>(type), pos, v);
- return manage(res);
}
-isl::aff aff::add_coefficient_val(isl::dim type, int pos, isl::val v) const
-{
- auto res = isl_aff_add_coefficient_val(copy(), static_cast<enum isl_dim_type>(type), pos, v.release());
- return manage(res);
+ast_expr_op_cond::ast_expr_op_cond(__isl_take isl_ast_expr *ptr)
+ : ast_expr_op(ptr) {}
+
+ast_expr_op_cond &ast_expr_op_cond::operator=(ast_expr_op_cond obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-isl::aff aff::add_constant(isl::val v) const
-{
- auto res = isl_aff_add_constant_val(copy(), v.release());
- return manage(res);
+isl::ctx ast_expr_op_cond::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
}
-isl::aff aff::add_constant_num_si(int v) const
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_cond &obj)
{
- auto res = isl_aff_add_constant_num_si(copy(), v);
- return manage(res);
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::aff aff::add_constant_si(int v) const
+// implementations for isl::ast_expr_op_div
+ast_expr_op_div::ast_expr_op_div()
+ : ast_expr_op() {}
+
+ast_expr_op_div::ast_expr_op_div(const ast_expr_op_div &obj)
+ : ast_expr_op(obj)
{
- auto res = isl_aff_add_constant_si(copy(), v);
- return manage(res);
}
-isl::aff aff::add_dims(isl::dim type, unsigned int n) const
-{
- auto res = isl_aff_add_dims(copy(), static_cast<enum isl_dim_type>(type), n);
- return manage(res);
+ast_expr_op_div::ast_expr_op_div(__isl_take isl_ast_expr *ptr)
+ : ast_expr_op(ptr) {}
+
+ast_expr_op_div &ast_expr_op_div::operator=(ast_expr_op_div obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-isl::aff aff::align_params(isl::space model) const
-{
- auto res = isl_aff_align_params(copy(), model.release());
- return manage(res);
+isl::ctx ast_expr_op_div::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
}
-isl::basic_set aff::bind(isl::id id) const
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_div &obj)
{
- auto res = isl_aff_bind_id(copy(), id.release());
- return manage(res);
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::aff aff::ceil() const
+// implementations for isl::ast_expr_op_eq
+ast_expr_op_eq::ast_expr_op_eq()
+ : ast_expr_op() {}
+
+ast_expr_op_eq::ast_expr_op_eq(const ast_expr_op_eq &obj)
+ : ast_expr_op(obj)
{
- auto res = isl_aff_ceil(copy());
- return manage(res);
}
-int aff::coefficient_sgn(isl::dim type, int pos) const
-{
- auto res = isl_aff_coefficient_sgn(get(), static_cast<enum isl_dim_type>(type), pos);
- return res;
+ast_expr_op_eq::ast_expr_op_eq(__isl_take isl_ast_expr *ptr)
+ : ast_expr_op(ptr) {}
+
+ast_expr_op_eq &ast_expr_op_eq::operator=(ast_expr_op_eq obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-isl_size aff::dim(isl::dim type) const
-{
- auto res = isl_aff_dim(get(), static_cast<enum isl_dim_type>(type));
- return res;
+isl::ctx ast_expr_op_eq::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
}
-isl::aff aff::div(isl::aff aff2) const
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_eq &obj)
{
- auto res = isl_aff_div(copy(), aff2.release());
- return manage(res);
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::aff aff::drop_dims(isl::dim type, unsigned int first, unsigned int n) const
+// implementations for isl::ast_expr_op_fdiv_q
+ast_expr_op_fdiv_q::ast_expr_op_fdiv_q()
+ : ast_expr_op() {}
+
+ast_expr_op_fdiv_q::ast_expr_op_fdiv_q(const ast_expr_op_fdiv_q &obj)
+ : ast_expr_op(obj)
{
- auto res = isl_aff_drop_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
}
-isl::basic_set aff::eq_basic_set(isl::aff aff2) const
-{
- auto res = isl_aff_eq_basic_set(copy(), aff2.release());
- return manage(res);
+ast_expr_op_fdiv_q::ast_expr_op_fdiv_q(__isl_take isl_ast_expr *ptr)
+ : ast_expr_op(ptr) {}
+
+ast_expr_op_fdiv_q &ast_expr_op_fdiv_q::operator=(ast_expr_op_fdiv_q obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-isl::set aff::eq_set(isl::aff aff2) const
-{
- auto res = isl_aff_eq_set(copy(), aff2.release());
- return manage(res);
+isl::ctx ast_expr_op_fdiv_q::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
}
-isl::val aff::eval(isl::point pnt) const
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_fdiv_q &obj)
{
- auto res = isl_aff_eval(copy(), pnt.release());
- return manage(res);
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-int aff::find_dim_by_name(isl::dim type, const std::string &name) const
+// implementations for isl::ast_expr_op_ge
+ast_expr_op_ge::ast_expr_op_ge()
+ : ast_expr_op() {}
+
+ast_expr_op_ge::ast_expr_op_ge(const ast_expr_op_ge &obj)
+ : ast_expr_op(obj)
{
- auto res = isl_aff_find_dim_by_name(get(), static_cast<enum isl_dim_type>(type), name.c_str());
- return res;
}
-isl::aff aff::floor() const
-{
- auto res = isl_aff_floor(copy());
- return manage(res);
+ast_expr_op_ge::ast_expr_op_ge(__isl_take isl_ast_expr *ptr)
+ : ast_expr_op(ptr) {}
+
+ast_expr_op_ge &ast_expr_op_ge::operator=(ast_expr_op_ge obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-isl::aff aff::from_range() const
-{
- auto res = isl_aff_from_range(copy());
- return manage(res);
+isl::ctx ast_expr_op_ge::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
}
-isl::basic_set aff::ge_basic_set(isl::aff aff2) const
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_ge &obj)
{
- auto res = isl_aff_ge_basic_set(copy(), aff2.release());
- return manage(res);
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::set aff::ge_set(isl::aff aff2) const
+// implementations for isl::ast_expr_op_gt
+ast_expr_op_gt::ast_expr_op_gt()
+ : ast_expr_op() {}
+
+ast_expr_op_gt::ast_expr_op_gt(const ast_expr_op_gt &obj)
+ : ast_expr_op(obj)
{
- auto res = isl_aff_ge_set(copy(), aff2.release());
- return manage(res);
}
-isl::val aff::get_coefficient_val(isl::dim type, int pos) const
+ast_expr_op_gt::ast_expr_op_gt(__isl_take isl_ast_expr *ptr)
+ : ast_expr_op(ptr) {}
+
+ast_expr_op_gt &ast_expr_op_gt::operator=(ast_expr_op_gt obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
+}
+
+isl::ctx ast_expr_op_gt::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
+}
+
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_gt &obj)
{
- auto res = isl_aff_get_coefficient_val(get(), static_cast<enum isl_dim_type>(type), pos);
- return manage(res);
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::val aff::get_constant_val() const
+// implementations for isl::ast_expr_op_le
+ast_expr_op_le::ast_expr_op_le()
+ : ast_expr_op() {}
+
+ast_expr_op_le::ast_expr_op_le(const ast_expr_op_le &obj)
+ : ast_expr_op(obj)
{
- auto res = isl_aff_get_constant_val(get());
- return manage(res);
}
-isl::val aff::get_denominator_val() const
+ast_expr_op_le::ast_expr_op_le(__isl_take isl_ast_expr *ptr)
+ : ast_expr_op(ptr) {}
+
+ast_expr_op_le &ast_expr_op_le::operator=(ast_expr_op_le obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
+}
+
+isl::ctx ast_expr_op_le::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
+}
+
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_le &obj)
{
- auto res = isl_aff_get_denominator_val(get());
- return manage(res);
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-std::string aff::get_dim_name(isl::dim type, unsigned int pos) const
+// implementations for isl::ast_expr_op_lt
+ast_expr_op_lt::ast_expr_op_lt()
+ : ast_expr_op() {}
+
+ast_expr_op_lt::ast_expr_op_lt(const ast_expr_op_lt &obj)
+ : ast_expr_op(obj)
{
- auto res = isl_aff_get_dim_name(get(), static_cast<enum isl_dim_type>(type), pos);
- std::string tmp(res);
- return tmp;
}
-isl::aff aff::get_div(int pos) const
+ast_expr_op_lt::ast_expr_op_lt(__isl_take isl_ast_expr *ptr)
+ : ast_expr_op(ptr) {}
+
+ast_expr_op_lt &ast_expr_op_lt::operator=(ast_expr_op_lt obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
+}
+
+isl::ctx ast_expr_op_lt::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
+}
+
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_lt &obj)
{
- auto res = isl_aff_get_div(get(), pos);
- return manage(res);
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::local_space aff::get_domain_local_space() const
+// implementations for isl::ast_expr_op_max
+ast_expr_op_max::ast_expr_op_max()
+ : ast_expr_op() {}
+
+ast_expr_op_max::ast_expr_op_max(const ast_expr_op_max &obj)
+ : ast_expr_op(obj)
{
- auto res = isl_aff_get_domain_local_space(get());
- return manage(res);
}
-isl::space aff::get_domain_space() const
+ast_expr_op_max::ast_expr_op_max(__isl_take isl_ast_expr *ptr)
+ : ast_expr_op(ptr) {}
+
+ast_expr_op_max &ast_expr_op_max::operator=(ast_expr_op_max obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
+}
+
+isl::ctx ast_expr_op_max::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
+}
+
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_max &obj)
{
- auto res = isl_aff_get_domain_space(get());
- return manage(res);
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-uint32_t aff::get_hash() const
+// implementations for isl::ast_expr_op_member
+ast_expr_op_member::ast_expr_op_member()
+ : ast_expr_op() {}
+
+ast_expr_op_member::ast_expr_op_member(const ast_expr_op_member &obj)
+ : ast_expr_op(obj)
{
- auto res = isl_aff_get_hash(get());
- return res;
}
-isl::local_space aff::get_local_space() const
-{
- auto res = isl_aff_get_local_space(get());
- return manage(res);
+ast_expr_op_member::ast_expr_op_member(__isl_take isl_ast_expr *ptr)
+ : ast_expr_op(ptr) {}
+
+ast_expr_op_member &ast_expr_op_member::operator=(ast_expr_op_member obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
+}
+
+isl::ctx ast_expr_op_member::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
}
-isl::space aff::get_space() const
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_member &obj)
{
- auto res = isl_aff_get_space(get());
- return manage(res);
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::aff aff::gist(isl::set context) const
-{
- auto res = isl_aff_gist(copy(), context.release());
- return manage(res);
-}
+// implementations for isl::ast_expr_op_min
+ast_expr_op_min::ast_expr_op_min()
+ : ast_expr_op() {}
-isl::aff aff::gist_params(isl::set context) const
+ast_expr_op_min::ast_expr_op_min(const ast_expr_op_min &obj)
+ : ast_expr_op(obj)
{
- auto res = isl_aff_gist_params(copy(), context.release());
- return manage(res);
}
-isl::basic_set aff::gt_basic_set(isl::aff aff2) const
-{
- auto res = isl_aff_gt_basic_set(copy(), aff2.release());
- return manage(res);
-}
+ast_expr_op_min::ast_expr_op_min(__isl_take isl_ast_expr *ptr)
+ : ast_expr_op(ptr) {}
-isl::set aff::gt_set(isl::aff aff2) const
-{
- auto res = isl_aff_gt_set(copy(), aff2.release());
- return manage(res);
+ast_expr_op_min &ast_expr_op_min::operator=(ast_expr_op_min obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-isl::aff aff::insert_dims(isl::dim type, unsigned int first, unsigned int n) const
-{
- auto res = isl_aff_insert_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+isl::ctx ast_expr_op_min::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
}
-boolean aff::involves_dims(isl::dim type, unsigned int first, unsigned int n) const
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_min &obj)
{
- auto res = isl_aff_involves_dims(get(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-boolean aff::involves_locals() const
+// implementations for isl::ast_expr_op_minus
+ast_expr_op_minus::ast_expr_op_minus()
+ : ast_expr_op() {}
+
+ast_expr_op_minus::ast_expr_op_minus(const ast_expr_op_minus &obj)
+ : ast_expr_op(obj)
{
- auto res = isl_aff_involves_locals(get());
- return manage(res);
}
-boolean aff::is_cst() const
-{
- auto res = isl_aff_is_cst(get());
- return manage(res);
+ast_expr_op_minus::ast_expr_op_minus(__isl_take isl_ast_expr *ptr)
+ : ast_expr_op(ptr) {}
+
+ast_expr_op_minus &ast_expr_op_minus::operator=(ast_expr_op_minus obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-boolean aff::is_nan() const
-{
- auto res = isl_aff_is_nan(get());
- return manage(res);
+isl::ctx ast_expr_op_minus::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
}
-isl::basic_set aff::le_basic_set(isl::aff aff2) const
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_minus &obj)
{
- auto res = isl_aff_le_basic_set(copy(), aff2.release());
- return manage(res);
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::set aff::le_set(isl::aff aff2) const
+// implementations for isl::ast_expr_op_mul
+ast_expr_op_mul::ast_expr_op_mul()
+ : ast_expr_op() {}
+
+ast_expr_op_mul::ast_expr_op_mul(const ast_expr_op_mul &obj)
+ : ast_expr_op(obj)
{
- auto res = isl_aff_le_set(copy(), aff2.release());
- return manage(res);
}
-isl::basic_set aff::lt_basic_set(isl::aff aff2) const
-{
- auto res = isl_aff_lt_basic_set(copy(), aff2.release());
- return manage(res);
+ast_expr_op_mul::ast_expr_op_mul(__isl_take isl_ast_expr *ptr)
+ : ast_expr_op(ptr) {}
+
+ast_expr_op_mul &ast_expr_op_mul::operator=(ast_expr_op_mul obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-isl::set aff::lt_set(isl::aff aff2) const
-{
- auto res = isl_aff_lt_set(copy(), aff2.release());
- return manage(res);
+isl::ctx ast_expr_op_mul::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
}
-isl::aff aff::mod(isl::val mod) const
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_mul &obj)
{
- auto res = isl_aff_mod_val(copy(), mod.release());
- return manage(res);
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::aff aff::move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const
+// implementations for isl::ast_expr_op_or
+ast_expr_op_or::ast_expr_op_or()
+ : ast_expr_op() {}
+
+ast_expr_op_or::ast_expr_op_or(const ast_expr_op_or &obj)
+ : ast_expr_op(obj)
{
- auto res = isl_aff_move_dims(copy(), static_cast<enum isl_dim_type>(dst_type), dst_pos, static_cast<enum isl_dim_type>(src_type), src_pos, n);
- return manage(res);
}
-isl::aff aff::mul(isl::aff aff2) const
-{
- auto res = isl_aff_mul(copy(), aff2.release());
- return manage(res);
+ast_expr_op_or::ast_expr_op_or(__isl_take isl_ast_expr *ptr)
+ : ast_expr_op(ptr) {}
+
+ast_expr_op_or &ast_expr_op_or::operator=(ast_expr_op_or obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-isl::aff aff::nan_on_domain(isl::local_space ls)
-{
- auto res = isl_aff_nan_on_domain(ls.release());
- return manage(res);
+isl::ctx ast_expr_op_or::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
}
-isl::aff aff::nan_on_domain_space(isl::space space)
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_or &obj)
{
- auto res = isl_aff_nan_on_domain_space(space.release());
- return manage(res);
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::set aff::ne_set(isl::aff aff2) const
+// implementations for isl::ast_expr_op_or_else
+ast_expr_op_or_else::ast_expr_op_or_else()
+ : ast_expr_op() {}
+
+ast_expr_op_or_else::ast_expr_op_or_else(const ast_expr_op_or_else &obj)
+ : ast_expr_op(obj)
{
- auto res = isl_aff_ne_set(copy(), aff2.release());
- return manage(res);
}
-isl::aff aff::neg() const
-{
- auto res = isl_aff_neg(copy());
- return manage(res);
+ast_expr_op_or_else::ast_expr_op_or_else(__isl_take isl_ast_expr *ptr)
+ : ast_expr_op(ptr) {}
+
+ast_expr_op_or_else &ast_expr_op_or_else::operator=(ast_expr_op_or_else obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-isl::basic_set aff::neg_basic_set() const
-{
- auto res = isl_aff_neg_basic_set(copy());
- return manage(res);
+isl::ctx ast_expr_op_or_else::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
}
-isl::aff aff::param_on_domain_space_id(isl::space space, isl::id id)
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_or_else &obj)
{
- auto res = isl_aff_param_on_domain_space_id(space.release(), id.release());
- return manage(res);
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-boolean aff::plain_is_equal(const isl::aff &aff2) const
+// implementations for isl::ast_expr_op_pdiv_q
+ast_expr_op_pdiv_q::ast_expr_op_pdiv_q()
+ : ast_expr_op() {}
+
+ast_expr_op_pdiv_q::ast_expr_op_pdiv_q(const ast_expr_op_pdiv_q &obj)
+ : ast_expr_op(obj)
{
- auto res = isl_aff_plain_is_equal(get(), aff2.get());
- return manage(res);
}
-boolean aff::plain_is_zero() const
-{
- auto res = isl_aff_plain_is_zero(get());
- return manage(res);
+ast_expr_op_pdiv_q::ast_expr_op_pdiv_q(__isl_take isl_ast_expr *ptr)
+ : ast_expr_op(ptr) {}
+
+ast_expr_op_pdiv_q &ast_expr_op_pdiv_q::operator=(ast_expr_op_pdiv_q obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-isl::aff aff::project_domain_on_params() const
-{
- auto res = isl_aff_project_domain_on_params(copy());
- return manage(res);
+isl::ctx ast_expr_op_pdiv_q::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
}
-isl::aff aff::pullback(isl::multi_aff ma) const
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_pdiv_q &obj)
{
- auto res = isl_aff_pullback_multi_aff(copy(), ma.release());
- return manage(res);
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::aff aff::pullback_aff(isl::aff aff2) const
+// implementations for isl::ast_expr_op_pdiv_r
+ast_expr_op_pdiv_r::ast_expr_op_pdiv_r()
+ : ast_expr_op() {}
+
+ast_expr_op_pdiv_r::ast_expr_op_pdiv_r(const ast_expr_op_pdiv_r &obj)
+ : ast_expr_op(obj)
{
- auto res = isl_aff_pullback_aff(copy(), aff2.release());
- return manage(res);
}
-isl::aff aff::scale(isl::val v) const
-{
- auto res = isl_aff_scale_val(copy(), v.release());
- return manage(res);
+ast_expr_op_pdiv_r::ast_expr_op_pdiv_r(__isl_take isl_ast_expr *ptr)
+ : ast_expr_op(ptr) {}
+
+ast_expr_op_pdiv_r &ast_expr_op_pdiv_r::operator=(ast_expr_op_pdiv_r obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-isl::aff aff::scale_down(isl::val v) const
-{
- auto res = isl_aff_scale_down_val(copy(), v.release());
- return manage(res);
+isl::ctx ast_expr_op_pdiv_r::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
}
-isl::aff aff::scale_down_ui(unsigned int f) const
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_pdiv_r &obj)
{
- auto res = isl_aff_scale_down_ui(copy(), f);
- return manage(res);
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::aff aff::set_coefficient_si(isl::dim type, int pos, int v) const
+// implementations for isl::ast_expr_op_select
+ast_expr_op_select::ast_expr_op_select()
+ : ast_expr_op() {}
+
+ast_expr_op_select::ast_expr_op_select(const ast_expr_op_select &obj)
+ : ast_expr_op(obj)
{
- auto res = isl_aff_set_coefficient_si(copy(), static_cast<enum isl_dim_type>(type), pos, v);
- return manage(res);
}
-isl::aff aff::set_coefficient_val(isl::dim type, int pos, isl::val v) const
-{
- auto res = isl_aff_set_coefficient_val(copy(), static_cast<enum isl_dim_type>(type), pos, v.release());
- return manage(res);
+ast_expr_op_select::ast_expr_op_select(__isl_take isl_ast_expr *ptr)
+ : ast_expr_op(ptr) {}
+
+ast_expr_op_select &ast_expr_op_select::operator=(ast_expr_op_select obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-isl::aff aff::set_constant_si(int v) const
-{
- auto res = isl_aff_set_constant_si(copy(), v);
- return manage(res);
+isl::ctx ast_expr_op_select::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
}
-isl::aff aff::set_constant_val(isl::val v) const
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_select &obj)
{
- auto res = isl_aff_set_constant_val(copy(), v.release());
- return manage(res);
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::aff aff::set_dim_id(isl::dim type, unsigned int pos, isl::id id) const
+// implementations for isl::ast_expr_op_sub
+ast_expr_op_sub::ast_expr_op_sub()
+ : ast_expr_op() {}
+
+ast_expr_op_sub::ast_expr_op_sub(const ast_expr_op_sub &obj)
+ : ast_expr_op(obj)
{
- auto res = isl_aff_set_dim_id(copy(), static_cast<enum isl_dim_type>(type), pos, id.release());
- return manage(res);
}
-isl::aff aff::set_tuple_id(isl::dim type, isl::id id) const
-{
- auto res = isl_aff_set_tuple_id(copy(), static_cast<enum isl_dim_type>(type), id.release());
- return manage(res);
+ast_expr_op_sub::ast_expr_op_sub(__isl_take isl_ast_expr *ptr)
+ : ast_expr_op(ptr) {}
+
+ast_expr_op_sub &ast_expr_op_sub::operator=(ast_expr_op_sub obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-isl::aff aff::sub(isl::aff aff2) const
-{
- auto res = isl_aff_sub(copy(), aff2.release());
- return manage(res);
+isl::ctx ast_expr_op_sub::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
}
-isl::aff aff::unbind_params_insert_domain(isl::multi_id domain) const
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_sub &obj)
{
- auto res = isl_aff_unbind_params_insert_domain(copy(), domain.release());
- return manage(res);
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::aff aff::val_on_domain_space(isl::space space, isl::val val)
+// implementations for isl::ast_expr_op_zdiv_r
+ast_expr_op_zdiv_r::ast_expr_op_zdiv_r()
+ : ast_expr_op() {}
+
+ast_expr_op_zdiv_r::ast_expr_op_zdiv_r(const ast_expr_op_zdiv_r &obj)
+ : ast_expr_op(obj)
{
- auto res = isl_aff_val_on_domain_space(space.release(), val.release());
- return manage(res);
}
-isl::aff aff::var_on_domain(isl::local_space ls, isl::dim type, unsigned int pos)
-{
- auto res = isl_aff_var_on_domain(ls.release(), static_cast<enum isl_dim_type>(type), pos);
- return manage(res);
+ast_expr_op_zdiv_r::ast_expr_op_zdiv_r(__isl_take isl_ast_expr *ptr)
+ : ast_expr_op(ptr) {}
+
+ast_expr_op_zdiv_r &ast_expr_op_zdiv_r::operator=(ast_expr_op_zdiv_r obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-isl::basic_set aff::zero_basic_set() const
-{
- auto res = isl_aff_zero_basic_set(copy());
- return manage(res);
+isl::ctx ast_expr_op_zdiv_r::ctx() const {
+ return isl::ctx(isl_ast_expr_get_ctx(ptr));
}
-isl::aff aff::zero_on_domain(isl::space space)
+inline std::ostream &operator<<(std::ostream &os, const ast_expr_op_zdiv_r &obj)
{
- auto res = isl_aff_zero_on_domain_space(space.release());
- return manage(res);
+ char *str = isl_ast_expr_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-// implementations for isl::aff_list
-aff_list manage(__isl_take isl_aff_list *ptr) {
- return aff_list(ptr);
+// implementations for isl::ast_node
+ast_node manage(__isl_take isl_ast_node *ptr) {
+ return ast_node(ptr);
}
-aff_list manage_copy(__isl_keep isl_aff_list *ptr) {
- ptr = isl_aff_list_copy(ptr);
- return aff_list(ptr);
+ast_node manage_copy(__isl_keep isl_ast_node *ptr) {
+ ptr = isl_ast_node_copy(ptr);
+ return ast_node(ptr);
}
-aff_list::aff_list()
+ast_node::ast_node()
: ptr(nullptr) {}
-aff_list::aff_list(const aff_list &obj)
+ast_node::ast_node(const ast_node &obj)
: ptr(nullptr)
{
ptr = obj.copy();
}
-
-aff_list::aff_list(__isl_take isl_aff_list *ptr)
+ast_node::ast_node(__isl_take isl_ast_node *ptr)
: ptr(ptr) {}
-
-aff_list &aff_list::operator=(aff_list obj) {
+ast_node &ast_node::operator=(ast_node obj) {
std::swap(this->ptr, obj.ptr);
return *this;
}
-aff_list::~aff_list() {
+ast_node::~ast_node() {
if (ptr)
- isl_aff_list_free(ptr);
+ isl_ast_node_free(ptr);
}
-__isl_give isl_aff_list *aff_list::copy() const & {
- return isl_aff_list_copy(ptr);
+__isl_give isl_ast_node *ast_node::copy() const & {
+ return isl_ast_node_copy(ptr);
}
-__isl_keep isl_aff_list *aff_list::get() const {
+__isl_keep isl_ast_node *ast_node::get() const {
return ptr;
}
-__isl_give isl_aff_list *aff_list::release() {
- isl_aff_list *tmp = ptr;
+__isl_give isl_ast_node *ast_node::release() {
+ isl_ast_node *tmp = ptr;
ptr = nullptr;
return tmp;
}
-bool aff_list::is_null() const {
+bool ast_node::is_null() const {
return ptr == nullptr;
}
-
-isl::ctx aff_list::ctx() const {
- return isl::ctx(isl_aff_list_get_ctx(ptr));
-}
-
-void aff_list::dump() const {
- isl_aff_list_dump(get());
-}
-
-
-isl::aff_list aff_list::add(isl::aff el) const
-{
- auto res = isl_aff_list_add(copy(), el.release());
- return manage(res);
-}
-
-isl::aff_list aff_list::alloc(isl::ctx ctx, int n)
-{
- auto res = isl_aff_list_alloc(ctx.release(), n);
- return manage(res);
-}
-
-isl::aff_list aff_list::clear() const
-{
- auto res = isl_aff_list_clear(copy());
- return manage(res);
-}
-
-isl::aff_list aff_list::concat(isl::aff_list list2) const
-{
- auto res = isl_aff_list_concat(copy(), list2.release());
- return manage(res);
-}
-
-isl::aff_list aff_list::drop(unsigned int first, unsigned int n) const
-{
- auto res = isl_aff_list_drop(copy(), first, n);
- return manage(res);
-}
-
-stat aff_list::foreach(const std::function<stat(aff)> &fn) const
+template <typename T, typename>
+boolean ast_node::isa_type(T subtype) const
{
- struct fn_data {
- const std::function<stat(aff)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_aff *arg_0, void *arg_1) -> isl_stat {
- auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
- return ret.release();
- };
- auto res = isl_aff_list_foreach(get(), fn_lambda, &fn_data);
- return manage(res);
+ if (is_null())
+ return boolean();
+ return isl_ast_node_get_type(get()) == subtype;
}
-
-isl::aff_list aff_list::from_aff(isl::aff el)
+template <class T>
+boolean ast_node::isa() const
{
- auto res = isl_aff_list_from_aff(el.release());
- return manage(res);
+ return isa_type<decltype(T::type)>(T::type);
}
-
-isl::aff aff_list::get_aff(int index) const
+template <class T>
+T ast_node::as() const
{
- auto res = isl_aff_list_get_aff(get(), index);
- return manage(res);
+ if (isa<T>().is_false())
+ isl_die(ctx().get(), isl_error_invalid, "not an object of the requested subtype", return T());
+ return T(copy());
}
-isl::aff aff_list::get_at(int index) const
-{
- auto res = isl_aff_list_get_at(get(), index);
- return manage(res);
+isl::ctx ast_node::ctx() const {
+ return isl::ctx(isl_ast_node_get_ctx(ptr));
}
-isl::aff_list aff_list::insert(unsigned int pos, isl::aff el) const
+isl::id ast_node::annotation() const
{
- auto res = isl_aff_list_insert(copy(), pos, el.release());
+ auto res = isl_ast_node_get_annotation(get());
return manage(res);
}
-isl_size aff_list::n_aff() const
+isl::id ast_node::get_annotation() const
{
- auto res = isl_aff_list_n_aff(get());
- return res;
+ return annotation();
}
-isl::aff_list aff_list::reverse() const
+std::string ast_node::to_C_str() const
{
- auto res = isl_aff_list_reverse(copy());
- return manage(res);
+ auto res = isl_ast_node_to_C_str(get());
+ std::string tmp(res);
+ free(res);
+ return tmp;
}
-isl::aff_list aff_list::set_aff(int index, isl::aff el) const
+isl::ast_node_list ast_node::to_list() const
{
- auto res = isl_aff_list_set_aff(copy(), index, el.release());
+ auto res = isl_ast_node_to_list(copy());
return manage(res);
}
-isl_size aff_list::size() const
+inline std::ostream &operator<<(std::ostream &os, const ast_node &obj)
{
- auto res = isl_aff_list_size(get());
- return res;
+ char *str = isl_ast_node_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::aff_list aff_list::swap(unsigned int pos1, unsigned int pos2) const
+// implementations for isl::ast_node_block
+ast_node_block::ast_node_block()
+ : ast_node() {}
+
+ast_node_block::ast_node_block(const ast_node_block &obj)
+ : ast_node(obj)
{
- auto res = isl_aff_list_swap(copy(), pos1, pos2);
- return manage(res);
}
-// implementations for isl::ast_build
-ast_build manage(__isl_take isl_ast_build *ptr) {
- return ast_build(ptr);
+ast_node_block::ast_node_block(__isl_take isl_ast_node *ptr)
+ : ast_node(ptr) {}
+
+ast_node_block &ast_node_block::operator=(ast_node_block obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-ast_build manage_copy(__isl_keep isl_ast_build *ptr) {
- ptr = isl_ast_build_copy(ptr);
- return ast_build(ptr);
+
+isl::ctx ast_node_block::ctx() const {
+ return isl::ctx(isl_ast_node_get_ctx(ptr));
}
-ast_build::ast_build()
- : ptr(nullptr) {}
+isl::ast_node_list ast_node_block::children() const
+{
+ auto res = isl_ast_node_block_get_children(get());
+ return manage(res);
+}
-ast_build::ast_build(const ast_build &obj)
- : ptr(nullptr)
+isl::ast_node_list ast_node_block::get_children() const
{
- ptr = obj.copy();
+ return children();
}
+inline std::ostream &operator<<(std::ostream &os, const ast_node_block &obj)
+{
+ char *str = isl_ast_node_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
+}
-ast_build::ast_build(__isl_take isl_ast_build *ptr)
- : ptr(ptr) {}
+// implementations for isl::ast_node_for
+ast_node_for::ast_node_for()
+ : ast_node() {}
-ast_build::ast_build(isl::ctx ctx)
+ast_node_for::ast_node_for(const ast_node_for &obj)
+ : ast_node(obj)
{
- auto res = isl_ast_build_alloc(ctx.release());
- ptr = res;
}
-ast_build &ast_build::operator=(ast_build obj) {
+ast_node_for::ast_node_for(__isl_take isl_ast_node *ptr)
+ : ast_node(ptr) {}
+
+ast_node_for &ast_node_for::operator=(ast_node_for obj) {
std::swap(this->ptr, obj.ptr);
return *this;
}
-ast_build::~ast_build() {
- if (ptr)
- isl_ast_build_free(ptr);
+isl::ctx ast_node_for::ctx() const {
+ return isl::ctx(isl_ast_node_get_ctx(ptr));
}
-__isl_give isl_ast_build *ast_build::copy() const & {
- return isl_ast_build_copy(ptr);
+isl::ast_node ast_node_for::body() const
+{
+ auto res = isl_ast_node_for_get_body(get());
+ return manage(res);
}
-__isl_keep isl_ast_build *ast_build::get() const {
- return ptr;
+isl::ast_node ast_node_for::get_body() const
+{
+ return body();
}
-__isl_give isl_ast_build *ast_build::release() {
- isl_ast_build *tmp = ptr;
- ptr = nullptr;
- return tmp;
+isl::ast_expr ast_node_for::cond() const
+{
+ auto res = isl_ast_node_for_get_cond(get());
+ return manage(res);
}
-bool ast_build::is_null() const {
- return ptr == nullptr;
+isl::ast_expr ast_node_for::get_cond() const
+{
+ return cond();
}
-
-isl::ctx ast_build::ctx() const {
- return isl::ctx(isl_ast_build_get_ctx(ptr));
+isl::ast_expr ast_node_for::inc() const
+{
+ auto res = isl_ast_node_for_get_inc(get());
+ return manage(res);
}
+isl::ast_expr ast_node_for::get_inc() const
+{
+ return inc();
+}
-isl::ast_expr ast_build::access_from(isl::multi_pw_aff mpa) const
+isl::ast_expr ast_node_for::init() const
{
- auto res = isl_ast_build_access_from_multi_pw_aff(get(), mpa.release());
+ auto res = isl_ast_node_for_get_init(get());
return manage(res);
}
-isl::ast_expr ast_build::access_from(isl::pw_multi_aff pma) const
+isl::ast_expr ast_node_for::get_init() const
{
- auto res = isl_ast_build_access_from_pw_multi_aff(get(), pma.release());
- return manage(res);
+ return init();
}
-isl::ast_node ast_build::ast_from_schedule(isl::union_map schedule) const
+boolean ast_node_for::is_degenerate() const
{
- auto res = isl_ast_build_ast_from_schedule(get(), schedule.release());
+ auto res = isl_ast_node_for_is_degenerate(get());
return manage(res);
}
-isl::ast_expr ast_build::call_from(isl::multi_pw_aff mpa) const
+isl::ast_expr ast_node_for::iterator() const
{
- auto res = isl_ast_build_call_from_multi_pw_aff(get(), mpa.release());
+ auto res = isl_ast_node_for_get_iterator(get());
return manage(res);
}
-isl::ast_expr ast_build::call_from(isl::pw_multi_aff pma) const
+isl::ast_expr ast_node_for::get_iterator() const
{
- auto res = isl_ast_build_call_from_pw_multi_aff(get(), pma.release());
- return manage(res);
+ return iterator();
}
-isl::ast_expr ast_build::expr_from(isl::pw_aff pa) const
+inline std::ostream &operator<<(std::ostream &os, const ast_node_for &obj)
{
- auto res = isl_ast_build_expr_from_pw_aff(get(), pa.release());
- return manage(res);
+ char *str = isl_ast_node_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::ast_expr ast_build::expr_from(isl::set set) const
+// implementations for isl::ast_node_if
+ast_node_if::ast_node_if()
+ : ast_node() {}
+
+ast_node_if::ast_node_if(const ast_node_if &obj)
+ : ast_node(obj)
{
- auto res = isl_ast_build_expr_from_set(get(), set.release());
- return manage(res);
}
-isl::ast_build ast_build::from_context(isl::set set)
+ast_node_if::ast_node_if(__isl_take isl_ast_node *ptr)
+ : ast_node(ptr) {}
+
+ast_node_if &ast_node_if::operator=(ast_node_if obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
+}
+
+isl::ctx ast_node_if::ctx() const {
+ return isl::ctx(isl_ast_node_get_ctx(ptr));
+}
+
+isl::ast_expr ast_node_if::cond() const
{
- auto res = isl_ast_build_from_context(set.release());
+ auto res = isl_ast_node_if_get_cond(get());
return manage(res);
}
-isl::union_map ast_build::get_schedule() const
+isl::ast_expr ast_node_if::get_cond() const
{
- auto res = isl_ast_build_get_schedule(get());
- return manage(res);
+ return cond();
}
-isl::space ast_build::get_schedule_space() const
+isl::ast_node ast_node_if::else_node() const
{
- auto res = isl_ast_build_get_schedule_space(get());
+ auto res = isl_ast_node_if_get_else_node(get());
return manage(res);
}
-isl::ast_node ast_build::node_from(isl::schedule schedule) const
+isl::ast_node ast_node_if::get_else_node() const
{
- auto res = isl_ast_build_node_from_schedule(get(), schedule.release());
- return manage(res);
+ return else_node();
}
-isl::ast_node ast_build::node_from_schedule_map(isl::union_map schedule) const
+boolean ast_node_if::has_else_node() const
{
- auto res = isl_ast_build_node_from_schedule_map(get(), schedule.release());
+ auto res = isl_ast_node_if_has_else_node(get());
return manage(res);
}
-isl::ast_build ast_build::restrict(isl::set set) const
+isl::ast_node ast_node_if::then_node() const
{
- auto res = isl_ast_build_restrict(copy(), set.release());
+ auto res = isl_ast_node_if_get_then_node(get());
return manage(res);
}
-// implementations for isl::ast_expr
-ast_expr manage(__isl_take isl_ast_expr *ptr) {
- return ast_expr(ptr);
+isl::ast_node ast_node_if::get_then_node() const
+{
+ return then_node();
}
-ast_expr manage_copy(__isl_keep isl_ast_expr *ptr) {
- ptr = isl_ast_expr_copy(ptr);
- return ast_expr(ptr);
+
+inline std::ostream &operator<<(std::ostream &os, const ast_node_if &obj)
+{
+ char *str = isl_ast_node_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-ast_expr::ast_expr()
+// implementations for isl::ast_node_list
+ast_node_list manage(__isl_take isl_ast_node_list *ptr) {
+ return ast_node_list(ptr);
+}
+ast_node_list manage_copy(__isl_keep isl_ast_node_list *ptr) {
+ ptr = isl_ast_node_list_copy(ptr);
+ return ast_node_list(ptr);
+}
+
+ast_node_list::ast_node_list()
: ptr(nullptr) {}
-ast_expr::ast_expr(const ast_expr &obj)
+ast_node_list::ast_node_list(const ast_node_list &obj)
: ptr(nullptr)
{
ptr = obj.copy();
}
-
-ast_expr::ast_expr(__isl_take isl_ast_expr *ptr)
+ast_node_list::ast_node_list(__isl_take isl_ast_node_list *ptr)
: ptr(ptr) {}
+ast_node_list::ast_node_list(isl::ctx ctx, int n)
+{
+ auto res = isl_ast_node_list_alloc(ctx.release(), n);
+ ptr = res;
+}
+
+ast_node_list::ast_node_list(isl::ast_node el)
+{
+ auto res = isl_ast_node_list_from_ast_node(el.release());
+ ptr = res;
+}
-ast_expr &ast_expr::operator=(ast_expr obj) {
+ast_node_list &ast_node_list::operator=(ast_node_list obj) {
std::swap(this->ptr, obj.ptr);
return *this;
}
-ast_expr::~ast_expr() {
+ast_node_list::~ast_node_list() {
if (ptr)
- isl_ast_expr_free(ptr);
+ isl_ast_node_list_free(ptr);
}
-__isl_give isl_ast_expr *ast_expr::copy() const & {
- return isl_ast_expr_copy(ptr);
+__isl_give isl_ast_node_list *ast_node_list::copy() const & {
+ return isl_ast_node_list_copy(ptr);
}
-__isl_keep isl_ast_expr *ast_expr::get() const {
+__isl_keep isl_ast_node_list *ast_node_list::get() const {
return ptr;
}
-__isl_give isl_ast_expr *ast_expr::release() {
- isl_ast_expr *tmp = ptr;
+__isl_give isl_ast_node_list *ast_node_list::release() {
+ isl_ast_node_list *tmp = ptr;
ptr = nullptr;
return tmp;
}
-bool ast_expr::is_null() const {
+bool ast_node_list::is_null() const {
return ptr == nullptr;
}
-
-isl::ctx ast_expr::ctx() const {
- return isl::ctx(isl_ast_expr_get_ctx(ptr));
-}
-
-void ast_expr::dump() const {
- isl_ast_expr_dump(get());
-}
-
-
-isl::ast_expr ast_expr::access(isl::ast_expr_list indices) const
-{
- auto res = isl_ast_expr_access(copy(), indices.release());
- return manage(res);
-}
-
-isl::ast_expr ast_expr::add(isl::ast_expr expr2) const
-{
- auto res = isl_ast_expr_add(copy(), expr2.release());
- return manage(res);
-}
-
-isl::ast_expr ast_expr::address_of() const
-{
- auto res = isl_ast_expr_address_of(copy());
- return manage(res);
+isl::ctx ast_node_list::ctx() const {
+ return isl::ctx(isl_ast_node_list_get_ctx(ptr));
}
-isl::ast_expr ast_expr::call(isl::ast_expr_list arguments) const
+isl::ast_node_list ast_node_list::add(isl::ast_node el) const
{
- auto res = isl_ast_expr_call(copy(), arguments.release());
+ auto res = isl_ast_node_list_add(copy(), el.release());
return manage(res);
}
-isl::ast_expr ast_expr::div(isl::ast_expr expr2) const
+isl::ast_node ast_node_list::at(int index) const
{
- auto res = isl_ast_expr_div(copy(), expr2.release());
+ auto res = isl_ast_node_list_get_at(get(), index);
return manage(res);
}
-isl::ast_expr ast_expr::eq(isl::ast_expr expr2) const
+isl::ast_node ast_node_list::get_at(int index) const
{
- auto res = isl_ast_expr_eq(copy(), expr2.release());
- return manage(res);
+ return at(index);
}
-isl::ast_expr ast_expr::from_id(isl::id id)
+isl::ast_node_list ast_node_list::clear() const
{
- auto res = isl_ast_expr_from_id(id.release());
+ auto res = isl_ast_node_list_clear(copy());
return manage(res);
}
-isl::ast_expr ast_expr::from_val(isl::val v)
+isl::ast_node_list ast_node_list::concat(isl::ast_node_list list2) const
{
- auto res = isl_ast_expr_from_val(v.release());
+ auto res = isl_ast_node_list_concat(copy(), list2.release());
return manage(res);
}
-isl::ast_expr ast_expr::ge(isl::ast_expr expr2) const
+isl::ast_node_list ast_node_list::drop(unsigned int first, unsigned int n) const
{
- auto res = isl_ast_expr_ge(copy(), expr2.release());
+ auto res = isl_ast_node_list_drop(copy(), first, n);
return manage(res);
}
-isl::id ast_expr::get_id() const
+stat ast_node_list::foreach(const std::function<stat(isl::ast_node)> &fn) const
{
- auto res = isl_ast_expr_get_id(get());
+ struct fn_data {
+ std::function<stat(isl::ast_node)> func;
+ } fn_data = { fn };
+ auto fn_lambda = [](isl_ast_node *arg_0, void *arg_1) -> isl_stat {
+ auto *data = static_cast<struct fn_data *>(arg_1);
+ auto ret = (data->func)(manage(arg_0));
+ return ret.release();
+ };
+ auto res = isl_ast_node_list_foreach(get(), fn_lambda, &fn_data);
return manage(res);
}
-isl::ast_expr ast_expr::get_op_arg(int pos) const
+isl::ast_node_list ast_node_list::insert(unsigned int pos, isl::ast_node el) const
{
- auto res = isl_ast_expr_get_op_arg(get(), pos);
+ auto res = isl_ast_node_list_insert(copy(), pos, el.release());
return manage(res);
}
-isl_size ast_expr::get_op_n_arg() const
-{
- auto res = isl_ast_expr_get_op_n_arg(get());
- return res;
-}
-
-isl::val ast_expr::get_val() const
+class size ast_node_list::size() const
{
- auto res = isl_ast_expr_get_val(get());
+ auto res = isl_ast_node_list_size(get());
return manage(res);
}
-isl::ast_expr ast_expr::gt(isl::ast_expr expr2) const
+inline std::ostream &operator<<(std::ostream &os, const ast_node_list &obj)
{
- auto res = isl_ast_expr_gt(copy(), expr2.release());
- return manage(res);
+ char *str = isl_ast_node_list_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::id ast_expr::id_get_id() const
-{
- auto res = isl_ast_expr_id_get_id(get());
- return manage(res);
-}
+// implementations for isl::ast_node_mark
+ast_node_mark::ast_node_mark()
+ : ast_node() {}
-isl::val ast_expr::int_get_val() const
+ast_node_mark::ast_node_mark(const ast_node_mark &obj)
+ : ast_node(obj)
{
- auto res = isl_ast_expr_int_get_val(get());
- return manage(res);
}
-boolean ast_expr::is_equal(const isl::ast_expr &expr2) const
-{
- auto res = isl_ast_expr_is_equal(get(), expr2.get());
- return manage(res);
-}
+ast_node_mark::ast_node_mark(__isl_take isl_ast_node *ptr)
+ : ast_node(ptr) {}
-isl::ast_expr ast_expr::le(isl::ast_expr expr2) const
-{
- auto res = isl_ast_expr_le(copy(), expr2.release());
- return manage(res);
+ast_node_mark &ast_node_mark::operator=(ast_node_mark obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-isl::ast_expr ast_expr::lt(isl::ast_expr expr2) const
-{
- auto res = isl_ast_expr_lt(copy(), expr2.release());
- return manage(res);
+isl::ctx ast_node_mark::ctx() const {
+ return isl::ctx(isl_ast_node_get_ctx(ptr));
}
-isl::ast_expr ast_expr::mul(isl::ast_expr expr2) const
+isl::id ast_node_mark::id() const
{
- auto res = isl_ast_expr_mul(copy(), expr2.release());
+ auto res = isl_ast_node_mark_get_id(get());
return manage(res);
}
-isl::ast_expr ast_expr::neg() const
+isl::id ast_node_mark::get_id() const
{
- auto res = isl_ast_expr_neg(copy());
- return manage(res);
+ return id();
}
-isl::ast_expr ast_expr::op_get_arg(int pos) const
+isl::ast_node ast_node_mark::node() const
{
- auto res = isl_ast_expr_op_get_arg(get(), pos);
+ auto res = isl_ast_node_mark_get_node(get());
return manage(res);
}
-isl_size ast_expr::op_get_n_arg() const
+isl::ast_node ast_node_mark::get_node() const
{
- auto res = isl_ast_expr_op_get_n_arg(get());
- return res;
+ return node();
}
-isl::ast_expr ast_expr::pdiv_q(isl::ast_expr expr2) const
+inline std::ostream &operator<<(std::ostream &os, const ast_node_mark &obj)
{
- auto res = isl_ast_expr_pdiv_q(copy(), expr2.release());
- return manage(res);
+ char *str = isl_ast_node_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::ast_expr ast_expr::pdiv_r(isl::ast_expr expr2) const
+// implementations for isl::ast_node_user
+ast_node_user::ast_node_user()
+ : ast_node() {}
+
+ast_node_user::ast_node_user(const ast_node_user &obj)
+ : ast_node(obj)
{
- auto res = isl_ast_expr_pdiv_r(copy(), expr2.release());
- return manage(res);
}
-isl::ast_expr ast_expr::set_op_arg(int pos, isl::ast_expr arg) const
-{
- auto res = isl_ast_expr_set_op_arg(copy(), pos, arg.release());
- return manage(res);
+ast_node_user::ast_node_user(__isl_take isl_ast_node *ptr)
+ : ast_node(ptr) {}
+
+ast_node_user &ast_node_user::operator=(ast_node_user obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
+}
+
+isl::ctx ast_node_user::ctx() const {
+ return isl::ctx(isl_ast_node_get_ctx(ptr));
}
-isl::ast_expr ast_expr::sub(isl::ast_expr expr2) const
+isl::ast_expr ast_node_user::expr() const
{
- auto res = isl_ast_expr_sub(copy(), expr2.release());
+ auto res = isl_ast_node_user_get_expr(get());
return manage(res);
}
-isl::ast_expr ast_expr::substitute_ids(isl::id_to_ast_expr id2expr) const
+isl::ast_expr ast_node_user::get_expr() const
{
- auto res = isl_ast_expr_substitute_ids(copy(), id2expr.release());
- return manage(res);
+ return expr();
}
-std::string ast_expr::to_C_str() const
+inline std::ostream &operator<<(std::ostream &os, const ast_node_user &obj)
{
- auto res = isl_ast_expr_to_C_str(get());
- std::string tmp(res);
- free(res);
- return tmp;
+ char *str = isl_ast_node_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-// implementations for isl::ast_expr_list
-ast_expr_list manage(__isl_take isl_ast_expr_list *ptr) {
- return ast_expr_list(ptr);
+// implementations for isl::basic_map
+basic_map manage(__isl_take isl_basic_map *ptr) {
+ return basic_map(ptr);
}
-ast_expr_list manage_copy(__isl_keep isl_ast_expr_list *ptr) {
- ptr = isl_ast_expr_list_copy(ptr);
- return ast_expr_list(ptr);
+basic_map manage_copy(__isl_keep isl_basic_map *ptr) {
+ ptr = isl_basic_map_copy(ptr);
+ return basic_map(ptr);
}
-ast_expr_list::ast_expr_list()
+basic_map::basic_map()
: ptr(nullptr) {}
-ast_expr_list::ast_expr_list(const ast_expr_list &obj)
+basic_map::basic_map(const basic_map &obj)
: ptr(nullptr)
{
ptr = obj.copy();
}
-
-ast_expr_list::ast_expr_list(__isl_take isl_ast_expr_list *ptr)
+basic_map::basic_map(__isl_take isl_basic_map *ptr)
: ptr(ptr) {}
+basic_map::basic_map(isl::ctx ctx, const std::string &str)
+{
+ auto res = isl_basic_map_read_from_str(ctx.release(), str.c_str());
+ ptr = res;
+}
-ast_expr_list &ast_expr_list::operator=(ast_expr_list obj) {
+basic_map &basic_map::operator=(basic_map obj) {
std::swap(this->ptr, obj.ptr);
return *this;
}
-ast_expr_list::~ast_expr_list() {
+basic_map::~basic_map() {
if (ptr)
- isl_ast_expr_list_free(ptr);
+ isl_basic_map_free(ptr);
}
-__isl_give isl_ast_expr_list *ast_expr_list::copy() const & {
- return isl_ast_expr_list_copy(ptr);
+__isl_give isl_basic_map *basic_map::copy() const & {
+ return isl_basic_map_copy(ptr);
}
-__isl_keep isl_ast_expr_list *ast_expr_list::get() const {
+__isl_keep isl_basic_map *basic_map::get() const {
return ptr;
}
-__isl_give isl_ast_expr_list *ast_expr_list::release() {
- isl_ast_expr_list *tmp = ptr;
+__isl_give isl_basic_map *basic_map::release() {
+ isl_basic_map *tmp = ptr;
ptr = nullptr;
return tmp;
}
-bool ast_expr_list::is_null() const {
+bool basic_map::is_null() const {
return ptr == nullptr;
}
-
-isl::ctx ast_expr_list::ctx() const {
- return isl::ctx(isl_ast_expr_list_get_ctx(ptr));
-}
-
-void ast_expr_list::dump() const {
- isl_ast_expr_list_dump(get());
+isl::ctx basic_map::ctx() const {
+ return isl::ctx(isl_basic_map_get_ctx(ptr));
}
-
-isl::ast_expr_list ast_expr_list::add(isl::ast_expr el) const
+isl::map basic_map::add_constraint(const isl::constraint &constraint) const
{
- auto res = isl_ast_expr_list_add(copy(), el.release());
- return manage(res);
+ return isl::map(*this).add_constraint(constraint);
}
-isl::ast_expr_list ast_expr_list::alloc(isl::ctx ctx, int n)
+isl::map basic_map::add_dims(isl::dim type, unsigned int n) const
{
- auto res = isl_ast_expr_list_alloc(ctx.release(), n);
- return manage(res);
+ return isl::map(*this).add_dims(type, n);
}
-isl::ast_expr_list ast_expr_list::clear() const
+isl::basic_map basic_map::affine_hull() const
{
- auto res = isl_ast_expr_list_clear(copy());
+ auto res = isl_basic_map_affine_hull(copy());
return manage(res);
}
-isl::ast_expr_list ast_expr_list::concat(isl::ast_expr_list list2) const
+isl::map basic_map::align_params(const isl::space &model) const
{
- auto res = isl_ast_expr_list_concat(copy(), list2.release());
- return manage(res);
+ return isl::map(*this).align_params(model);
}
-isl::ast_expr_list ast_expr_list::drop(unsigned int first, unsigned int n) const
+isl::basic_map basic_map::apply_domain(isl::basic_map bmap2) const
{
- auto res = isl_ast_expr_list_drop(copy(), first, n);
+ auto res = isl_basic_map_apply_domain(copy(), bmap2.release());
return manage(res);
}
-stat ast_expr_list::foreach(const std::function<stat(ast_expr)> &fn) const
+isl::map basic_map::apply_domain(const isl::map &map2) const
{
- struct fn_data {
- const std::function<stat(ast_expr)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_ast_expr *arg_0, void *arg_1) -> isl_stat {
- auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
- return ret.release();
- };
- auto res = isl_ast_expr_list_foreach(get(), fn_lambda, &fn_data);
- return manage(res);
+ return isl::map(*this).apply_domain(map2);
}
-isl::ast_expr_list ast_expr_list::from_ast_expr(isl::ast_expr el)
+isl::union_map basic_map::apply_domain(const isl::union_map &umap2) const
{
- auto res = isl_ast_expr_list_from_ast_expr(el.release());
- return manage(res);
+ return isl::map(*this).apply_domain(umap2);
}
-isl::ast_expr ast_expr_list::get_ast_expr(int index) const
+isl::basic_map basic_map::apply_range(isl::basic_map bmap2) const
{
- auto res = isl_ast_expr_list_get_ast_expr(get(), index);
+ auto res = isl_basic_map_apply_range(copy(), bmap2.release());
return manage(res);
}
-isl::ast_expr ast_expr_list::get_at(int index) const
+isl::map basic_map::apply_range(const isl::map &map2) const
{
- auto res = isl_ast_expr_list_get_at(get(), index);
- return manage(res);
+ return isl::map(*this).apply_range(map2);
}
-isl::ast_expr_list ast_expr_list::insert(unsigned int pos, isl::ast_expr el) const
+isl::union_map basic_map::apply_range(const isl::union_map &umap2) const
{
- auto res = isl_ast_expr_list_insert(copy(), pos, el.release());
- return manage(res);
+ return isl::map(*this).apply_range(umap2);
}
-isl_size ast_expr_list::n_ast_expr() const
+isl::map basic_map::as_map() const
{
- auto res = isl_ast_expr_list_n_ast_expr(get());
- return res;
+ return isl::map(*this).as_map();
}
-isl::ast_expr_list ast_expr_list::reverse() const
+isl::multi_union_pw_aff basic_map::as_multi_union_pw_aff() const
{
- auto res = isl_ast_expr_list_reverse(copy());
- return manage(res);
+ return isl::map(*this).as_multi_union_pw_aff();
}
-isl::ast_expr_list ast_expr_list::set_ast_expr(int index, isl::ast_expr el) const
+isl::pw_multi_aff basic_map::as_pw_multi_aff() const
{
- auto res = isl_ast_expr_list_set_ast_expr(copy(), index, el.release());
- return manage(res);
+ return isl::map(*this).as_pw_multi_aff();
}
-isl_size ast_expr_list::size() const
+isl::union_pw_multi_aff basic_map::as_union_pw_multi_aff() const
{
- auto res = isl_ast_expr_list_size(get());
- return res;
+ return isl::map(*this).as_union_pw_multi_aff();
}
-isl::ast_expr_list ast_expr_list::swap(unsigned int pos1, unsigned int pos2) const
+isl::basic_map_list basic_map::basic_map_list() const
{
- auto res = isl_ast_expr_list_swap(copy(), pos1, pos2);
- return manage(res);
-}
-
-// implementations for isl::ast_node
-ast_node manage(__isl_take isl_ast_node *ptr) {
- return ast_node(ptr);
-}
-ast_node manage_copy(__isl_keep isl_ast_node *ptr) {
- ptr = isl_ast_node_copy(ptr);
- return ast_node(ptr);
+ return isl::map(*this).basic_map_list();
}
-ast_node::ast_node()
- : ptr(nullptr) {}
-
-ast_node::ast_node(const ast_node &obj)
- : ptr(nullptr)
+isl::set basic_map::bind_domain(const isl::multi_id &tuple) const
{
- ptr = obj.copy();
-}
-
-
-ast_node::ast_node(__isl_take isl_ast_node *ptr)
- : ptr(ptr) {}
-
-
-ast_node &ast_node::operator=(ast_node obj) {
- std::swap(this->ptr, obj.ptr);
- return *this;
-}
-
-ast_node::~ast_node() {
- if (ptr)
- isl_ast_node_free(ptr);
-}
-
-__isl_give isl_ast_node *ast_node::copy() const & {
- return isl_ast_node_copy(ptr);
+ return isl::map(*this).bind_domain(tuple);
}
-__isl_keep isl_ast_node *ast_node::get() const {
- return ptr;
+isl::set basic_map::bind_range(const isl::multi_id &tuple) const
+{
+ return isl::map(*this).bind_range(tuple);
}
-__isl_give isl_ast_node *ast_node::release() {
- isl_ast_node *tmp = ptr;
- ptr = nullptr;
- return tmp;
+boolean basic_map::can_curry() const
+{
+ return isl::map(*this).can_curry();
}
-bool ast_node::is_null() const {
- return ptr == nullptr;
+isl::map basic_map::coalesce() const
+{
+ return isl::map(*this).coalesce();
}
-
-isl::ctx ast_node::ctx() const {
- return isl::ctx(isl_ast_node_get_ctx(ptr));
+isl::map basic_map::complement() const
+{
+ return isl::map(*this).complement();
}
-void ast_node::dump() const {
- isl_ast_node_dump(get());
+isl::union_map basic_map::compute_divs() const
+{
+ return isl::map(*this).compute_divs();
}
-
-isl::ast_node ast_node::alloc_user(isl::ast_expr expr)
+isl::map basic_map::curry() const
{
- auto res = isl_ast_node_alloc_user(expr.release());
- return manage(res);
+ return isl::map(*this).curry();
}
-isl::ast_node_list ast_node::block_get_children() const
+isl::basic_set basic_map::deltas() const
{
- auto res = isl_ast_node_block_get_children(get());
+ auto res = isl_basic_map_deltas(copy());
return manage(res);
}
-isl::ast_node ast_node::for_get_body() const
+isl::basic_map basic_map::detect_equalities() const
{
- auto res = isl_ast_node_for_get_body(get());
+ auto res = isl_basic_map_detect_equalities(copy());
return manage(res);
}
-isl::ast_expr ast_node::for_get_cond() const
+class size basic_map::dim(isl::dim type) const
{
- auto res = isl_ast_node_for_get_cond(get());
- return manage(res);
+ return isl::map(*this).dim(type);
}
-isl::ast_expr ast_node::for_get_inc() const
+isl::pw_aff basic_map::dim_max(int pos) const
{
- auto res = isl_ast_node_for_get_inc(get());
- return manage(res);
+ return isl::map(*this).dim_max(pos);
}
-isl::ast_expr ast_node::for_get_init() const
+isl::pw_aff basic_map::dim_min(int pos) const
{
- auto res = isl_ast_node_for_get_init(get());
- return manage(res);
+ return isl::map(*this).dim_min(pos);
}
-isl::ast_expr ast_node::for_get_iterator() const
+isl::basic_set basic_map::domain() const
{
- auto res = isl_ast_node_for_get_iterator(get());
+ auto res = isl_basic_map_domain(copy());
return manage(res);
}
-boolean ast_node::for_is_degenerate() const
+isl::map basic_map::domain_factor_domain() const
{
- auto res = isl_ast_node_for_is_degenerate(get());
- return manage(res);
+ return isl::map(*this).domain_factor_domain();
}
-isl::id ast_node::get_annotation() const
+isl::map basic_map::domain_factor_range() const
{
- auto res = isl_ast_node_get_annotation(get());
- return manage(res);
+ return isl::map(*this).domain_factor_range();
}
-isl::ast_expr ast_node::if_get_cond() const
+isl::map basic_map::domain_map() const
{
- auto res = isl_ast_node_if_get_cond(get());
- return manage(res);
+ return isl::map(*this).domain_map();
}
-isl::ast_node ast_node::if_get_else() const
+isl::union_pw_multi_aff basic_map::domain_map_union_pw_multi_aff() const
{
- auto res = isl_ast_node_if_get_else(get());
- return manage(res);
+ return isl::map(*this).domain_map_union_pw_multi_aff();
}
-isl::ast_node ast_node::if_get_else_node() const
+isl::map basic_map::domain_product(const isl::map &map2) const
{
- auto res = isl_ast_node_if_get_else_node(get());
- return manage(res);
+ return isl::map(*this).domain_product(map2);
}
-isl::ast_node ast_node::if_get_then() const
+isl::union_map basic_map::domain_product(const isl::union_map &umap2) const
{
- auto res = isl_ast_node_if_get_then(get());
- return manage(res);
+ return isl::map(*this).domain_product(umap2);
}
-isl::ast_node ast_node::if_get_then_node() const
+class size basic_map::domain_tuple_dim() const
{
- auto res = isl_ast_node_if_get_then_node(get());
- return manage(res);
+ return isl::map(*this).domain_tuple_dim();
}
-boolean ast_node::if_has_else() const
+isl::id basic_map::domain_tuple_id() const
{
- auto res = isl_ast_node_if_has_else(get());
- return manage(res);
+ return isl::map(*this).domain_tuple_id();
}
-boolean ast_node::if_has_else_node() const
+isl::map basic_map::eq_at(const isl::multi_pw_aff &mpa) const
{
- auto res = isl_ast_node_if_has_else_node(get());
- return manage(res);
+ return isl::map(*this).eq_at(mpa);
}
-isl::id ast_node::mark_get_id() const
+isl::union_map basic_map::eq_at(const isl::multi_union_pw_aff &mupa) const
{
- auto res = isl_ast_node_mark_get_id(get());
- return manage(res);
+ return isl::map(*this).eq_at(mupa);
}
-isl::ast_node ast_node::mark_get_node() const
+isl::basic_map basic_map::equal(isl::space space, unsigned int n_equal)
{
- auto res = isl_ast_node_mark_get_node(get());
+ auto res = isl_basic_map_equal(space.release(), n_equal);
return manage(res);
}
-isl::ast_node ast_node::set_annotation(isl::id annotation) const
+isl::basic_map basic_map::equate(isl::dim type1, int pos1, isl::dim type2, int pos2) const
{
- auto res = isl_ast_node_set_annotation(copy(), annotation.release());
+ auto res = isl_basic_map_equate(copy(), static_cast<enum isl_dim_type>(type1), pos1, static_cast<enum isl_dim_type>(type2), pos2);
return manage(res);
}
-std::string ast_node::to_C_str() const
+boolean basic_map::every_map(const std::function<boolean(isl::map)> &test) const
{
- auto res = isl_ast_node_to_C_str(get());
- std::string tmp(res);
- free(res);
- return tmp;
+ return isl::map(*this).every_map(test);
}
-isl::ast_expr ast_node::user_get_expr() const
+isl::map basic_map::extract_map(const isl::space &space) const
{
- auto res = isl_ast_node_user_get_expr(get());
- return manage(res);
-}
-
-// implementations for isl::ast_node_list
-ast_node_list manage(__isl_take isl_ast_node_list *ptr) {
- return ast_node_list(ptr);
-}
-ast_node_list manage_copy(__isl_keep isl_ast_node_list *ptr) {
- ptr = isl_ast_node_list_copy(ptr);
- return ast_node_list(ptr);
+ return isl::map(*this).extract_map(space);
}
-ast_node_list::ast_node_list()
- : ptr(nullptr) {}
-
-ast_node_list::ast_node_list(const ast_node_list &obj)
- : ptr(nullptr)
+isl::map basic_map::factor_domain() const
{
- ptr = obj.copy();
-}
-
-
-ast_node_list::ast_node_list(__isl_take isl_ast_node_list *ptr)
- : ptr(ptr) {}
-
-
-ast_node_list &ast_node_list::operator=(ast_node_list obj) {
- std::swap(this->ptr, obj.ptr);
- return *this;
-}
-
-ast_node_list::~ast_node_list() {
- if (ptr)
- isl_ast_node_list_free(ptr);
-}
-
-__isl_give isl_ast_node_list *ast_node_list::copy() const & {
- return isl_ast_node_list_copy(ptr);
+ return isl::map(*this).factor_domain();
}
-__isl_keep isl_ast_node_list *ast_node_list::get() const {
- return ptr;
+isl::map basic_map::factor_range() const
+{
+ return isl::map(*this).factor_range();
}
-__isl_give isl_ast_node_list *ast_node_list::release() {
- isl_ast_node_list *tmp = ptr;
- ptr = nullptr;
- return tmp;
+isl::basic_map basic_map::fix_si(isl::dim type, unsigned int pos, int value) const
+{
+ auto res = isl_basic_map_fix_si(copy(), static_cast<enum isl_dim_type>(type), pos, value);
+ return manage(res);
}
-bool ast_node_list::is_null() const {
- return ptr == nullptr;
+isl::basic_map basic_map::fix_val(isl::dim type, unsigned int pos, isl::val v) const
+{
+ auto res = isl_basic_map_fix_val(copy(), static_cast<enum isl_dim_type>(type), pos, v.release());
+ return manage(res);
}
-
-isl::ctx ast_node_list::ctx() const {
- return isl::ctx(isl_ast_node_list_get_ctx(ptr));
+isl::basic_map basic_map::fix_val(isl::dim type, unsigned int pos, long v) const
+{
+ return this->fix_val(type, pos, isl::val(ctx(), v));
}
-void ast_node_list::dump() const {
- isl_ast_node_list_dump(get());
+isl::union_map basic_map::fixed_power(const isl::val &exp) const
+{
+ return isl::map(*this).fixed_power(exp);
}
-
-isl::ast_node_list ast_node_list::add(isl::ast_node el) const
+isl::union_map basic_map::fixed_power(long exp) const
{
- auto res = isl_ast_node_list_add(copy(), el.release());
- return manage(res);
+ return this->fixed_power(isl::val(ctx(), exp));
}
-isl::ast_node_list ast_node_list::alloc(isl::ctx ctx, int n)
+isl::map basic_map::flat_range_product(const isl::map &map2) const
{
- auto res = isl_ast_node_list_alloc(ctx.release(), n);
- return manage(res);
+ return isl::map(*this).flat_range_product(map2);
}
-isl::ast_node_list ast_node_list::clear() const
+isl::union_map basic_map::flat_range_product(const isl::union_map &umap2) const
{
- auto res = isl_ast_node_list_clear(copy());
- return manage(res);
+ return isl::map(*this).flat_range_product(umap2);
}
-isl::ast_node_list ast_node_list::concat(isl::ast_node_list list2) const
+isl::basic_map basic_map::flatten() const
{
- auto res = isl_ast_node_list_concat(copy(), list2.release());
+ auto res = isl_basic_map_flatten(copy());
return manage(res);
}
-isl::ast_node_list ast_node_list::drop(unsigned int first, unsigned int n) const
+isl::basic_map basic_map::flatten_domain() const
{
- auto res = isl_ast_node_list_drop(copy(), first, n);
+ auto res = isl_basic_map_flatten_domain(copy());
return manage(res);
}
-stat ast_node_list::foreach(const std::function<stat(ast_node)> &fn) const
+isl::basic_map basic_map::flatten_range() const
{
- struct fn_data {
- const std::function<stat(ast_node)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_ast_node *arg_0, void *arg_1) -> isl_stat {
- auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
- return ret.release();
- };
- auto res = isl_ast_node_list_foreach(get(), fn_lambda, &fn_data);
+ auto res = isl_basic_map_flatten_range(copy());
return manage(res);
}
-isl::ast_node_list ast_node_list::from_ast_node(isl::ast_node el)
+isl::map basic_map::floordiv_val(const isl::val &d) const
{
- auto res = isl_ast_node_list_from_ast_node(el.release());
- return manage(res);
+ return isl::map(*this).floordiv_val(d);
}
-isl::ast_node ast_node_list::get_ast_node(int index) const
+isl::map basic_map::floordiv_val(long d) const
{
- auto res = isl_ast_node_list_get_ast_node(get(), index);
- return manage(res);
+ return this->floordiv_val(isl::val(ctx(), d));
}
-isl::ast_node ast_node_list::get_at(int index) const
+stat basic_map::foreach_basic_map(const std::function<stat(isl::basic_map)> &fn) const
{
- auto res = isl_ast_node_list_get_at(get(), index);
- return manage(res);
+ return isl::map(*this).foreach_basic_map(fn);
}
-isl::ast_node_list ast_node_list::insert(unsigned int pos, isl::ast_node el) const
+stat basic_map::foreach_map(const std::function<stat(isl::map)> &fn) const
{
- auto res = isl_ast_node_list_insert(copy(), pos, el.release());
- return manage(res);
+ return isl::map(*this).foreach_map(fn);
}
-isl_size ast_node_list::n_ast_node() const
+isl::basic_map basic_map::from_aff(isl::aff aff)
{
- auto res = isl_ast_node_list_n_ast_node(get());
- return res;
+ auto res = isl_basic_map_from_aff(aff.release());
+ return manage(res);
}
-isl::ast_node_list ast_node_list::reverse() const
+isl::basic_map basic_map::from_domain_and_range(isl::basic_set domain, isl::basic_set range)
{
- auto res = isl_ast_node_list_reverse(copy());
+ auto res = isl_basic_map_from_domain_and_range(domain.release(), range.release());
return manage(res);
}
-isl::ast_node_list ast_node_list::set_ast_node(int index, isl::ast_node el) const
+isl::basic_map basic_map::gist(isl::basic_map context) const
{
- auto res = isl_ast_node_list_set_ast_node(copy(), index, el.release());
+ auto res = isl_basic_map_gist(copy(), context.release());
return manage(res);
}
-isl_size ast_node_list::size() const
+isl::map basic_map::gist(const isl::map &context) const
{
- auto res = isl_ast_node_list_size(get());
- return res;
+ return isl::map(*this).gist(context);
}
-isl::ast_node_list ast_node_list::swap(unsigned int pos1, unsigned int pos2) const
+isl::union_map basic_map::gist(const isl::union_map &context) const
{
- auto res = isl_ast_node_list_swap(copy(), pos1, pos2);
- return manage(res);
+ return isl::map(*this).gist(context);
}
-// implementations for isl::basic_map
-basic_map manage(__isl_take isl_basic_map *ptr) {
- return basic_map(ptr);
-}
-basic_map manage_copy(__isl_keep isl_basic_map *ptr) {
- ptr = isl_basic_map_copy(ptr);
- return basic_map(ptr);
+isl::map basic_map::gist_domain(const isl::set &context) const
+{
+ return isl::map(*this).gist_domain(context);
}
-basic_map::basic_map()
- : ptr(nullptr) {}
-
-basic_map::basic_map(const basic_map &obj)
- : ptr(nullptr)
+isl::union_map basic_map::gist_domain(const isl::union_set &uset) const
{
- ptr = obj.copy();
+ return isl::map(*this).gist_domain(uset);
}
-
-basic_map::basic_map(__isl_take isl_basic_map *ptr)
- : ptr(ptr) {}
-
-basic_map::basic_map(isl::ctx ctx, const std::string &str)
+isl::map basic_map::gist_params(const isl::set &context) const
{
- auto res = isl_basic_map_read_from_str(ctx.release(), str.c_str());
- ptr = res;
+ return isl::map(*this).gist_params(context);
}
-basic_map &basic_map::operator=(basic_map obj) {
- std::swap(this->ptr, obj.ptr);
- return *this;
+isl::union_map basic_map::gist_range(const isl::union_set &uset) const
+{
+ return isl::map(*this).gist_range(uset);
}
-basic_map::~basic_map() {
- if (ptr)
- isl_basic_map_free(ptr);
+boolean basic_map::has_domain_tuple_id() const
+{
+ return isl::map(*this).has_domain_tuple_id();
}
-__isl_give isl_basic_map *basic_map::copy() const & {
- return isl_basic_map_copy(ptr);
+boolean basic_map::has_equal_space(const isl::map &map2) const
+{
+ return isl::map(*this).has_equal_space(map2);
}
-__isl_keep isl_basic_map *basic_map::get() const {
- return ptr;
+boolean basic_map::has_range_tuple_id() const
+{
+ return isl::map(*this).has_range_tuple_id();
}
-__isl_give isl_basic_map *basic_map::release() {
- isl_basic_map *tmp = ptr;
- ptr = nullptr;
- return tmp;
+boolean basic_map::has_tuple_id(isl::dim type) const
+{
+ return isl::map(*this).has_tuple_id(type);
}
-bool basic_map::is_null() const {
- return ptr == nullptr;
+boolean basic_map::has_tuple_name(isl::dim type) const
+{
+ return isl::map(*this).has_tuple_name(type);
}
-
-isl::ctx basic_map::ctx() const {
- return isl::ctx(isl_basic_map_get_ctx(ptr));
+isl::basic_map basic_map::intersect(isl::basic_map bmap2) const
+{
+ auto res = isl_basic_map_intersect(copy(), bmap2.release());
+ return manage(res);
}
-void basic_map::dump() const {
- isl_basic_map_dump(get());
+isl::map basic_map::intersect(const isl::map &map2) const
+{
+ return isl::map(*this).intersect(map2);
}
+isl::union_map basic_map::intersect(const isl::union_map &umap2) const
+{
+ return isl::map(*this).intersect(umap2);
+}
-isl::basic_map basic_map::add_constraint(isl::constraint constraint) const
+isl::basic_map basic_map::intersect_domain(isl::basic_set bset) const
{
- auto res = isl_basic_map_add_constraint(copy(), constraint.release());
+ auto res = isl_basic_map_intersect_domain(copy(), bset.release());
return manage(res);
}
-isl::basic_map basic_map::add_dims(isl::dim type, unsigned int n) const
+isl::map basic_map::intersect_domain(const isl::set &set) const
{
- auto res = isl_basic_map_add_dims(copy(), static_cast<enum isl_dim_type>(type), n);
- return manage(res);
+ return isl::map(*this).intersect_domain(set);
}
-isl::basic_map basic_map::affine_hull() const
+isl::union_map basic_map::intersect_domain(const isl::space &space) const
{
- auto res = isl_basic_map_affine_hull(copy());
- return manage(res);
+ return isl::map(*this).intersect_domain(space);
}
-isl::basic_map basic_map::align_params(isl::space model) const
+isl::union_map basic_map::intersect_domain(const isl::union_set &uset) const
{
- auto res = isl_basic_map_align_params(copy(), model.release());
- return manage(res);
+ return isl::map(*this).intersect_domain(uset);
}
-isl::basic_map basic_map::apply_domain(isl::basic_map bmap2) const
+isl::basic_map basic_map::intersect_domain(const isl::point &bset) const
{
- auto res = isl_basic_map_apply_domain(copy(), bmap2.release());
- return manage(res);
+ return this->intersect_domain(isl::basic_set(bset));
}
-isl::basic_map basic_map::apply_range(isl::basic_map bmap2) const
+isl::map basic_map::intersect_domain_factor_domain(const isl::map &factor) const
{
- auto res = isl_basic_map_apply_range(copy(), bmap2.release());
- return manage(res);
+ return isl::map(*this).intersect_domain_factor_domain(factor);
}
-boolean basic_map::can_curry() const
+isl::union_map basic_map::intersect_domain_factor_domain(const isl::union_map &factor) const
{
- auto res = isl_basic_map_can_curry(get());
- return manage(res);
+ return isl::map(*this).intersect_domain_factor_domain(factor);
}
-boolean basic_map::can_uncurry() const
+isl::map basic_map::intersect_domain_factor_range(const isl::map &factor) const
{
- auto res = isl_basic_map_can_uncurry(get());
- return manage(res);
+ return isl::map(*this).intersect_domain_factor_range(factor);
}
-boolean basic_map::can_zip() const
+isl::union_map basic_map::intersect_domain_factor_range(const isl::union_map &factor) const
{
- auto res = isl_basic_map_can_zip(get());
- return manage(res);
+ return isl::map(*this).intersect_domain_factor_range(factor);
}
-isl::basic_map basic_map::curry() const
+isl::map basic_map::intersect_params(const isl::set ¶ms) const
{
- auto res = isl_basic_map_curry(copy());
- return manage(res);
+ return isl::map(*this).intersect_params(params);
}
-isl::basic_set basic_map::deltas() const
+isl::basic_map basic_map::intersect_range(isl::basic_set bset) const
{
- auto res = isl_basic_map_deltas(copy());
+ auto res = isl_basic_map_intersect_range(copy(), bset.release());
return manage(res);
}
-isl::basic_map basic_map::deltas_map() const
+isl::map basic_map::intersect_range(const isl::set &set) const
{
- auto res = isl_basic_map_deltas_map(copy());
- return manage(res);
+ return isl::map(*this).intersect_range(set);
}
-isl::basic_map basic_map::detect_equalities() const
+isl::union_map basic_map::intersect_range(const isl::space &space) const
{
- auto res = isl_basic_map_detect_equalities(copy());
- return manage(res);
+ return isl::map(*this).intersect_range(space);
}
-isl_size basic_map::dim(isl::dim type) const
+isl::union_map basic_map::intersect_range(const isl::union_set &uset) const
{
- auto res = isl_basic_map_dim(get(), static_cast<enum isl_dim_type>(type));
- return res;
+ return isl::map(*this).intersect_range(uset);
}
-isl::basic_set basic_map::domain() const
+isl::basic_map basic_map::intersect_range(const isl::point &bset) const
{
- auto res = isl_basic_map_domain(copy());
- return manage(res);
+ return this->intersect_range(isl::basic_set(bset));
}
-isl::basic_map basic_map::domain_map() const
+isl::map basic_map::intersect_range_factor_domain(const isl::map &factor) const
{
- auto res = isl_basic_map_domain_map(copy());
- return manage(res);
+ return isl::map(*this).intersect_range_factor_domain(factor);
}
-isl::basic_map basic_map::domain_product(isl::basic_map bmap2) const
+isl::union_map basic_map::intersect_range_factor_domain(const isl::union_map &factor) const
{
- auto res = isl_basic_map_domain_product(copy(), bmap2.release());
- return manage(res);
+ return isl::map(*this).intersect_range_factor_domain(factor);
}
-isl::basic_map basic_map::drop_constraints_involving_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::map basic_map::intersect_range_factor_range(const isl::map &factor) const
{
- auto res = isl_basic_map_drop_constraints_involving_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::map(*this).intersect_range_factor_range(factor);
}
-isl::basic_map basic_map::drop_constraints_not_involving_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::union_map basic_map::intersect_range_factor_range(const isl::union_map &factor) const
{
- auto res = isl_basic_map_drop_constraints_not_involving_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::map(*this).intersect_range_factor_range(factor);
}
-isl::basic_map basic_map::drop_unused_params() const
+boolean basic_map::involves_dims(isl::dim type, unsigned int first, unsigned int n) const
{
- auto res = isl_basic_map_drop_unused_params(copy());
- return manage(res);
+ return isl::map(*this).involves_dims(type, first, n);
}
-isl::basic_map basic_map::eliminate(isl::dim type, unsigned int first, unsigned int n) const
+boolean basic_map::is_bijective() const
{
- auto res = isl_basic_map_eliminate(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::map(*this).is_bijective();
}
-isl::basic_map basic_map::empty(isl::space space)
+boolean basic_map::is_disjoint(const isl::map &map2) const
{
- auto res = isl_basic_map_empty(space.release());
- return manage(res);
+ return isl::map(*this).is_disjoint(map2);
}
-isl::basic_map basic_map::equal(isl::space space, unsigned int n_equal)
+boolean basic_map::is_disjoint(const isl::union_map &umap2) const
{
- auto res = isl_basic_map_equal(space.release(), n_equal);
- return manage(res);
+ return isl::map(*this).is_disjoint(umap2);
}
-isl::mat basic_map::equalities_matrix(isl::dim c1, isl::dim c2, isl::dim c3, isl::dim c4, isl::dim c5) const
+boolean basic_map::is_empty() const
{
- auto res = isl_basic_map_equalities_matrix(get(), static_cast<enum isl_dim_type>(c1), static_cast<enum isl_dim_type>(c2), static_cast<enum isl_dim_type>(c3), static_cast<enum isl_dim_type>(c4), static_cast<enum isl_dim_type>(c5));
+ auto res = isl_basic_map_is_empty(get());
return manage(res);
}
-isl::basic_map basic_map::equate(isl::dim type1, int pos1, isl::dim type2, int pos2) const
+boolean basic_map::is_equal(const isl::basic_map &bmap2) const
{
- auto res = isl_basic_map_equate(copy(), static_cast<enum isl_dim_type>(type1), pos1, static_cast<enum isl_dim_type>(type2), pos2);
+ auto res = isl_basic_map_is_equal(get(), bmap2.get());
return manage(res);
}
-int basic_map::find_dim_by_name(isl::dim type, const std::string &name) const
+boolean basic_map::is_equal(const isl::map &map2) const
{
- auto res = isl_basic_map_find_dim_by_name(get(), static_cast<enum isl_dim_type>(type), name.c_str());
- return res;
+ return isl::map(*this).is_equal(map2);
}
-isl::basic_map basic_map::fix_si(isl::dim type, unsigned int pos, int value) const
+boolean basic_map::is_equal(const isl::union_map &umap2) const
{
- auto res = isl_basic_map_fix_si(copy(), static_cast<enum isl_dim_type>(type), pos, value);
- return manage(res);
+ return isl::map(*this).is_equal(umap2);
}
-isl::basic_map basic_map::fix_val(isl::dim type, unsigned int pos, isl::val v) const
+boolean basic_map::is_injective() const
{
- auto res = isl_basic_map_fix_val(copy(), static_cast<enum isl_dim_type>(type), pos, v.release());
- return manage(res);
+ return isl::map(*this).is_injective();
}
-isl::basic_map basic_map::flat_product(isl::basic_map bmap2) const
+boolean basic_map::is_single_valued() const
{
- auto res = isl_basic_map_flat_product(copy(), bmap2.release());
- return manage(res);
+ return isl::map(*this).is_single_valued();
}
-isl::basic_map basic_map::flat_range_product(isl::basic_map bmap2) const
+boolean basic_map::is_strict_subset(const isl::map &map2) const
{
- auto res = isl_basic_map_flat_range_product(copy(), bmap2.release());
- return manage(res);
+ return isl::map(*this).is_strict_subset(map2);
}
-isl::basic_map basic_map::flatten() const
+boolean basic_map::is_strict_subset(const isl::union_map &umap2) const
{
- auto res = isl_basic_map_flatten(copy());
- return manage(res);
+ return isl::map(*this).is_strict_subset(umap2);
}
-isl::basic_map basic_map::flatten_domain() const
+boolean basic_map::is_subset(const isl::basic_map &bmap2) const
{
- auto res = isl_basic_map_flatten_domain(copy());
+ auto res = isl_basic_map_is_subset(get(), bmap2.get());
return manage(res);
}
-isl::basic_map basic_map::flatten_range() const
+boolean basic_map::is_subset(const isl::map &map2) const
{
- auto res = isl_basic_map_flatten_range(copy());
- return manage(res);
+ return isl::map(*this).is_subset(map2);
}
-stat basic_map::foreach_constraint(const std::function<stat(constraint)> &fn) const
+boolean basic_map::is_subset(const isl::union_map &umap2) const
{
- struct fn_data {
- const std::function<stat(constraint)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_constraint *arg_0, void *arg_1) -> isl_stat {
- auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
- return ret.release();
- };
- auto res = isl_basic_map_foreach_constraint(get(), fn_lambda, &fn_data);
- return manage(res);
+ return isl::map(*this).is_subset(umap2);
}
-isl::basic_map basic_map::from_aff(isl::aff aff)
+boolean basic_map::isa_map() const
{
- auto res = isl_basic_map_from_aff(aff.release());
- return manage(res);
+ return isl::map(*this).isa_map();
}
-isl::basic_map basic_map::from_aff_list(isl::space domain_space, isl::aff_list list)
+isl::map basic_map::lex_ge_at(const isl::multi_pw_aff &mpa) const
{
- auto res = isl_basic_map_from_aff_list(domain_space.release(), list.release());
- return manage(res);
+ return isl::map(*this).lex_ge_at(mpa);
}
-isl::basic_map basic_map::from_constraint(isl::constraint constraint)
+isl::map basic_map::lex_gt_at(const isl::multi_pw_aff &mpa) const
{
- auto res = isl_basic_map_from_constraint(constraint.release());
- return manage(res);
+ return isl::map(*this).lex_gt_at(mpa);
}
-isl::basic_map basic_map::from_domain(isl::basic_set bset)
+isl::map basic_map::lex_le_at(const isl::multi_pw_aff &mpa) const
{
- auto res = isl_basic_map_from_domain(bset.release());
- return manage(res);
+ return isl::map(*this).lex_le_at(mpa);
}
-isl::basic_map basic_map::from_domain_and_range(isl::basic_set domain, isl::basic_set range)
+isl::map basic_map::lex_lt_at(const isl::multi_pw_aff &mpa) const
{
- auto res = isl_basic_map_from_domain_and_range(domain.release(), range.release());
- return manage(res);
+ return isl::map(*this).lex_lt_at(mpa);
}
-isl::basic_map basic_map::from_multi_aff(isl::multi_aff maff)
+isl::map basic_map::lexmax() const
{
- auto res = isl_basic_map_from_multi_aff(maff.release());
+ auto res = isl_basic_map_lexmax(copy());
return manage(res);
}
-isl::basic_map basic_map::from_qpolynomial(isl::qpolynomial qp)
+isl::pw_multi_aff basic_map::lexmax_pw_multi_aff() const
{
- auto res = isl_basic_map_from_qpolynomial(qp.release());
- return manage(res);
+ return isl::map(*this).lexmax_pw_multi_aff();
}
-isl::basic_map basic_map::from_range(isl::basic_set bset)
+isl::map basic_map::lexmin() const
{
- auto res = isl_basic_map_from_range(bset.release());
+ auto res = isl_basic_map_lexmin(copy());
return manage(res);
}
-isl::constraint_list basic_map::get_constraint_list() const
+isl::pw_multi_aff basic_map::lexmin_pw_multi_aff() const
{
- auto res = isl_basic_map_get_constraint_list(get());
- return manage(res);
+ return isl::map(*this).lexmin_pw_multi_aff();
}
-std::string basic_map::get_dim_name(isl::dim type, unsigned int pos) const
+isl::map basic_map::lower_bound(const isl::multi_pw_aff &lower) const
{
- auto res = isl_basic_map_get_dim_name(get(), static_cast<enum isl_dim_type>(type), pos);
- std::string tmp(res);
- return tmp;
+ return isl::map(*this).lower_bound(lower);
}
-isl::aff basic_map::get_div(int pos) const
+isl::map basic_map::lower_bound_si(isl::dim type, unsigned int pos, int value) const
{
- auto res = isl_basic_map_get_div(get(), pos);
- return manage(res);
+ return isl::map(*this).lower_bound_si(type, pos, value);
}
-isl::local_space basic_map::get_local_space() const
+isl::map_list basic_map::map_list() const
{
- auto res = isl_basic_map_get_local_space(get());
- return manage(res);
+ return isl::map(*this).map_list();
}
-isl::space basic_map::get_space() const
+isl::multi_pw_aff basic_map::max_multi_pw_aff() const
{
- auto res = isl_basic_map_get_space(get());
- return manage(res);
+ return isl::map(*this).max_multi_pw_aff();
}
-std::string basic_map::get_tuple_name(isl::dim type) const
+isl::multi_pw_aff basic_map::min_multi_pw_aff() const
{
- auto res = isl_basic_map_get_tuple_name(get(), static_cast<enum isl_dim_type>(type));
- std::string tmp(res);
- return tmp;
+ return isl::map(*this).min_multi_pw_aff();
}
-isl::basic_map basic_map::gist(isl::basic_map context) const
+isl::map basic_map::move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const
{
- auto res = isl_basic_map_gist(copy(), context.release());
- return manage(res);
+ return isl::map(*this).move_dims(dst_type, dst_pos, src_type, src_pos, n);
}
-isl::basic_map basic_map::gist_domain(isl::basic_set context) const
+class size basic_map::n_basic_map() const
{
- auto res = isl_basic_map_gist_domain(copy(), context.release());
- return manage(res);
+ return isl::map(*this).n_basic_map();
}
-boolean basic_map::has_dim_id(isl::dim type, unsigned int pos) const
+isl::map basic_map::order_lt(isl::dim type1, int pos1, isl::dim type2, int pos2) const
{
- auto res = isl_basic_map_has_dim_id(get(), static_cast<enum isl_dim_type>(type), pos);
- return manage(res);
+ return isl::map(*this).order_lt(type1, pos1, type2, pos2);
}
-isl::basic_map basic_map::identity(isl::space space)
+isl::set basic_map::params() const
{
- auto res = isl_basic_map_identity(space.release());
- return manage(res);
+ return isl::map(*this).params();
}
-boolean basic_map::image_is_bounded() const
+isl::val basic_map::plain_get_val_if_fixed(isl::dim type, unsigned int pos) const
{
- auto res = isl_basic_map_image_is_bounded(get());
+ auto res = isl_basic_map_plain_get_val_if_fixed(get(), static_cast<enum isl_dim_type>(type), pos);
return manage(res);
}
-isl::mat basic_map::inequalities_matrix(isl::dim c1, isl::dim c2, isl::dim c3, isl::dim c4, isl::dim c5) const
+isl::basic_map basic_map::polyhedral_hull() const
{
- auto res = isl_basic_map_inequalities_matrix(get(), static_cast<enum isl_dim_type>(c1), static_cast<enum isl_dim_type>(c2), static_cast<enum isl_dim_type>(c3), static_cast<enum isl_dim_type>(c4), static_cast<enum isl_dim_type>(c5));
- return manage(res);
+ return isl::map(*this).polyhedral_hull();
}
-isl::basic_map basic_map::insert_dims(isl::dim type, unsigned int pos, unsigned int n) const
+isl::map basic_map::preimage_domain(const isl::multi_aff &ma) const
{
- auto res = isl_basic_map_insert_dims(copy(), static_cast<enum isl_dim_type>(type), pos, n);
- return manage(res);
+ return isl::map(*this).preimage_domain(ma);
}
-isl::basic_map basic_map::intersect(isl::basic_map bmap2) const
+isl::map basic_map::preimage_domain(const isl::multi_pw_aff &mpa) const
{
- auto res = isl_basic_map_intersect(copy(), bmap2.release());
- return manage(res);
+ return isl::map(*this).preimage_domain(mpa);
}
-isl::basic_map basic_map::intersect_domain(isl::basic_set bset) const
+isl::map basic_map::preimage_domain(const isl::pw_multi_aff &pma) const
{
- auto res = isl_basic_map_intersect_domain(copy(), bset.release());
- return manage(res);
+ return isl::map(*this).preimage_domain(pma);
}
-isl::basic_map basic_map::intersect_range(isl::basic_set bset) const
+isl::union_map basic_map::preimage_domain(const isl::union_pw_multi_aff &upma) const
{
- auto res = isl_basic_map_intersect_range(copy(), bset.release());
- return manage(res);
+ return isl::map(*this).preimage_domain(upma);
}
-boolean basic_map::involves_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::map basic_map::preimage_range(const isl::multi_aff &ma) const
{
- auto res = isl_basic_map_involves_dims(get(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::map(*this).preimage_range(ma);
}
-boolean basic_map::is_disjoint(const isl::basic_map &bmap2) const
+isl::map basic_map::preimage_range(const isl::pw_multi_aff &pma) const
{
- auto res = isl_basic_map_is_disjoint(get(), bmap2.get());
- return manage(res);
+ return isl::map(*this).preimage_range(pma);
}
-boolean basic_map::is_empty() const
+isl::union_map basic_map::preimage_range(const isl::union_pw_multi_aff &upma) const
{
- auto res = isl_basic_map_is_empty(get());
- return manage(res);
+ return isl::map(*this).preimage_range(upma);
}
-boolean basic_map::is_equal(const isl::basic_map &bmap2) const
+isl::map basic_map::product(const isl::map &map2) const
{
- auto res = isl_basic_map_is_equal(get(), bmap2.get());
- return manage(res);
+ return isl::map(*this).product(map2);
}
-boolean basic_map::is_rational() const
+isl::union_map basic_map::product(const isl::union_map &umap2) const
{
- auto res = isl_basic_map_is_rational(get());
- return manage(res);
+ return isl::map(*this).product(umap2);
}
-boolean basic_map::is_single_valued() const
+isl::map basic_map::project_out(isl::dim type, unsigned int first, unsigned int n) const
{
- auto res = isl_basic_map_is_single_valued(get());
- return manage(res);
+ return isl::map(*this).project_out(type, first, n);
}
-boolean basic_map::is_strict_subset(const isl::basic_map &bmap2) const
+isl::map basic_map::project_out_all_params() const
{
- auto res = isl_basic_map_is_strict_subset(get(), bmap2.get());
- return manage(res);
+ return isl::map(*this).project_out_all_params();
}
-boolean basic_map::is_subset(const isl::basic_map &bmap2) const
+isl::set basic_map::range() const
{
- auto res = isl_basic_map_is_subset(get(), bmap2.get());
- return manage(res);
+ return isl::map(*this).range();
}
-boolean basic_map::is_universe() const
+isl::map basic_map::range_factor_domain() const
{
- auto res = isl_basic_map_is_universe(get());
- return manage(res);
+ return isl::map(*this).range_factor_domain();
}
-isl::basic_map basic_map::less_at(isl::space space, unsigned int pos)
+isl::map basic_map::range_factor_range() const
{
- auto res = isl_basic_map_less_at(space.release(), pos);
- return manage(res);
+ return isl::map(*this).range_factor_range();
}
-isl::map basic_map::lexmax() const
+isl::fixed_box basic_map::range_lattice_tile() const
{
- auto res = isl_basic_map_lexmax(copy());
- return manage(res);
+ return isl::map(*this).range_lattice_tile();
}
-isl::map basic_map::lexmin() const
+isl::map basic_map::range_map() const
{
- auto res = isl_basic_map_lexmin(copy());
- return manage(res);
+ return isl::map(*this).range_map();
}
-isl::pw_multi_aff basic_map::lexmin_pw_multi_aff() const
+isl::map basic_map::range_product(const isl::map &map2) const
{
- auto res = isl_basic_map_lexmin_pw_multi_aff(copy());
- return manage(res);
+ return isl::map(*this).range_product(map2);
}
-isl::basic_map basic_map::lower_bound_si(isl::dim type, unsigned int pos, int value) const
+isl::union_map basic_map::range_product(const isl::union_map &umap2) const
{
- auto res = isl_basic_map_lower_bound_si(copy(), static_cast<enum isl_dim_type>(type), pos, value);
- return manage(res);
+ return isl::map(*this).range_product(umap2);
}
-isl::basic_map basic_map::more_at(isl::space space, unsigned int pos)
+isl::map basic_map::range_reverse() const
{
- auto res = isl_basic_map_more_at(space.release(), pos);
- return manage(res);
+ return isl::map(*this).range_reverse();
}
-isl::basic_map basic_map::move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const
+isl::fixed_box basic_map::range_simple_fixed_box_hull() const
{
- auto res = isl_basic_map_move_dims(copy(), static_cast<enum isl_dim_type>(dst_type), dst_pos, static_cast<enum isl_dim_type>(src_type), src_pos, n);
- return manage(res);
+ return isl::map(*this).range_simple_fixed_box_hull();
}
-isl_size basic_map::n_constraint() const
+class size basic_map::range_tuple_dim() const
{
- auto res = isl_basic_map_n_constraint(get());
- return res;
+ return isl::map(*this).range_tuple_dim();
}
-isl::basic_map basic_map::nat_universe(isl::space space)
+isl::id basic_map::range_tuple_id() const
{
- auto res = isl_basic_map_nat_universe(space.release());
- return manage(res);
+ return isl::map(*this).range_tuple_id();
}
-isl::basic_map basic_map::neg() const
+isl::basic_map basic_map::reverse() const
{
- auto res = isl_basic_map_neg(copy());
+ auto res = isl_basic_map_reverse(copy());
return manage(res);
}
-isl::basic_map basic_map::order_ge(isl::dim type1, int pos1, isl::dim type2, int pos2) const
+isl::basic_map basic_map::sample() const
{
- auto res = isl_basic_map_order_ge(copy(), static_cast<enum isl_dim_type>(type1), pos1, static_cast<enum isl_dim_type>(type2), pos2);
+ auto res = isl_basic_map_sample(copy());
return manage(res);
}
-isl::basic_map basic_map::order_gt(isl::dim type1, int pos1, isl::dim type2, int pos2) const
+isl::map basic_map::set_domain_tuple(const isl::id &id) const
{
- auto res = isl_basic_map_order_gt(copy(), static_cast<enum isl_dim_type>(type1), pos1, static_cast<enum isl_dim_type>(type2), pos2);
- return manage(res);
+ return isl::map(*this).set_domain_tuple(id);
}
-isl::val basic_map::plain_get_val_if_fixed(isl::dim type, unsigned int pos) const
+isl::map basic_map::set_domain_tuple(const std::string &id) const
{
- auto res = isl_basic_map_plain_get_val_if_fixed(get(), static_cast<enum isl_dim_type>(type), pos);
- return manage(res);
+ return this->set_domain_tuple(isl::id(ctx(), id));
}
-boolean basic_map::plain_is_empty() const
+isl::map basic_map::set_range_tuple(const isl::id &id) const
{
- auto res = isl_basic_map_plain_is_empty(get());
- return manage(res);
+ return isl::map(*this).set_range_tuple(id);
}
-boolean basic_map::plain_is_universe() const
+isl::map basic_map::set_range_tuple(const std::string &id) const
{
- auto res = isl_basic_map_plain_is_universe(get());
- return manage(res);
+ return this->set_range_tuple(isl::id(ctx(), id));
}
-isl::basic_map basic_map::preimage_domain_multi_aff(isl::multi_aff ma) const
+isl::map basic_map::set_tuple_id(isl::dim type, const isl::id &id) const
{
- auto res = isl_basic_map_preimage_domain_multi_aff(copy(), ma.release());
- return manage(res);
+ return isl::map(*this).set_tuple_id(type, id);
}
-isl::basic_map basic_map::preimage_range_multi_aff(isl::multi_aff ma) const
+isl::map basic_map::set_tuple_id(isl::dim type, const std::string &id) const
{
- auto res = isl_basic_map_preimage_range_multi_aff(copy(), ma.release());
- return manage(res);
+ return this->set_tuple_id(type, isl::id(ctx(), id));
}
-isl::basic_map basic_map::product(isl::basic_map bmap2) const
+isl::space basic_map::space() const
{
- auto res = isl_basic_map_product(copy(), bmap2.release());
- return manage(res);
+ return isl::map(*this).space();
}
-isl::basic_map basic_map::project_out(isl::dim type, unsigned int first, unsigned int n) const
+isl::map basic_map::subtract(const isl::map &map2) const
{
- auto res = isl_basic_map_project_out(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::map(*this).subtract(map2);
}
-isl::basic_set basic_map::range() const
+isl::union_map basic_map::subtract(const isl::union_map &umap2) const
{
- auto res = isl_basic_map_range(copy());
- return manage(res);
+ return isl::map(*this).subtract(umap2);
}
-isl::basic_map basic_map::range_map() const
+isl::union_map basic_map::subtract_domain(const isl::union_set &dom) const
{
- auto res = isl_basic_map_range_map(copy());
- return manage(res);
+ return isl::map(*this).subtract_domain(dom);
}
-isl::basic_map basic_map::range_product(isl::basic_map bmap2) const
+isl::union_map basic_map::subtract_range(const isl::union_set &dom) const
{
- auto res = isl_basic_map_range_product(copy(), bmap2.release());
- return manage(res);
+ return isl::map(*this).subtract_range(dom);
}
-isl::basic_map basic_map::remove_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::map basic_map::sum(const isl::map &map2) const
{
- auto res = isl_basic_map_remove_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::map(*this).sum(map2);
}
-isl::basic_map basic_map::remove_divs() const
+isl::basic_map_list basic_map::to_list() const
{
- auto res = isl_basic_map_remove_divs(copy());
+ auto res = isl_basic_map_to_list(copy());
return manage(res);
}
-isl::basic_map basic_map::remove_divs_involving_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::union_map basic_map::to_union_map() const
{
- auto res = isl_basic_map_remove_divs_involving_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::map(*this).to_union_map();
}
-isl::basic_map basic_map::remove_redundancies() const
+isl::id basic_map::tuple_id(isl::dim type) const
{
- auto res = isl_basic_map_remove_redundancies(copy());
- return manage(res);
+ return isl::map(*this).tuple_id(type);
}
-isl::basic_map basic_map::reverse() const
+isl::map basic_map::uncurry() const
{
- auto res = isl_basic_map_reverse(copy());
- return manage(res);
+ return isl::map(*this).uncurry();
}
-isl::basic_map basic_map::sample() const
+isl::map basic_map::unite(isl::basic_map bmap2) const
{
- auto res = isl_basic_map_sample(copy());
+ auto res = isl_basic_map_union(copy(), bmap2.release());
return manage(res);
}
-isl::basic_map basic_map::set_tuple_id(isl::dim type, isl::id id) const
+isl::map basic_map::unite(const isl::map &map2) const
{
- auto res = isl_basic_map_set_tuple_id(copy(), static_cast<enum isl_dim_type>(type), id.release());
- return manage(res);
+ return isl::map(*this).unite(map2);
}
-isl::basic_map basic_map::set_tuple_name(isl::dim type, const std::string &s) const
+isl::union_map basic_map::unite(const isl::union_map &umap2) const
{
- auto res = isl_basic_map_set_tuple_name(copy(), static_cast<enum isl_dim_type>(type), s.c_str());
- return manage(res);
+ return isl::map(*this).unite(umap2);
}
-isl::basic_map basic_map::sum(isl::basic_map bmap2) const
+isl::basic_map basic_map::universe(isl::space space)
{
- auto res = isl_basic_map_sum(copy(), bmap2.release());
+ auto res = isl_basic_map_universe(space.release());
return manage(res);
}
-isl::basic_map basic_map::uncurry() const
+isl::basic_map basic_map::unshifted_simple_hull() const
{
- auto res = isl_basic_map_uncurry(copy());
- return manage(res);
+ return isl::map(*this).unshifted_simple_hull();
}
-isl::map basic_map::unite(isl::basic_map bmap2) const
+isl::map basic_map::upper_bound(const isl::multi_pw_aff &upper) const
{
- auto res = isl_basic_map_union(copy(), bmap2.release());
- return manage(res);
+ return isl::map(*this).upper_bound(upper);
}
-isl::basic_map basic_map::universe(isl::space space)
+isl::map basic_map::upper_bound_si(isl::dim type, unsigned int pos, int value) const
{
- auto res = isl_basic_map_universe(space.release());
- return manage(res);
+ return isl::map(*this).upper_bound_si(type, pos, value);
}
-isl::basic_map basic_map::upper_bound_si(isl::dim type, unsigned int pos, int value) const
+isl::set basic_map::wrap() const
{
- auto res = isl_basic_map_upper_bound_si(copy(), static_cast<enum isl_dim_type>(type), pos, value);
- return manage(res);
+ return isl::map(*this).wrap();
}
-isl::basic_set basic_map::wrap() const
+isl::map basic_map::zip() const
{
- auto res = isl_basic_map_wrap(copy());
- return manage(res);
+ return isl::map(*this).zip();
}
-isl::basic_map basic_map::zip() const
+inline std::ostream &operator<<(std::ostream &os, const basic_map &obj)
{
- auto res = isl_basic_map_zip(copy());
- return manage(res);
+ char *str = isl_basic_map_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
// implementations for isl::basic_map_list
ptr = obj.copy();
}
-
basic_map_list::basic_map_list(__isl_take isl_basic_map_list *ptr)
: ptr(ptr) {}
+basic_map_list::basic_map_list(isl::ctx ctx, int n)
+{
+ auto res = isl_basic_map_list_alloc(ctx.release(), n);
+ ptr = res;
+}
+
+basic_map_list::basic_map_list(isl::basic_map el)
+{
+ auto res = isl_basic_map_list_from_basic_map(el.release());
+ ptr = res;
+}
basic_map_list &basic_map_list::operator=(basic_map_list obj) {
std::swap(this->ptr, obj.ptr);
return ptr == nullptr;
}
-
isl::ctx basic_map_list::ctx() const {
return isl::ctx(isl_basic_map_list_get_ctx(ptr));
}
-void basic_map_list::dump() const {
- isl_basic_map_list_dump(get());
-}
-
-
isl::basic_map_list basic_map_list::add(isl::basic_map el) const
{
auto res = isl_basic_map_list_add(copy(), el.release());
return manage(res);
}
-isl::basic_map_list basic_map_list::alloc(isl::ctx ctx, int n)
+isl::basic_map basic_map_list::at(int index) const
{
- auto res = isl_basic_map_list_alloc(ctx.release(), n);
+ auto res = isl_basic_map_list_get_at(get(), index);
return manage(res);
}
+isl::basic_map basic_map_list::get_at(int index) const
+{
+ return at(index);
+}
+
isl::basic_map_list basic_map_list::clear() const
{
auto res = isl_basic_map_list_clear(copy());
return manage(res);
}
-stat basic_map_list::foreach(const std::function<stat(basic_map)> &fn) const
+stat basic_map_list::foreach(const std::function<stat(isl::basic_map)> &fn) const
{
struct fn_data {
- const std::function<stat(basic_map)> *func;
- } fn_data = { &fn };
+ std::function<stat(isl::basic_map)> func;
+ } fn_data = { fn };
auto fn_lambda = [](isl_basic_map *arg_0, void *arg_1) -> isl_stat {
auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
+ auto ret = (data->func)(manage(arg_0));
return ret.release();
};
auto res = isl_basic_map_list_foreach(get(), fn_lambda, &fn_data);
return manage(res);
}
-isl::basic_map_list basic_map_list::from_basic_map(isl::basic_map el)
-{
- auto res = isl_basic_map_list_from_basic_map(el.release());
- return manage(res);
-}
-
-isl::basic_map basic_map_list::get_at(int index) const
-{
- auto res = isl_basic_map_list_get_at(get(), index);
- return manage(res);
-}
-
-isl::basic_map basic_map_list::get_basic_map(int index) const
-{
- auto res = isl_basic_map_list_get_basic_map(get(), index);
- return manage(res);
-}
-
isl::basic_map_list basic_map_list::insert(unsigned int pos, isl::basic_map el) const
{
auto res = isl_basic_map_list_insert(copy(), pos, el.release());
return manage(res);
}
-isl_size basic_map_list::n_basic_map() const
-{
- auto res = isl_basic_map_list_n_basic_map(get());
- return res;
-}
-
-isl::basic_map_list basic_map_list::reverse() const
-{
- auto res = isl_basic_map_list_reverse(copy());
- return manage(res);
-}
-
-isl::basic_map_list basic_map_list::set_basic_map(int index, isl::basic_map el) const
-{
- auto res = isl_basic_map_list_set_basic_map(copy(), index, el.release());
- return manage(res);
-}
-
-isl_size basic_map_list::size() const
+class size basic_map_list::size() const
{
auto res = isl_basic_map_list_size(get());
- return res;
+ return manage(res);
}
-isl::basic_map_list basic_map_list::swap(unsigned int pos1, unsigned int pos2) const
+inline std::ostream &operator<<(std::ostream &os, const basic_map_list &obj)
{
- auto res = isl_basic_map_list_swap(copy(), pos1, pos2);
- return manage(res);
+ char *str = isl_basic_map_list_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
// implementations for isl::basic_set
ptr = obj.copy();
}
-
basic_set::basic_set(__isl_take isl_basic_set *ptr)
: ptr(ptr) {}
auto res = isl_basic_set_from_point(pnt.release());
ptr = res;
}
+
basic_set::basic_set(isl::ctx ctx, const std::string &str)
{
auto res = isl_basic_set_read_from_str(ctx.release(), str.c_str());
return ptr == nullptr;
}
-
isl::ctx basic_set::ctx() const {
return isl::ctx(isl_basic_set_get_ctx(ptr));
}
-void basic_set::dump() const {
- isl_basic_set_dump(get());
+isl::set basic_set::add_constraint(const isl::constraint &constraint) const
+{
+ return isl::set(*this).add_constraint(constraint);
}
+isl::set basic_set::add_dims(isl::dim type, unsigned int n) const
+{
+ return isl::set(*this).add_dims(type, n);
+}
isl::basic_set basic_set::affine_hull() const
{
return manage(res);
}
-isl::basic_set basic_set::align_params(isl::space model) const
+isl::set basic_set::align_params(const isl::space &model) const
{
- auto res = isl_basic_set_align_params(copy(), model.release());
- return manage(res);
+ return isl::set(*this).align_params(model);
}
isl::basic_set basic_set::apply(isl::basic_map bmap) const
return manage(res);
}
-isl::basic_set basic_set::box_from_points(isl::point pnt1, isl::point pnt2)
+isl::set basic_set::apply(const isl::map &map) const
{
- auto res = isl_basic_set_box_from_points(pnt1.release(), pnt2.release());
- return manage(res);
+ return isl::set(*this).apply(map);
}
-isl::basic_set basic_set::coefficients() const
+isl::union_set basic_set::apply(const isl::union_map &umap) const
{
- auto res = isl_basic_set_coefficients(copy());
- return manage(res);
+ return isl::set(*this).apply(umap);
}
-isl::basic_set basic_set::detect_equalities() const
+isl::pw_multi_aff basic_set::as_pw_multi_aff() const
{
- auto res = isl_basic_set_detect_equalities(copy());
- return manage(res);
+ return isl::set(*this).as_pw_multi_aff();
}
-isl_size basic_set::dim(isl::dim type) const
+isl::set basic_set::as_set() const
{
- auto res = isl_basic_set_dim(get(), static_cast<enum isl_dim_type>(type));
- return res;
+ return isl::set(*this).as_set();
}
-isl::val basic_set::dim_max_val(int pos) const
+isl::basic_set_list basic_set::basic_set_list() const
{
- auto res = isl_basic_set_dim_max_val(copy(), pos);
- return manage(res);
+ return isl::set(*this).basic_set_list();
}
-isl::basic_set basic_set::drop_constraints_involving_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::set basic_set::bind(const isl::multi_id &tuple) const
{
- auto res = isl_basic_set_drop_constraints_involving_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::set(*this).bind(tuple);
}
-isl::basic_set basic_set::drop_constraints_not_involving_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::set basic_set::coalesce() const
{
- auto res = isl_basic_set_drop_constraints_not_involving_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::set(*this).coalesce();
}
-isl::basic_set basic_set::drop_unused_params() const
+isl::set basic_set::complement() const
{
- auto res = isl_basic_set_drop_unused_params(copy());
- return manage(res);
+ return isl::set(*this).complement();
}
-isl::basic_set basic_set::eliminate(isl::dim type, unsigned int first, unsigned int n) const
+isl::union_set basic_set::compute_divs() const
{
- auto res = isl_basic_set_eliminate(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::set(*this).compute_divs();
}
-isl::basic_set basic_set::empty(isl::space space)
+boolean basic_set::contains(const isl::space &space) const
{
- auto res = isl_basic_set_empty(space.release());
- return manage(res);
+ return isl::set(*this).contains(space);
}
-isl::mat basic_set::equalities_matrix(isl::dim c1, isl::dim c2, isl::dim c3, isl::dim c4) const
+isl::basic_set basic_set::convex_hull() const
{
- auto res = isl_basic_set_equalities_matrix(get(), static_cast<enum isl_dim_type>(c1), static_cast<enum isl_dim_type>(c2), static_cast<enum isl_dim_type>(c3), static_cast<enum isl_dim_type>(c4));
- return manage(res);
+ return isl::set(*this).convex_hull();
}
-isl::basic_set basic_set::fix_si(isl::dim type, unsigned int pos, int value) const
+isl::basic_set basic_set::detect_equalities() const
{
- auto res = isl_basic_set_fix_si(copy(), static_cast<enum isl_dim_type>(type), pos, value);
+ auto res = isl_basic_set_detect_equalities(copy());
return manage(res);
}
-isl::basic_set basic_set::fix_val(isl::dim type, unsigned int pos, isl::val v) const
+class size basic_set::dim(isl::dim type) const
{
- auto res = isl_basic_set_fix_val(copy(), static_cast<enum isl_dim_type>(type), pos, v.release());
+ auto res = isl_basic_set_dim(get(), static_cast<enum isl_dim_type>(type));
return manage(res);
}
-isl::basic_set basic_set::flat_product(isl::basic_set bset2) const
+boolean basic_set::dim_has_any_lower_bound(isl::dim type, unsigned int pos) const
{
- auto res = isl_basic_set_flat_product(copy(), bset2.release());
- return manage(res);
+ return isl::set(*this).dim_has_any_lower_bound(type, pos);
}
-isl::basic_set basic_set::flatten() const
+isl::id basic_set::dim_id(isl::dim type, unsigned int pos) const
{
- auto res = isl_basic_set_flatten(copy());
- return manage(res);
+ return isl::set(*this).dim_id(type, pos);
}
-stat basic_set::foreach_bound_pair(isl::dim type, unsigned int pos, const std::function<stat(constraint, constraint, basic_set)> &fn) const
+isl::pw_aff basic_set::dim_max(int pos) const
{
- struct fn_data {
- const std::function<stat(constraint, constraint, basic_set)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_constraint *arg_0, isl_constraint *arg_1, isl_basic_set *arg_2, void *arg_3) -> isl_stat {
- auto *data = static_cast<struct fn_data *>(arg_3);
- stat ret = (*data->func)(manage(arg_0), manage(arg_1), manage(arg_2));
- return ret.release();
- };
- auto res = isl_basic_set_foreach_bound_pair(get(), static_cast<enum isl_dim_type>(type), pos, fn_lambda, &fn_data);
- return manage(res);
+ return isl::set(*this).dim_max(pos);
}
-stat basic_set::foreach_constraint(const std::function<stat(constraint)> &fn) const
+isl::val basic_set::dim_max_val(int pos) const
{
- struct fn_data {
- const std::function<stat(constraint)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_constraint *arg_0, void *arg_1) -> isl_stat {
- auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
- return ret.release();
- };
- auto res = isl_basic_set_foreach_constraint(get(), fn_lambda, &fn_data);
+ auto res = isl_basic_set_dim_max_val(copy(), pos);
return manage(res);
}
-isl::basic_set basic_set::from_constraint(isl::constraint constraint)
+isl::pw_aff basic_set::dim_min(int pos) const
{
- auto res = isl_basic_set_from_constraint(constraint.release());
- return manage(res);
+ return isl::set(*this).dim_min(pos);
}
-isl::basic_set basic_set::from_multi_aff(isl::multi_aff ma)
+isl::val basic_set::dim_min_val(int pos) const
{
- auto res = isl_basic_set_from_multi_aff(ma.release());
- return manage(res);
+ return isl::set(*this).dim_min_val(pos);
}
-isl::basic_set basic_set::from_params() const
+std::string basic_set::dim_name(isl::dim type, unsigned int pos) const
{
- auto res = isl_basic_set_from_params(copy());
- return manage(res);
+ return isl::set(*this).dim_name(type, pos);
}
-isl::constraint_list basic_set::get_constraint_list() const
+isl::aff basic_set::div(int pos) const
{
- auto res = isl_basic_set_get_constraint_list(get());
+ auto res = isl_basic_set_get_div(get(), pos);
return manage(res);
}
-isl::id basic_set::get_dim_id(isl::dim type, unsigned int pos) const
+isl::aff basic_set::get_div(int pos) const
{
- auto res = isl_basic_set_get_dim_id(get(), static_cast<enum isl_dim_type>(type), pos);
- return manage(res);
+ return div(pos);
}
-std::string basic_set::get_dim_name(isl::dim type, unsigned int pos) const
+isl::set basic_set::drop_constraints_involving_dims(isl::dim type, unsigned int first, unsigned int n) const
{
- auto res = isl_basic_set_get_dim_name(get(), static_cast<enum isl_dim_type>(type), pos);
- std::string tmp(res);
- return tmp;
+ return isl::set(*this).drop_constraints_involving_dims(type, first, n);
}
-isl::aff basic_set::get_div(int pos) const
+isl::set basic_set::eliminate(isl::dim type, unsigned int first, unsigned int n) const
{
- auto res = isl_basic_set_get_div(get(), pos);
- return manage(res);
+ return isl::set(*this).eliminate(type, first, n);
}
-isl::local_space basic_set::get_local_space() const
+boolean basic_set::every_set(const std::function<boolean(isl::set)> &test) const
{
- auto res = isl_basic_set_get_local_space(get());
- return manage(res);
+ return isl::set(*this).every_set(test);
}
-isl::space basic_set::get_space() const
+isl::set basic_set::extract_set(const isl::space &space) const
{
- auto res = isl_basic_set_get_space(get());
- return manage(res);
+ return isl::set(*this).extract_set(space);
}
-std::string basic_set::get_tuple_name() const
+int basic_set::find_dim_by_id(isl::dim type, const isl::id &id) const
{
- auto res = isl_basic_set_get_tuple_name(get());
- std::string tmp(res);
- return tmp;
+ return isl::set(*this).find_dim_by_id(type, id);
}
-isl::basic_set basic_set::gist(isl::basic_set context) const
+int basic_set::find_dim_by_id(isl::dim type, const std::string &id) const
{
- auto res = isl_basic_set_gist(copy(), context.release());
- return manage(res);
+ return this->find_dim_by_id(type, isl::id(ctx(), id));
}
-isl::mat basic_set::inequalities_matrix(isl::dim c1, isl::dim c2, isl::dim c3, isl::dim c4) const
+isl::basic_set basic_set::fix_si(isl::dim type, unsigned int pos, int value) const
{
- auto res = isl_basic_set_inequalities_matrix(get(), static_cast<enum isl_dim_type>(c1), static_cast<enum isl_dim_type>(c2), static_cast<enum isl_dim_type>(c3), static_cast<enum isl_dim_type>(c4));
+ auto res = isl_basic_set_fix_si(copy(), static_cast<enum isl_dim_type>(type), pos, value);
return manage(res);
}
-isl::basic_set basic_set::insert_dims(isl::dim type, unsigned int pos, unsigned int n) const
+isl::basic_set basic_set::fix_val(isl::dim type, unsigned int pos, isl::val v) const
{
- auto res = isl_basic_set_insert_dims(copy(), static_cast<enum isl_dim_type>(type), pos, n);
+ auto res = isl_basic_set_fix_val(copy(), static_cast<enum isl_dim_type>(type), pos, v.release());
return manage(res);
}
-isl::basic_set basic_set::intersect(isl::basic_set bset2) const
+isl::basic_set basic_set::fix_val(isl::dim type, unsigned int pos, long v) const
{
- auto res = isl_basic_set_intersect(copy(), bset2.release());
- return manage(res);
+ return this->fix_val(type, pos, isl::val(ctx(), v));
}
-isl::basic_set basic_set::intersect_params(isl::basic_set bset2) const
+isl::basic_set basic_set::flatten() const
{
- auto res = isl_basic_set_intersect_params(copy(), bset2.release());
+ auto res = isl_basic_set_flatten(copy());
return manage(res);
}
-boolean basic_set::involves_dims(isl::dim type, unsigned int first, unsigned int n) const
+stat basic_set::foreach_basic_set(const std::function<stat(isl::basic_set)> &fn) const
{
- auto res = isl_basic_set_involves_dims(get(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::set(*this).foreach_basic_set(fn);
}
-boolean basic_set::is_bounded() const
+stat basic_set::foreach_point(const std::function<stat(isl::point)> &fn) const
{
- auto res = isl_basic_set_is_bounded(get());
- return manage(res);
+ return isl::set(*this).foreach_point(fn);
}
-boolean basic_set::is_disjoint(const isl::basic_set &bset2) const
+stat basic_set::foreach_set(const std::function<stat(isl::set)> &fn) const
{
- auto res = isl_basic_set_is_disjoint(get(), bset2.get());
- return manage(res);
+ return isl::set(*this).foreach_set(fn);
}
-boolean basic_set::is_empty() const
+isl::basic_set basic_set::gist(isl::basic_set context) const
{
- auto res = isl_basic_set_is_empty(get());
+ auto res = isl_basic_set_gist(copy(), context.release());
return manage(res);
}
-boolean basic_set::is_equal(const isl::basic_set &bset2) const
+isl::set basic_set::gist(const isl::set &context) const
{
- auto res = isl_basic_set_is_equal(get(), bset2.get());
- return manage(res);
+ return isl::set(*this).gist(context);
}
-int basic_set::is_rational() const
+isl::union_set basic_set::gist(const isl::union_set &context) const
{
- auto res = isl_basic_set_is_rational(get());
- return res;
+ return isl::set(*this).gist(context);
}
-boolean basic_set::is_subset(const isl::basic_set &bset2) const
+isl::basic_set basic_set::gist(const isl::point &context) const
{
- auto res = isl_basic_set_is_subset(get(), bset2.get());
- return manage(res);
+ return this->gist(isl::basic_set(context));
}
-boolean basic_set::is_universe() const
+isl::set basic_set::gist_params(const isl::set &context) const
{
- auto res = isl_basic_set_is_universe(get());
- return manage(res);
+ return isl::set(*this).gist_params(context);
}
-boolean basic_set::is_wrapping() const
+boolean basic_set::has_equal_space(const isl::set &set2) const
{
- auto res = isl_basic_set_is_wrapping(get());
- return manage(res);
+ return isl::set(*this).has_equal_space(set2);
}
-isl::set basic_set::lexmax() const
+isl::map basic_set::identity() const
{
- auto res = isl_basic_set_lexmax(copy());
- return manage(res);
+ return isl::set(*this).identity();
}
-isl::set basic_set::lexmin() const
+isl::union_pw_multi_aff basic_set::identity_union_pw_multi_aff() const
{
- auto res = isl_basic_set_lexmin(copy());
- return manage(res);
+ return isl::set(*this).identity_union_pw_multi_aff();
}
-isl::basic_set basic_set::lower_bound_val(isl::dim type, unsigned int pos, isl::val value) const
+isl::pw_aff basic_set::indicator_function() const
{
- auto res = isl_basic_set_lower_bound_val(copy(), static_cast<enum isl_dim_type>(type), pos, value.release());
- return manage(res);
+ return isl::set(*this).indicator_function();
}
-isl::val basic_set::max_val(const isl::aff &obj) const
+isl::set basic_set::insert_dims(isl::dim type, unsigned int pos, unsigned int n) const
{
- auto res = isl_basic_set_max_val(get(), obj.get());
- return manage(res);
+ return isl::set(*this).insert_dims(type, pos, n);
}
-isl::basic_set basic_set::move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const
+isl::map basic_set::insert_domain(const isl::space &domain) const
{
- auto res = isl_basic_set_move_dims(copy(), static_cast<enum isl_dim_type>(dst_type), dst_pos, static_cast<enum isl_dim_type>(src_type), src_pos, n);
- return manage(res);
+ return isl::set(*this).insert_domain(domain);
}
-isl_size basic_set::n_constraint() const
+isl::basic_set basic_set::intersect(isl::basic_set bset2) const
{
- auto res = isl_basic_set_n_constraint(get());
- return res;
+ auto res = isl_basic_set_intersect(copy(), bset2.release());
+ return manage(res);
}
-isl_size basic_set::n_dim() const
+isl::set basic_set::intersect(const isl::set &set2) const
{
- auto res = isl_basic_set_n_dim(get());
- return res;
+ return isl::set(*this).intersect(set2);
}
-isl::basic_set basic_set::nat_universe(isl::space space)
+isl::union_set basic_set::intersect(const isl::union_set &uset2) const
{
- auto res = isl_basic_set_nat_universe(space.release());
- return manage(res);
+ return isl::set(*this).intersect(uset2);
}
-isl::basic_set basic_set::neg() const
+isl::basic_set basic_set::intersect(const isl::point &bset2) const
{
- auto res = isl_basic_set_neg(copy());
- return manage(res);
+ return this->intersect(isl::basic_set(bset2));
}
-isl::basic_set basic_set::params() const
+isl::basic_set basic_set::intersect_params(isl::basic_set bset2) const
{
- auto res = isl_basic_set_params(copy());
+ auto res = isl_basic_set_intersect_params(copy(), bset2.release());
return manage(res);
}
-boolean basic_set::plain_is_empty() const
+isl::set basic_set::intersect_params(const isl::set ¶ms) const
{
- auto res = isl_basic_set_plain_is_empty(get());
- return manage(res);
+ return isl::set(*this).intersect_params(params);
}
-boolean basic_set::plain_is_equal(const isl::basic_set &bset2) const
+isl::basic_set basic_set::intersect_params(const isl::point &bset2) const
{
- auto res = isl_basic_set_plain_is_equal(get(), bset2.get());
- return manage(res);
+ return this->intersect_params(isl::basic_set(bset2));
}
-boolean basic_set::plain_is_universe() const
+boolean basic_set::involves_dims(isl::dim type, unsigned int first, unsigned int n) const
{
- auto res = isl_basic_set_plain_is_universe(get());
- return manage(res);
+ return isl::set(*this).involves_dims(type, first, n);
}
-isl::basic_set basic_set::positive_orthant(isl::space space)
+boolean basic_set::involves_locals() const
{
- auto res = isl_basic_set_positive_orthant(space.release());
- return manage(res);
+ return isl::set(*this).involves_locals();
}
-isl::basic_set basic_set::preimage_multi_aff(isl::multi_aff ma) const
+boolean basic_set::is_bounded() const
{
- auto res = isl_basic_set_preimage_multi_aff(copy(), ma.release());
+ auto res = isl_basic_set_is_bounded(get());
return manage(res);
}
-isl::basic_set basic_set::project_out(isl::dim type, unsigned int first, unsigned int n) const
+boolean basic_set::is_disjoint(const isl::set &set2) const
{
- auto res = isl_basic_set_project_out(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::set(*this).is_disjoint(set2);
}
-isl::mat basic_set::reduced_basis() const
+boolean basic_set::is_disjoint(const isl::union_set &uset2) const
{
- auto res = isl_basic_set_reduced_basis(get());
- return manage(res);
+ return isl::set(*this).is_disjoint(uset2);
}
-isl::basic_set basic_set::remove_dims(isl::dim type, unsigned int first, unsigned int n) const
+boolean basic_set::is_empty() const
{
- auto res = isl_basic_set_remove_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
+ auto res = isl_basic_set_is_empty(get());
return manage(res);
}
-isl::basic_set basic_set::remove_divs() const
+boolean basic_set::is_equal(const isl::basic_set &bset2) const
{
- auto res = isl_basic_set_remove_divs(copy());
+ auto res = isl_basic_set_is_equal(get(), bset2.get());
return manage(res);
}
-isl::basic_set basic_set::remove_divs_involving_dims(isl::dim type, unsigned int first, unsigned int n) const
+boolean basic_set::is_equal(const isl::set &set2) const
{
- auto res = isl_basic_set_remove_divs_involving_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::set(*this).is_equal(set2);
}
-isl::basic_set basic_set::remove_redundancies() const
+boolean basic_set::is_equal(const isl::union_set &uset2) const
{
- auto res = isl_basic_set_remove_redundancies(copy());
- return manage(res);
+ return isl::set(*this).is_equal(uset2);
}
-isl::basic_set basic_set::remove_unknown_divs() const
+boolean basic_set::is_equal(const isl::point &bset2) const
{
- auto res = isl_basic_set_remove_unknown_divs(copy());
- return manage(res);
+ return this->is_equal(isl::basic_set(bset2));
}
-isl::basic_set basic_set::sample() const
+boolean basic_set::is_params() const
{
- auto res = isl_basic_set_sample(copy());
- return manage(res);
+ return isl::set(*this).is_params();
}
-isl::point basic_set::sample_point() const
+boolean basic_set::is_singleton() const
{
- auto res = isl_basic_set_sample_point(copy());
- return manage(res);
+ return isl::set(*this).is_singleton();
}
-isl::basic_set basic_set::set_tuple_id(isl::id id) const
+boolean basic_set::is_strict_subset(const isl::set &set2) const
{
- auto res = isl_basic_set_set_tuple_id(copy(), id.release());
- return manage(res);
+ return isl::set(*this).is_strict_subset(set2);
}
-isl::basic_set basic_set::set_tuple_name(const std::string &s) const
+boolean basic_set::is_strict_subset(const isl::union_set &uset2) const
{
- auto res = isl_basic_set_set_tuple_name(copy(), s.c_str());
- return manage(res);
+ return isl::set(*this).is_strict_subset(uset2);
}
-isl::basic_set basic_set::solutions() const
+boolean basic_set::is_subset(const isl::basic_set &bset2) const
{
- auto res = isl_basic_set_solutions(copy());
+ auto res = isl_basic_set_is_subset(get(), bset2.get());
return manage(res);
}
-isl::set basic_set::unite(isl::basic_set bset2) const
+boolean basic_set::is_subset(const isl::set &set2) const
{
- auto res = isl_basic_set_union(copy(), bset2.release());
- return manage(res);
+ return isl::set(*this).is_subset(set2);
}
-isl::basic_set basic_set::universe(isl::space space)
+boolean basic_set::is_subset(const isl::union_set &uset2) const
{
- auto res = isl_basic_set_universe(space.release());
- return manage(res);
+ return isl::set(*this).is_subset(uset2);
}
-isl::basic_map basic_set::unwrap() const
+boolean basic_set::is_subset(const isl::point &bset2) const
{
- auto res = isl_basic_set_unwrap(copy());
- return manage(res);
+ return this->is_subset(isl::basic_set(bset2));
}
-isl::basic_set basic_set::upper_bound_val(isl::dim type, unsigned int pos, isl::val value) const
+boolean basic_set::is_wrapping() const
{
- auto res = isl_basic_set_upper_bound_val(copy(), static_cast<enum isl_dim_type>(type), pos, value.release());
+ auto res = isl_basic_set_is_wrapping(get());
return manage(res);
}
-// implementations for isl::basic_set_list
-basic_set_list manage(__isl_take isl_basic_set_list *ptr) {
- return basic_set_list(ptr);
-}
-basic_set_list manage_copy(__isl_keep isl_basic_set_list *ptr) {
- ptr = isl_basic_set_list_copy(ptr);
- return basic_set_list(ptr);
+boolean basic_set::isa_set() const
+{
+ return isl::set(*this).isa_set();
}
-basic_set_list::basic_set_list()
- : ptr(nullptr) {}
-
-basic_set_list::basic_set_list(const basic_set_list &obj)
- : ptr(nullptr)
+isl::set basic_set::lexmax() const
{
- ptr = obj.copy();
+ auto res = isl_basic_set_lexmax(copy());
+ return manage(res);
}
+isl::pw_multi_aff basic_set::lexmax_pw_multi_aff() const
+{
+ return isl::set(*this).lexmax_pw_multi_aff();
+}
-basic_set_list::basic_set_list(__isl_take isl_basic_set_list *ptr)
- : ptr(ptr) {}
-
+isl::set basic_set::lexmin() const
+{
+ auto res = isl_basic_set_lexmin(copy());
+ return manage(res);
+}
-basic_set_list &basic_set_list::operator=(basic_set_list obj) {
- std::swap(this->ptr, obj.ptr);
- return *this;
+isl::pw_multi_aff basic_set::lexmin_pw_multi_aff() const
+{
+ return isl::set(*this).lexmin_pw_multi_aff();
}
-basic_set_list::~basic_set_list() {
- if (ptr)
- isl_basic_set_list_free(ptr);
+isl::set basic_set::lower_bound(const isl::multi_pw_aff &lower) const
+{
+ return isl::set(*this).lower_bound(lower);
}
-__isl_give isl_basic_set_list *basic_set_list::copy() const & {
- return isl_basic_set_list_copy(ptr);
+isl::set basic_set::lower_bound(const isl::multi_val &lower) const
+{
+ return isl::set(*this).lower_bound(lower);
}
-__isl_keep isl_basic_set_list *basic_set_list::get() const {
- return ptr;
+isl::set basic_set::lower_bound_si(isl::dim type, unsigned int pos, int value) const
+{
+ return isl::set(*this).lower_bound_si(type, pos, value);
}
-__isl_give isl_basic_set_list *basic_set_list::release() {
- isl_basic_set_list *tmp = ptr;
- ptr = nullptr;
- return tmp;
+isl::set basic_set::lower_bound_val(isl::dim type, unsigned int pos, const isl::val &value) const
+{
+ return isl::set(*this).lower_bound_val(type, pos, value);
+}
+
+isl::set basic_set::lower_bound_val(isl::dim type, unsigned int pos, long value) const
+{
+ return this->lower_bound_val(type, pos, isl::val(ctx(), value));
}
-bool basic_set_list::is_null() const {
- return ptr == nullptr;
+isl::multi_pw_aff basic_set::max_multi_pw_aff() const
+{
+ return isl::set(*this).max_multi_pw_aff();
}
+isl::val basic_set::max_val(const isl::aff &obj) const
+{
+ return isl::set(*this).max_val(obj);
+}
-isl::ctx basic_set_list::ctx() const {
- return isl::ctx(isl_basic_set_list_get_ctx(ptr));
+isl::multi_pw_aff basic_set::min_multi_pw_aff() const
+{
+ return isl::set(*this).min_multi_pw_aff();
}
-void basic_set_list::dump() const {
- isl_basic_set_list_dump(get());
+isl::val basic_set::min_val(const isl::aff &obj) const
+{
+ return isl::set(*this).min_val(obj);
}
+class size basic_set::n_basic_set() const
+{
+ return isl::set(*this).n_basic_set();
+}
-isl::basic_set_list basic_set_list::add(isl::basic_set el) const
+isl::basic_set basic_set::params() const
{
- auto res = isl_basic_set_list_add(copy(), el.release());
+ auto res = isl_basic_set_params(copy());
return manage(res);
}
-isl::basic_set_list basic_set_list::alloc(isl::ctx ctx, int n)
+isl::val basic_set::plain_get_val_if_fixed(isl::dim type, unsigned int pos) const
{
- auto res = isl_basic_set_list_alloc(ctx.release(), n);
- return manage(res);
+ return isl::set(*this).plain_get_val_if_fixed(type, pos);
}
-isl::basic_set_list basic_set_list::clear() const
+isl::multi_val basic_set::plain_multi_val_if_fixed() const
{
- auto res = isl_basic_set_list_clear(copy());
- return manage(res);
+ return isl::set(*this).plain_multi_val_if_fixed();
}
-isl::basic_set_list basic_set_list::coefficients() const
+isl::basic_set basic_set::polyhedral_hull() const
{
- auto res = isl_basic_set_list_coefficients(copy());
- return manage(res);
+ return isl::set(*this).polyhedral_hull();
}
-isl::basic_set_list basic_set_list::concat(isl::basic_set_list list2) const
+isl::set basic_set::preimage(const isl::multi_aff &ma) const
{
- auto res = isl_basic_set_list_concat(copy(), list2.release());
- return manage(res);
+ return isl::set(*this).preimage(ma);
}
-isl::basic_set_list basic_set_list::drop(unsigned int first, unsigned int n) const
+isl::set basic_set::preimage(const isl::multi_pw_aff &mpa) const
{
- auto res = isl_basic_set_list_drop(copy(), first, n);
- return manage(res);
+ return isl::set(*this).preimage(mpa);
}
-stat basic_set_list::foreach(const std::function<stat(basic_set)> &fn) const
+isl::set basic_set::preimage(const isl::pw_multi_aff &pma) const
{
- struct fn_data {
- const std::function<stat(basic_set)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_basic_set *arg_0, void *arg_1) -> isl_stat {
- auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
- return ret.release();
- };
- auto res = isl_basic_set_list_foreach(get(), fn_lambda, &fn_data);
- return manage(res);
+ return isl::set(*this).preimage(pma);
}
-isl::basic_set_list basic_set_list::from_basic_set(isl::basic_set el)
+isl::union_set basic_set::preimage(const isl::union_pw_multi_aff &upma) const
{
- auto res = isl_basic_set_list_from_basic_set(el.release());
- return manage(res);
+ return isl::set(*this).preimage(upma);
}
-isl::basic_set basic_set_list::get_at(int index) const
+isl::set basic_set::product(const isl::set &set2) const
{
- auto res = isl_basic_set_list_get_at(get(), index);
- return manage(res);
+ return isl::set(*this).product(set2);
}
-isl::basic_set basic_set_list::get_basic_set(int index) const
+isl::basic_set basic_set::project_out(isl::dim type, unsigned int first, unsigned int n) const
{
- auto res = isl_basic_set_list_get_basic_set(get(), index);
+ auto res = isl_basic_set_project_out(copy(), static_cast<enum isl_dim_type>(type), first, n);
return manage(res);
}
-isl::basic_set_list basic_set_list::insert(unsigned int pos, isl::basic_set el) const
+isl::set basic_set::project_out_all_params() const
{
- auto res = isl_basic_set_list_insert(copy(), pos, el.release());
- return manage(res);
+ return isl::set(*this).project_out_all_params();
}
-isl_size basic_set_list::n_basic_set() const
+isl::set basic_set::project_out_param(const isl::id &id) const
{
- auto res = isl_basic_set_list_n_basic_set(get());
- return res;
+ return isl::set(*this).project_out_param(id);
}
-isl::basic_set_list basic_set_list::reverse() const
+isl::set basic_set::project_out_param(const std::string &id) const
{
- auto res = isl_basic_set_list_reverse(copy());
- return manage(res);
+ return this->project_out_param(isl::id(ctx(), id));
}
-isl::basic_set_list basic_set_list::set_basic_set(int index, isl::basic_set el) const
+isl::set basic_set::project_out_param(const isl::id_list &list) const
{
- auto res = isl_basic_set_list_set_basic_set(copy(), index, el.release());
- return manage(res);
+ return isl::set(*this).project_out_param(list);
}
-isl_size basic_set_list::size() const
+isl::pw_multi_aff basic_set::pw_multi_aff_on_domain(const isl::multi_val &mv) const
{
- auto res = isl_basic_set_list_size(get());
- return res;
+ return isl::set(*this).pw_multi_aff_on_domain(mv);
}
-isl::basic_set_list basic_set_list::swap(unsigned int pos1, unsigned int pos2) const
+isl::set basic_set::remove_dims(isl::dim type, unsigned int first, unsigned int n) const
{
- auto res = isl_basic_set_list_swap(copy(), pos1, pos2);
- return manage(res);
+ return isl::set(*this).remove_dims(type, first, n);
}
-// implementations for isl::constraint
-constraint manage(__isl_take isl_constraint *ptr) {
- return constraint(ptr);
+isl::set basic_set::remove_divs() const
+{
+ return isl::set(*this).remove_divs();
}
-constraint manage_copy(__isl_keep isl_constraint *ptr) {
- ptr = isl_constraint_copy(ptr);
- return constraint(ptr);
+
+isl::set basic_set::remove_redundancies() const
+{
+ return isl::set(*this).remove_redundancies();
}
-constraint::constraint()
- : ptr(nullptr) {}
+isl::set basic_set::reset_tuple_id() const
+{
+ return isl::set(*this).reset_tuple_id();
+}
-constraint::constraint(const constraint &obj)
- : ptr(nullptr)
+isl::basic_set basic_set::sample() const
{
- ptr = obj.copy();
+ auto res = isl_basic_set_sample(copy());
+ return manage(res);
}
+isl::point basic_set::sample_point() const
+{
+ auto res = isl_basic_set_sample_point(copy());
+ return manage(res);
+}
-constraint::constraint(__isl_take isl_constraint *ptr)
- : ptr(ptr) {}
+isl::set basic_set::set_dim_id(isl::dim type, unsigned int pos, const isl::id &id) const
+{
+ return isl::set(*this).set_dim_id(type, pos, id);
+}
+isl::set basic_set::set_dim_id(isl::dim type, unsigned int pos, const std::string &id) const
+{
+ return this->set_dim_id(type, pos, isl::id(ctx(), id));
+}
-constraint &constraint::operator=(constraint obj) {
- std::swap(this->ptr, obj.ptr);
- return *this;
+isl::set_list basic_set::set_list() const
+{
+ return isl::set(*this).set_list();
}
-constraint::~constraint() {
- if (ptr)
- isl_constraint_free(ptr);
+isl::set basic_set::set_tuple_id(const isl::id &id) const
+{
+ return isl::set(*this).set_tuple_id(id);
}
-__isl_give isl_constraint *constraint::copy() const & {
- return isl_constraint_copy(ptr);
+isl::set basic_set::set_tuple_id(const std::string &id) const
+{
+ return this->set_tuple_id(isl::id(ctx(), id));
}
-__isl_keep isl_constraint *constraint::get() const {
- return ptr;
+isl::fixed_box basic_set::simple_fixed_box_hull() const
+{
+ return isl::set(*this).simple_fixed_box_hull();
}
-__isl_give isl_constraint *constraint::release() {
- isl_constraint *tmp = ptr;
- ptr = nullptr;
- return tmp;
+isl::basic_set basic_set::simple_hull() const
+{
+ return isl::set(*this).simple_hull();
}
-bool constraint::is_null() const {
- return ptr == nullptr;
+isl::space basic_set::space() const
+{
+ auto res = isl_basic_set_get_space(get());
+ return manage(res);
}
+isl::space basic_set::get_space() const
+{
+ return space();
+}
-isl::ctx constraint::ctx() const {
- return isl::ctx(isl_constraint_get_ctx(ptr));
+isl::val basic_set::stride(int pos) const
+{
+ return isl::set(*this).stride(pos);
}
-void constraint::dump() const {
- isl_constraint_dump(get());
+isl::set basic_set::subtract(const isl::set &set2) const
+{
+ return isl::set(*this).subtract(set2);
}
+isl::union_set basic_set::subtract(const isl::union_set &uset2) const
+{
+ return isl::set(*this).subtract(uset2);
+}
-isl::constraint constraint::alloc_equality(isl::local_space ls)
+isl::basic_set_list basic_set::to_list() const
{
- auto res = isl_constraint_alloc_equality(ls.release());
+ auto res = isl_basic_set_to_list(copy());
return manage(res);
}
-isl::constraint constraint::alloc_inequality(isl::local_space ls)
+isl::set basic_set::to_set() const
{
- auto res = isl_constraint_alloc_inequality(ls.release());
+ auto res = isl_basic_set_to_set(copy());
return manage(res);
}
-int constraint::cmp_last_non_zero(const isl::constraint &c2) const
+isl::union_set basic_set::to_union_set() const
{
- auto res = isl_constraint_cmp_last_non_zero(get(), c2.get());
- return res;
+ return isl::set(*this).to_union_set();
}
-isl::aff constraint::get_aff() const
+isl::map basic_set::translation() const
{
- auto res = isl_constraint_get_aff(get());
- return manage(res);
+ return isl::set(*this).translation();
}
-isl::aff constraint::get_bound(isl::dim type, int pos) const
+class size basic_set::tuple_dim() const
{
- auto res = isl_constraint_get_bound(get(), static_cast<enum isl_dim_type>(type), pos);
- return manage(res);
+ return isl::set(*this).tuple_dim();
}
-isl::val constraint::get_coefficient_val(isl::dim type, int pos) const
+isl::id basic_set::tuple_id() const
{
- auto res = isl_constraint_get_coefficient_val(get(), static_cast<enum isl_dim_type>(type), pos);
- return manage(res);
+ return isl::set(*this).tuple_id();
}
-isl::val constraint::get_constant_val() const
+std::string basic_set::tuple_name() const
{
- auto res = isl_constraint_get_constant_val(get());
- return manage(res);
+ return isl::set(*this).tuple_name();
}
-std::string constraint::get_dim_name(isl::dim type, unsigned int pos) const
+isl::set basic_set::unbind_params(const isl::multi_id &tuple) const
{
- auto res = isl_constraint_get_dim_name(get(), static_cast<enum isl_dim_type>(type), pos);
- std::string tmp(res);
- return tmp;
+ return isl::set(*this).unbind_params(tuple);
}
-isl::aff constraint::get_div(int pos) const
+isl::map basic_set::unbind_params_insert_domain(const isl::multi_id &domain) const
{
- auto res = isl_constraint_get_div(get(), pos);
- return manage(res);
+ return isl::set(*this).unbind_params_insert_domain(domain);
}
-isl::local_space constraint::get_local_space() const
+isl::set basic_set::unite(isl::basic_set bset2) const
{
- auto res = isl_constraint_get_local_space(get());
+ auto res = isl_basic_set_union(copy(), bset2.release());
return manage(res);
}
-isl::space constraint::get_space() const
+isl::set basic_set::unite(const isl::set &set2) const
{
- auto res = isl_constraint_get_space(get());
- return manage(res);
+ return isl::set(*this).unite(set2);
}
-boolean constraint::involves_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::union_set basic_set::unite(const isl::union_set &uset2) const
{
- auto res = isl_constraint_involves_dims(get(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::set(*this).unite(uset2);
}
-boolean constraint::is_div_constraint() const
+isl::set basic_set::unite(const isl::point &bset2) const
{
- auto res = isl_constraint_is_div_constraint(get());
- return manage(res);
+ return this->unite(isl::basic_set(bset2));
}
-boolean constraint::is_lower_bound(isl::dim type, unsigned int pos) const
+isl::basic_set basic_set::universe(isl::space space)
{
- auto res = isl_constraint_is_lower_bound(get(), static_cast<enum isl_dim_type>(type), pos);
+ auto res = isl_basic_set_universe(space.release());
return manage(res);
}
-boolean constraint::is_upper_bound(isl::dim type, unsigned int pos) const
+isl::basic_set basic_set::unshifted_simple_hull() const
{
- auto res = isl_constraint_is_upper_bound(get(), static_cast<enum isl_dim_type>(type), pos);
- return manage(res);
+ return isl::set(*this).unshifted_simple_hull();
}
-int constraint::plain_cmp(const isl::constraint &c2) const
+isl::map basic_set::unwrap() const
{
- auto res = isl_constraint_plain_cmp(get(), c2.get());
- return res;
+ return isl::set(*this).unwrap();
}
-isl::constraint constraint::set_coefficient_si(isl::dim type, int pos, int v) const
+isl::set basic_set::upper_bound(const isl::multi_pw_aff &upper) const
{
- auto res = isl_constraint_set_coefficient_si(copy(), static_cast<enum isl_dim_type>(type), pos, v);
- return manage(res);
+ return isl::set(*this).upper_bound(upper);
}
-isl::constraint constraint::set_coefficient_val(isl::dim type, int pos, isl::val v) const
+isl::set basic_set::upper_bound(const isl::multi_val &upper) const
{
- auto res = isl_constraint_set_coefficient_val(copy(), static_cast<enum isl_dim_type>(type), pos, v.release());
- return manage(res);
+ return isl::set(*this).upper_bound(upper);
}
-isl::constraint constraint::set_constant_si(int v) const
+isl::set basic_set::upper_bound_val(isl::dim type, unsigned int pos, const isl::val &value) const
{
- auto res = isl_constraint_set_constant_si(copy(), v);
- return manage(res);
+ return isl::set(*this).upper_bound_val(type, pos, value);
}
-isl::constraint constraint::set_constant_val(isl::val v) const
+isl::set basic_set::upper_bound_val(isl::dim type, unsigned int pos, long value) const
{
- auto res = isl_constraint_set_constant_val(copy(), v.release());
- return manage(res);
+ return this->upper_bound_val(type, pos, isl::val(ctx(), value));
+}
+
+inline std::ostream &operator<<(std::ostream &os, const basic_set &obj)
+{
+ char *str = isl_basic_set_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-// implementations for isl::constraint_list
-constraint_list manage(__isl_take isl_constraint_list *ptr) {
- return constraint_list(ptr);
+// implementations for isl::basic_set_list
+basic_set_list manage(__isl_take isl_basic_set_list *ptr) {
+ return basic_set_list(ptr);
}
-constraint_list manage_copy(__isl_keep isl_constraint_list *ptr) {
- ptr = isl_constraint_list_copy(ptr);
- return constraint_list(ptr);
+basic_set_list manage_copy(__isl_keep isl_basic_set_list *ptr) {
+ ptr = isl_basic_set_list_copy(ptr);
+ return basic_set_list(ptr);
}
-constraint_list::constraint_list()
+basic_set_list::basic_set_list()
: ptr(nullptr) {}
-constraint_list::constraint_list(const constraint_list &obj)
+basic_set_list::basic_set_list(const basic_set_list &obj)
: ptr(nullptr)
{
ptr = obj.copy();
}
-
-constraint_list::constraint_list(__isl_take isl_constraint_list *ptr)
+basic_set_list::basic_set_list(__isl_take isl_basic_set_list *ptr)
: ptr(ptr) {}
+basic_set_list::basic_set_list(isl::ctx ctx, int n)
+{
+ auto res = isl_basic_set_list_alloc(ctx.release(), n);
+ ptr = res;
+}
+
+basic_set_list::basic_set_list(isl::basic_set el)
+{
+ auto res = isl_basic_set_list_from_basic_set(el.release());
+ ptr = res;
+}
-constraint_list &constraint_list::operator=(constraint_list obj) {
+basic_set_list &basic_set_list::operator=(basic_set_list obj) {
std::swap(this->ptr, obj.ptr);
return *this;
}
-constraint_list::~constraint_list() {
+basic_set_list::~basic_set_list() {
if (ptr)
- isl_constraint_list_free(ptr);
+ isl_basic_set_list_free(ptr);
}
-__isl_give isl_constraint_list *constraint_list::copy() const & {
- return isl_constraint_list_copy(ptr);
+__isl_give isl_basic_set_list *basic_set_list::copy() const & {
+ return isl_basic_set_list_copy(ptr);
}
-__isl_keep isl_constraint_list *constraint_list::get() const {
+__isl_keep isl_basic_set_list *basic_set_list::get() const {
return ptr;
}
-__isl_give isl_constraint_list *constraint_list::release() {
- isl_constraint_list *tmp = ptr;
+__isl_give isl_basic_set_list *basic_set_list::release() {
+ isl_basic_set_list *tmp = ptr;
ptr = nullptr;
return tmp;
}
-bool constraint_list::is_null() const {
+bool basic_set_list::is_null() const {
return ptr == nullptr;
}
-
-isl::ctx constraint_list::ctx() const {
- return isl::ctx(isl_constraint_list_get_ctx(ptr));
+isl::ctx basic_set_list::ctx() const {
+ return isl::ctx(isl_basic_set_list_get_ctx(ptr));
}
-void constraint_list::dump() const {
- isl_constraint_list_dump(get());
+isl::basic_set_list basic_set_list::add(isl::basic_set el) const
+{
+ auto res = isl_basic_set_list_add(copy(), el.release());
+ return manage(res);
}
-
-isl::constraint_list constraint_list::add(isl::constraint el) const
+isl::basic_set basic_set_list::at(int index) const
{
- auto res = isl_constraint_list_add(copy(), el.release());
+ auto res = isl_basic_set_list_get_at(get(), index);
return manage(res);
}
-isl::constraint_list constraint_list::alloc(isl::ctx ctx, int n)
+isl::basic_set basic_set_list::get_at(int index) const
{
- auto res = isl_constraint_list_alloc(ctx.release(), n);
- return manage(res);
+ return at(index);
}
-isl::constraint_list constraint_list::clear() const
+isl::basic_set_list basic_set_list::clear() const
{
- auto res = isl_constraint_list_clear(copy());
+ auto res = isl_basic_set_list_clear(copy());
return manage(res);
}
-isl::constraint_list constraint_list::concat(isl::constraint_list list2) const
+isl::basic_set_list basic_set_list::concat(isl::basic_set_list list2) const
{
- auto res = isl_constraint_list_concat(copy(), list2.release());
+ auto res = isl_basic_set_list_concat(copy(), list2.release());
return manage(res);
}
-isl::constraint_list constraint_list::drop(unsigned int first, unsigned int n) const
+isl::basic_set_list basic_set_list::drop(unsigned int first, unsigned int n) const
{
- auto res = isl_constraint_list_drop(copy(), first, n);
+ auto res = isl_basic_set_list_drop(copy(), first, n);
return manage(res);
}
-stat constraint_list::foreach(const std::function<stat(constraint)> &fn) const
+stat basic_set_list::foreach(const std::function<stat(isl::basic_set)> &fn) const
{
struct fn_data {
- const std::function<stat(constraint)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_constraint *arg_0, void *arg_1) -> isl_stat {
+ std::function<stat(isl::basic_set)> func;
+ } fn_data = { fn };
+ auto fn_lambda = [](isl_basic_set *arg_0, void *arg_1) -> isl_stat {
auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
+ auto ret = (data->func)(manage(arg_0));
return ret.release();
};
- auto res = isl_constraint_list_foreach(get(), fn_lambda, &fn_data);
+ auto res = isl_basic_set_list_foreach(get(), fn_lambda, &fn_data);
return manage(res);
}
-isl::constraint_list constraint_list::from_constraint(isl::constraint el)
+isl::basic_set_list basic_set_list::insert(unsigned int pos, isl::basic_set el) const
{
- auto res = isl_constraint_list_from_constraint(el.release());
+ auto res = isl_basic_set_list_insert(copy(), pos, el.release());
return manage(res);
}
-isl::constraint constraint_list::get_at(int index) const
+class size basic_set_list::size() const
{
- auto res = isl_constraint_list_get_at(get(), index);
+ auto res = isl_basic_set_list_size(get());
return manage(res);
}
-isl::constraint constraint_list::get_constraint(int index) const
+inline std::ostream &operator<<(std::ostream &os, const basic_set_list &obj)
{
- auto res = isl_constraint_list_get_constraint(get(), index);
- return manage(res);
+ char *str = isl_basic_set_list_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
+}
+
+// implementations for isl::constraint
+constraint manage(__isl_take isl_constraint *ptr) {
+ return constraint(ptr);
+}
+constraint manage_copy(__isl_keep isl_constraint *ptr) {
+ ptr = isl_constraint_copy(ptr);
+ return constraint(ptr);
+}
+
+constraint::constraint()
+ : ptr(nullptr) {}
+
+constraint::constraint(const constraint &obj)
+ : ptr(nullptr)
+{
+ ptr = obj.copy();
+}
+
+constraint::constraint(__isl_take isl_constraint *ptr)
+ : ptr(ptr) {}
+
+constraint &constraint::operator=(constraint obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
+}
+
+constraint::~constraint() {
+ if (ptr)
+ isl_constraint_free(ptr);
+}
+
+__isl_give isl_constraint *constraint::copy() const & {
+ return isl_constraint_copy(ptr);
+}
+
+__isl_keep isl_constraint *constraint::get() const {
+ return ptr;
+}
+
+__isl_give isl_constraint *constraint::release() {
+ isl_constraint *tmp = ptr;
+ ptr = nullptr;
+ return tmp;
+}
+
+bool constraint::is_null() const {
+ return ptr == nullptr;
+}
+
+isl::ctx constraint::ctx() const {
+ return isl::ctx(isl_constraint_get_ctx(ptr));
}
-isl::constraint_list constraint_list::insert(unsigned int pos, isl::constraint el) const
+isl::constraint constraint::alloc_equality(isl::local_space ls)
{
- auto res = isl_constraint_list_insert(copy(), pos, el.release());
+ auto res = isl_constraint_alloc_equality(ls.release());
return manage(res);
}
-isl_size constraint_list::n_constraint() const
+isl::constraint constraint::alloc_inequality(isl::local_space ls)
{
- auto res = isl_constraint_list_n_constraint(get());
- return res;
+ auto res = isl_constraint_alloc_inequality(ls.release());
+ return manage(res);
}
-isl::constraint_list constraint_list::reverse() const
+isl::constraint constraint::set_coefficient_si(isl::dim type, int pos, int v) const
{
- auto res = isl_constraint_list_reverse(copy());
+ auto res = isl_constraint_set_coefficient_si(copy(), static_cast<enum isl_dim_type>(type), pos, v);
return manage(res);
}
-isl::constraint_list constraint_list::set_constraint(int index, isl::constraint el) const
+isl::constraint constraint::set_constant_si(int v) const
{
- auto res = isl_constraint_list_set_constraint(copy(), index, el.release());
+ auto res = isl_constraint_set_constant_si(copy(), v);
return manage(res);
}
-isl_size constraint_list::size() const
+isl::constraint constraint::set_constant_val(isl::val v) const
{
- auto res = isl_constraint_list_size(get());
- return res;
+ auto res = isl_constraint_set_constant_val(copy(), v.release());
+ return manage(res);
}
-isl::constraint_list constraint_list::swap(unsigned int pos1, unsigned int pos2) const
+isl::constraint constraint::set_constant_val(long v) const
{
- auto res = isl_constraint_list_swap(copy(), pos1, pos2);
- return manage(res);
+ return this->set_constant_val(isl::val(ctx(), v));
}
// implementations for isl::fixed_box
ptr = obj.copy();
}
-
fixed_box::fixed_box(__isl_take isl_fixed_box *ptr)
: ptr(ptr) {}
-
fixed_box &fixed_box::operator=(fixed_box obj) {
std::swap(this->ptr, obj.ptr);
return *this;
return ptr == nullptr;
}
-
isl::ctx fixed_box::ctx() const {
return isl::ctx(isl_fixed_box_get_ctx(ptr));
}
-void fixed_box::dump() const {
- isl_fixed_box_dump(get());
+boolean fixed_box::is_valid() const
+{
+ auto res = isl_fixed_box_is_valid(get());
+ return manage(res);
}
-
-isl::multi_aff fixed_box::get_offset() const
+isl::multi_aff fixed_box::offset() const
{
auto res = isl_fixed_box_get_offset(get());
return manage(res);
}
-isl::multi_val fixed_box::get_size() const
+isl::multi_aff fixed_box::get_offset() const
+{
+ return offset();
+}
+
+isl::multi_val fixed_box::size() const
{
auto res = isl_fixed_box_get_size(get());
return manage(res);
}
-isl::space fixed_box::get_space() const
+isl::multi_val fixed_box::get_size() const
+{
+ return size();
+}
+
+isl::space fixed_box::space() const
{
auto res = isl_fixed_box_get_space(get());
return manage(res);
}
-boolean fixed_box::is_valid() const
+isl::space fixed_box::get_space() const
{
- auto res = isl_fixed_box_is_valid(get());
- return manage(res);
+ return space();
+}
+
+inline std::ostream &operator<<(std::ostream &os, const fixed_box &obj)
+{
+ char *str = isl_fixed_box_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
// implementations for isl::id
ptr = obj.copy();
}
-
id::id(__isl_take isl_id *ptr)
: ptr(ptr) {}
return ptr == nullptr;
}
-
isl::ctx id::ctx() const {
return isl::ctx(isl_id_get_ctx(ptr));
}
-void id::dump() const {
- isl_id_dump(get());
-}
-
-
isl::id id::alloc(isl::ctx ctx, const std::string &name, void * user)
{
auto res = isl_id_alloc(ctx.release(), name.c_str(), user);
return manage(res);
}
-uint32_t id::get_hash() const
+std::string id::name() const
{
- auto res = isl_id_get_hash(get());
- return res;
+ auto res = isl_id_get_name(get());
+ std::string tmp(res);
+ return tmp;
}
std::string id::get_name() const
{
- auto res = isl_id_get_name(get());
- std::string tmp(res);
- return tmp;
+ return name();
}
-void * id::get_user() const
+isl::id_list id::to_list() const
+{
+ auto res = isl_id_to_list(copy());
+ return manage(res);
+}
+
+void * id::user() const
{
auto res = isl_id_get_user(get());
return res;
}
+void * id::get_user() const
+{
+ return user();
+}
+
+inline std::ostream &operator<<(std::ostream &os, const id &obj)
+{
+ char *str = isl_id_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
+}
+
// implementations for isl::id_list
id_list manage(__isl_take isl_id_list *ptr) {
return id_list(ptr);
ptr = obj.copy();
}
-
id_list::id_list(__isl_take isl_id_list *ptr)
: ptr(ptr) {}
+id_list::id_list(isl::ctx ctx, int n)
+{
+ auto res = isl_id_list_alloc(ctx.release(), n);
+ ptr = res;
+}
+
+id_list::id_list(isl::id el)
+{
+ auto res = isl_id_list_from_id(el.release());
+ ptr = res;
+}
+
+id_list::id_list(isl::ctx ctx, const std::string &str)
+{
+ auto res = isl_id_list_read_from_str(ctx.release(), str.c_str());
+ ptr = res;
+}
id_list &id_list::operator=(id_list obj) {
std::swap(this->ptr, obj.ptr);
return ptr == nullptr;
}
-
isl::ctx id_list::ctx() const {
return isl::ctx(isl_id_list_get_ctx(ptr));
}
-void id_list::dump() const {
- isl_id_list_dump(get());
-}
-
-
isl::id_list id_list::add(isl::id el) const
{
auto res = isl_id_list_add(copy(), el.release());
return manage(res);
}
-isl::id_list id_list::alloc(isl::ctx ctx, int n)
+isl::id_list id_list::add(const std::string &el) const
{
- auto res = isl_id_list_alloc(ctx.release(), n);
+ return this->add(isl::id(ctx(), el));
+}
+
+isl::id id_list::at(int index) const
+{
+ auto res = isl_id_list_get_at(get(), index);
return manage(res);
}
+isl::id id_list::get_at(int index) const
+{
+ return at(index);
+}
+
isl::id_list id_list::clear() const
{
auto res = isl_id_list_clear(copy());
return manage(res);
}
-stat id_list::foreach(const std::function<stat(id)> &fn) const
+stat id_list::foreach(const std::function<stat(isl::id)> &fn) const
{
struct fn_data {
- const std::function<stat(id)> *func;
- } fn_data = { &fn };
+ std::function<stat(isl::id)> func;
+ } fn_data = { fn };
auto fn_lambda = [](isl_id *arg_0, void *arg_1) -> isl_stat {
auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
+ auto ret = (data->func)(manage(arg_0));
return ret.release();
};
auto res = isl_id_list_foreach(get(), fn_lambda, &fn_data);
return manage(res);
}
-isl::id_list id_list::from_id(isl::id el)
-{
- auto res = isl_id_list_from_id(el.release());
- return manage(res);
-}
-
-isl::id id_list::get_at(int index) const
-{
- auto res = isl_id_list_get_at(get(), index);
- return manage(res);
-}
-
-isl::id id_list::get_id(int index) const
-{
- auto res = isl_id_list_get_id(get(), index);
- return manage(res);
-}
-
isl::id_list id_list::insert(unsigned int pos, isl::id el) const
{
auto res = isl_id_list_insert(copy(), pos, el.release());
return manage(res);
}
-isl_size id_list::n_id() const
-{
- auto res = isl_id_list_n_id(get());
- return res;
-}
-
-isl::id_list id_list::reverse() const
-{
- auto res = isl_id_list_reverse(copy());
- return manage(res);
-}
-
-isl::id_list id_list::set_id(int index, isl::id el) const
+isl::id_list id_list::insert(unsigned int pos, const std::string &el) const
{
- auto res = isl_id_list_set_id(copy(), index, el.release());
- return manage(res);
+ return this->insert(pos, isl::id(ctx(), el));
}
-isl_size id_list::size() const
+class size id_list::size() const
{
auto res = isl_id_list_size(get());
- return res;
+ return manage(res);
}
-isl::id_list id_list::swap(unsigned int pos1, unsigned int pos2) const
+inline std::ostream &operator<<(std::ostream &os, const id_list &obj)
{
- auto res = isl_id_list_swap(copy(), pos1, pos2);
- return manage(res);
+ char *str = isl_id_list_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
// implementations for isl::id_to_ast_expr
ptr = obj.copy();
}
-
id_to_ast_expr::id_to_ast_expr(__isl_take isl_id_to_ast_expr *ptr)
: ptr(ptr) {}
-
id_to_ast_expr &id_to_ast_expr::operator=(id_to_ast_expr obj) {
std::swap(this->ptr, obj.ptr);
return *this;
return ptr == nullptr;
}
-
isl::ctx id_to_ast_expr::ctx() const {
return isl::ctx(isl_id_to_ast_expr_get_ctx(ptr));
}
-void id_to_ast_expr::dump() const {
- isl_id_to_ast_expr_dump(get());
-}
-
-
isl::id_to_ast_expr id_to_ast_expr::alloc(isl::ctx ctx, int min_size)
{
auto res = isl_id_to_ast_expr_alloc(ctx.release(), min_size);
return manage(res);
}
-isl::id_to_ast_expr id_to_ast_expr::drop(isl::id key) const
-{
- auto res = isl_id_to_ast_expr_drop(copy(), key.release());
- return manage(res);
-}
-
-stat id_to_ast_expr::foreach(const std::function<stat(id, ast_expr)> &fn) const
-{
- struct fn_data {
- const std::function<stat(id, ast_expr)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_id *arg_0, isl_ast_expr *arg_1, void *arg_2) -> isl_stat {
- auto *data = static_cast<struct fn_data *>(arg_2);
- stat ret = (*data->func)(manage(arg_0), manage(arg_1));
- return ret.release();
- };
- auto res = isl_id_to_ast_expr_foreach(get(), fn_lambda, &fn_data);
- return manage(res);
-}
-
-isl::ast_expr id_to_ast_expr::get(isl::id key) const
-{
- auto res = isl_id_to_ast_expr_get(get(), key.release());
- return manage(res);
-}
-
-boolean id_to_ast_expr::has(const isl::id &key) const
+isl::id_to_ast_expr id_to_ast_expr::set(isl::id key, isl::ast_expr val) const
{
- auto res = isl_id_to_ast_expr_has(get(), key.get());
+ auto res = isl_id_to_ast_expr_set(copy(), key.release(), val.release());
return manage(res);
}
-isl::id_to_ast_expr id_to_ast_expr::set(isl::id key, isl::ast_expr val) const
+isl::id_to_ast_expr id_to_ast_expr::set(const std::string &key, const isl::ast_expr &val) const
{
- auto res = isl_id_to_ast_expr_set(copy(), key.release(), val.release());
- return manage(res);
+ return this->set(isl::id(ctx(), key), val);
}
// implementations for isl::local_space
ptr = obj.copy();
}
-
local_space::local_space(__isl_take isl_local_space *ptr)
: ptr(ptr) {}
return *this;
}
-local_space::~local_space() {
- if (ptr)
- isl_local_space_free(ptr);
-}
-
-__isl_give isl_local_space *local_space::copy() const & {
- return isl_local_space_copy(ptr);
-}
-
-__isl_keep isl_local_space *local_space::get() const {
- return ptr;
-}
-
-__isl_give isl_local_space *local_space::release() {
- isl_local_space *tmp = ptr;
- ptr = nullptr;
- return tmp;
-}
-
-bool local_space::is_null() const {
- return ptr == nullptr;
-}
-
-
-isl::ctx local_space::ctx() const {
- return isl::ctx(isl_local_space_get_ctx(ptr));
-}
-
-void local_space::dump() const {
- isl_local_space_dump(get());
-}
-
-
-isl::local_space local_space::add_dims(isl::dim type, unsigned int n) const
-{
- auto res = isl_local_space_add_dims(copy(), static_cast<enum isl_dim_type>(type), n);
- return manage(res);
-}
-
-isl_size local_space::dim(isl::dim type) const
-{
- auto res = isl_local_space_dim(get(), static_cast<enum isl_dim_type>(type));
- return res;
-}
-
-isl::local_space local_space::domain() const
-{
- auto res = isl_local_space_domain(copy());
- return manage(res);
-}
-
-isl::local_space local_space::drop_dims(isl::dim type, unsigned int first, unsigned int n) const
-{
- auto res = isl_local_space_drop_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
-}
-
-int local_space::find_dim_by_name(isl::dim type, const std::string &name) const
-{
- auto res = isl_local_space_find_dim_by_name(get(), static_cast<enum isl_dim_type>(type), name.c_str());
- return res;
-}
-
-isl::local_space local_space::flatten_domain() const
-{
- auto res = isl_local_space_flatten_domain(copy());
- return manage(res);
-}
-
-isl::local_space local_space::flatten_range() const
-{
- auto res = isl_local_space_flatten_range(copy());
- return manage(res);
-}
-
-isl::local_space local_space::from_domain() const
-{
- auto res = isl_local_space_from_domain(copy());
- return manage(res);
-}
-
-isl::id local_space::get_dim_id(isl::dim type, unsigned int pos) const
-{
- auto res = isl_local_space_get_dim_id(get(), static_cast<enum isl_dim_type>(type), pos);
- return manage(res);
-}
-
-std::string local_space::get_dim_name(isl::dim type, unsigned int pos) const
-{
- auto res = isl_local_space_get_dim_name(get(), static_cast<enum isl_dim_type>(type), pos);
- std::string tmp(res);
- return tmp;
-}
-
-isl::aff local_space::get_div(int pos) const
-{
- auto res = isl_local_space_get_div(get(), pos);
- return manage(res);
-}
-
-isl::space local_space::get_space() const
-{
- auto res = isl_local_space_get_space(get());
- return manage(res);
-}
-
-boolean local_space::has_dim_id(isl::dim type, unsigned int pos) const
-{
- auto res = isl_local_space_has_dim_id(get(), static_cast<enum isl_dim_type>(type), pos);
- return manage(res);
-}
-
-boolean local_space::has_dim_name(isl::dim type, unsigned int pos) const
-{
- auto res = isl_local_space_has_dim_name(get(), static_cast<enum isl_dim_type>(type), pos);
- return manage(res);
-}
-
-isl::local_space local_space::insert_dims(isl::dim type, unsigned int first, unsigned int n) const
-{
- auto res = isl_local_space_insert_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
-}
-
-isl::local_space local_space::intersect(isl::local_space ls2) const
-{
- auto res = isl_local_space_intersect(copy(), ls2.release());
- return manage(res);
-}
-
-boolean local_space::is_equal(const isl::local_space &ls2) const
-{
- auto res = isl_local_space_is_equal(get(), ls2.get());
- return manage(res);
-}
-
-boolean local_space::is_params() const
-{
- auto res = isl_local_space_is_params(get());
- return manage(res);
-}
-
-boolean local_space::is_set() const
-{
- auto res = isl_local_space_is_set(get());
- return manage(res);
+local_space::~local_space() {
+ if (ptr)
+ isl_local_space_free(ptr);
}
-isl::local_space local_space::range() const
-{
- auto res = isl_local_space_range(copy());
- return manage(res);
+__isl_give isl_local_space *local_space::copy() const & {
+ return isl_local_space_copy(ptr);
}
-isl::local_space local_space::set_dim_id(isl::dim type, unsigned int pos, isl::id id) const
-{
- auto res = isl_local_space_set_dim_id(copy(), static_cast<enum isl_dim_type>(type), pos, id.release());
- return manage(res);
+__isl_keep isl_local_space *local_space::get() const {
+ return ptr;
}
-isl::local_space local_space::set_from_params() const
-{
- auto res = isl_local_space_set_from_params(copy());
- return manage(res);
+__isl_give isl_local_space *local_space::release() {
+ isl_local_space *tmp = ptr;
+ ptr = nullptr;
+ return tmp;
}
-isl::local_space local_space::set_tuple_id(isl::dim type, isl::id id) const
-{
- auto res = isl_local_space_set_tuple_id(copy(), static_cast<enum isl_dim_type>(type), id.release());
- return manage(res);
+bool local_space::is_null() const {
+ return ptr == nullptr;
}
-isl::local_space local_space::wrap() const
-{
- auto res = isl_local_space_wrap(copy());
- return manage(res);
+isl::ctx local_space::ctx() const {
+ return isl::ctx(isl_local_space_get_ctx(ptr));
}
// implementations for isl::map
ptr = obj.copy();
}
-
map::map(__isl_take isl_map *ptr)
: ptr(ptr) {}
auto res = isl_map_from_basic_map(bmap.release());
ptr = res;
}
+
map::map(isl::ctx ctx, const std::string &str)
{
auto res = isl_map_read_from_str(ctx.release(), str.c_str());
return ptr == nullptr;
}
-
isl::ctx map::ctx() const {
return isl::ctx(isl_map_get_ctx(ptr));
}
-void map::dump() const {
- isl_map_dump(get());
-}
-
-
isl::map map::add_constraint(isl::constraint constraint) const
{
auto res = isl_map_add_constraint(copy(), constraint.release());
return manage(res);
}
+isl::union_map map::apply_domain(const isl::union_map &umap2) const
+{
+ return isl::union_map(*this).apply_domain(umap2);
+}
+
+isl::map map::apply_domain(const isl::basic_map &map2) const
+{
+ return this->apply_domain(isl::map(map2));
+}
+
isl::map map::apply_range(isl::map map2) const
{
auto res = isl_map_apply_range(copy(), map2.release());
return manage(res);
}
-isl::set map::bind_domain(isl::multi_id tuple) const
+isl::union_map map::apply_range(const isl::union_map &umap2) const
{
- auto res = isl_map_bind_domain(copy(), tuple.release());
- return manage(res);
+ return isl::union_map(*this).apply_range(umap2);
}
-isl::set map::bind_range(isl::multi_id tuple) const
+isl::map map::apply_range(const isl::basic_map &map2) const
{
- auto res = isl_map_bind_range(copy(), tuple.release());
+ return this->apply_range(isl::map(map2));
+}
+
+isl::map map::as_map() const
+{
+ return isl::union_map(*this).as_map();
+}
+
+isl::multi_union_pw_aff map::as_multi_union_pw_aff() const
+{
+ return isl::union_map(*this).as_multi_union_pw_aff();
+}
+
+isl::pw_multi_aff map::as_pw_multi_aff() const
+{
+ auto res = isl_map_as_pw_multi_aff(copy());
return manage(res);
}
-boolean map::can_curry() const
+isl::union_pw_multi_aff map::as_union_pw_multi_aff() const
{
- auto res = isl_map_can_curry(get());
+ return isl::union_map(*this).as_union_pw_multi_aff();
+}
+
+isl::basic_map_list map::basic_map_list() const
+{
+ auto res = isl_map_get_basic_map_list(get());
return manage(res);
}
-boolean map::can_range_curry() const
+isl::basic_map_list map::get_basic_map_list() const
+{
+ return basic_map_list();
+}
+
+isl::set map::bind_domain(isl::multi_id tuple) const
{
- auto res = isl_map_can_range_curry(get());
+ auto res = isl_map_bind_domain(copy(), tuple.release());
return manage(res);
}
-boolean map::can_uncurry() const
+isl::set map::bind_range(isl::multi_id tuple) const
{
- auto res = isl_map_can_uncurry(get());
+ auto res = isl_map_bind_range(copy(), tuple.release());
return manage(res);
}
-boolean map::can_zip() const
+boolean map::can_curry() const
{
- auto res = isl_map_can_zip(get());
+ auto res = isl_map_can_curry(get());
return manage(res);
}
return manage(res);
}
-isl::basic_map map::convex_hull() const
+isl::union_map map::compute_divs() const
{
- auto res = isl_map_convex_hull(copy());
- return manage(res);
+ return isl::union_map(*this).compute_divs();
}
isl::map map::curry() const
return manage(res);
}
-isl::map map::deltas_map() const
-{
- auto res = isl_map_deltas_map(copy());
- return manage(res);
-}
-
isl::map map::detect_equalities() const
{
auto res = isl_map_detect_equalities(copy());
return manage(res);
}
-isl_size map::dim(isl::dim type) const
+class size map::dim(isl::dim type) const
{
auto res = isl_map_dim(get(), static_cast<enum isl_dim_type>(type));
- return res;
+ return manage(res);
}
isl::pw_aff map::dim_max(int pos) const
return manage(res);
}
-boolean map::domain_is_wrapping() const
+isl::map map::domain_map() const
{
- auto res = isl_map_domain_is_wrapping(get());
+ auto res = isl_map_domain_map(copy());
return manage(res);
}
-isl::map map::domain_map() const
+isl::union_pw_multi_aff map::domain_map_union_pw_multi_aff() const
{
- auto res = isl_map_domain_map(copy());
- return manage(res);
+ return isl::union_map(*this).domain_map_union_pw_multi_aff();
}
isl::map map::domain_product(isl::map map2) const
return manage(res);
}
-isl_size map::domain_tuple_dim() const
+isl::union_map map::domain_product(const isl::union_map &umap2) const
{
- auto res = isl_map_domain_tuple_dim(get());
- return res;
+ return isl::union_map(*this).domain_product(umap2);
}
-isl::map map::drop_constraints_involving_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::map map::domain_product(const isl::basic_map &map2) const
{
- auto res = isl_map_drop_constraints_involving_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return this->domain_product(isl::map(map2));
}
-isl::map map::drop_constraints_not_involving_dims(isl::dim type, unsigned int first, unsigned int n) const
+class size map::domain_tuple_dim() const
{
- auto res = isl_map_drop_constraints_not_involving_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
+ auto res = isl_map_domain_tuple_dim(get());
return manage(res);
}
-isl::map map::drop_unused_params() const
+isl::id map::domain_tuple_id() const
{
- auto res = isl_map_drop_unused_params(copy());
+ auto res = isl_map_get_domain_tuple_id(get());
return manage(res);
}
-isl::map map::eliminate(isl::dim type, unsigned int first, unsigned int n) const
+isl::id map::get_domain_tuple_id() const
{
- auto res = isl_map_eliminate(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return domain_tuple_id();
}
isl::map map::empty(isl::space space)
return manage(res);
}
-isl::map map::equate(isl::dim type1, int pos1, isl::dim type2, int pos2) const
+isl::union_map map::eq_at(const isl::multi_union_pw_aff &mupa) const
{
- auto res = isl_map_equate(copy(), static_cast<enum isl_dim_type>(type1), pos1, static_cast<enum isl_dim_type>(type2), pos2);
- return manage(res);
+ return isl::union_map(*this).eq_at(mupa);
}
-isl::map map::factor_domain() const
+isl::map map::eq_at(const isl::aff &mpa) const
{
- auto res = isl_map_factor_domain(copy());
- return manage(res);
+ return this->eq_at(isl::multi_pw_aff(mpa));
}
-isl::map map::factor_range() const
+isl::map map::eq_at(const isl::multi_aff &mpa) const
{
- auto res = isl_map_factor_range(copy());
- return manage(res);
+ return this->eq_at(isl::multi_pw_aff(mpa));
}
-int map::find_dim_by_id(isl::dim type, const isl::id &id) const
+isl::map map::eq_at(const isl::pw_aff &mpa) const
{
- auto res = isl_map_find_dim_by_id(get(), static_cast<enum isl_dim_type>(type), id.get());
- return res;
+ return this->eq_at(isl::multi_pw_aff(mpa));
}
-int map::find_dim_by_name(isl::dim type, const std::string &name) const
+isl::map map::eq_at(const isl::pw_multi_aff &mpa) const
{
- auto res = isl_map_find_dim_by_name(get(), static_cast<enum isl_dim_type>(type), name.c_str());
- return res;
+ return this->eq_at(isl::multi_pw_aff(mpa));
}
-isl::map map::fix_si(isl::dim type, unsigned int pos, int value) const
+isl::map map::equate(isl::dim type1, int pos1, isl::dim type2, int pos2) const
{
- auto res = isl_map_fix_si(copy(), static_cast<enum isl_dim_type>(type), pos, value);
+ auto res = isl_map_equate(copy(), static_cast<enum isl_dim_type>(type1), pos1, static_cast<enum isl_dim_type>(type2), pos2);
return manage(res);
}
-isl::map map::fix_val(isl::dim type, unsigned int pos, isl::val v) const
+boolean map::every_map(const std::function<boolean(isl::map)> &test) const
{
- auto res = isl_map_fix_val(copy(), static_cast<enum isl_dim_type>(type), pos, v.release());
- return manage(res);
+ return isl::union_map(*this).every_map(test);
}
-isl::map map::fixed_power_val(isl::val exp) const
+isl::map map::extract_map(const isl::space &space) const
+{
+ return isl::union_map(*this).extract_map(space);
+}
+
+isl::map map::factor_domain() const
{
- auto res = isl_map_fixed_power_val(copy(), exp.release());
+ auto res = isl_map_factor_domain(copy());
return manage(res);
}
-isl::map map::flat_domain_product(isl::map map2) const
+isl::map map::factor_range() const
{
- auto res = isl_map_flat_domain_product(copy(), map2.release());
+ auto res = isl_map_factor_range(copy());
return manage(res);
}
-isl::map map::flat_product(isl::map map2) const
+isl::map map::fix_si(isl::dim type, unsigned int pos, int value) const
{
- auto res = isl_map_flat_product(copy(), map2.release());
+ auto res = isl_map_fix_si(copy(), static_cast<enum isl_dim_type>(type), pos, value);
return manage(res);
}
+isl::union_map map::fixed_power(const isl::val &exp) const
+{
+ return isl::union_map(*this).fixed_power(exp);
+}
+
+isl::union_map map::fixed_power(long exp) const
+{
+ return this->fixed_power(isl::val(ctx(), exp));
+}
+
isl::map map::flat_range_product(isl::map map2) const
{
auto res = isl_map_flat_range_product(copy(), map2.release());
return manage(res);
}
+isl::union_map map::flat_range_product(const isl::union_map &umap2) const
+{
+ return isl::union_map(*this).flat_range_product(umap2);
+}
+
+isl::map map::flat_range_product(const isl::basic_map &map2) const
+{
+ return this->flat_range_product(isl::map(map2));
+}
+
isl::map map::flatten() const
{
auto res = isl_map_flatten(copy());
return manage(res);
}
-stat map::foreach_basic_map(const std::function<stat(basic_map)> &fn) const
+isl::map map::floordiv_val(long d) const
+{
+ return this->floordiv_val(isl::val(ctx(), d));
+}
+
+stat map::foreach_basic_map(const std::function<stat(isl::basic_map)> &fn) const
{
struct fn_data {
- const std::function<stat(basic_map)> *func;
- } fn_data = { &fn };
+ std::function<stat(isl::basic_map)> func;
+ } fn_data = { fn };
auto fn_lambda = [](isl_basic_map *arg_0, void *arg_1) -> isl_stat {
auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
+ auto ret = (data->func)(manage(arg_0));
return ret.release();
};
auto res = isl_map_foreach_basic_map(get(), fn_lambda, &fn_data);
return manage(res);
}
+stat map::foreach_map(const std::function<stat(isl::map)> &fn) const
+{
+ return isl::union_map(*this).foreach_map(fn);
+}
+
isl::map map::from_aff(isl::aff aff)
{
auto res = isl_map_from_aff(aff.release());
return manage(res);
}
-isl::map map::from_multi_pw_aff(isl::multi_pw_aff mpa)
-{
- auto res = isl_map_from_multi_pw_aff(mpa.release());
- return manage(res);
-}
-
isl::map map::from_pw_aff(isl::pw_aff pwaff)
{
auto res = isl_map_from_pw_aff(pwaff.release());
return manage(res);
}
-isl::map map::from_pw_multi_aff(isl::pw_multi_aff pma)
-{
- auto res = isl_map_from_pw_multi_aff(pma.release());
- return manage(res);
-}
-
isl::map map::from_range(isl::set set)
{
auto res = isl_map_from_range(set.release());
return manage(res);
}
-isl::basic_map_list map::get_basic_map_list() const
+isl::map map::gist(isl::map context) const
{
- auto res = isl_map_get_basic_map_list(get());
+ auto res = isl_map_gist(copy(), context.release());
return manage(res);
}
-isl::id map::get_dim_id(isl::dim type, unsigned int pos) const
+isl::union_map map::gist(const isl::union_map &context) const
{
- auto res = isl_map_get_dim_id(get(), static_cast<enum isl_dim_type>(type), pos);
- return manage(res);
+ return isl::union_map(*this).gist(context);
}
-std::string map::get_dim_name(isl::dim type, unsigned int pos) const
+isl::map map::gist(const isl::basic_map &context) const
{
- auto res = isl_map_get_dim_name(get(), static_cast<enum isl_dim_type>(type), pos);
- std::string tmp(res);
- return tmp;
+ return this->gist(isl::map(context));
}
-uint32_t map::get_hash() const
+isl::map map::gist_domain(isl::set context) const
{
- auto res = isl_map_get_hash(get());
- return res;
+ auto res = isl_map_gist_domain(copy(), context.release());
+ return manage(res);
}
-isl::fixed_box map::get_range_simple_fixed_box_hull() const
+isl::union_map map::gist_domain(const isl::union_set &uset) const
{
- auto res = isl_map_get_range_simple_fixed_box_hull(get());
- return manage(res);
+ return isl::union_map(*this).gist_domain(uset);
}
-isl::space map::get_space() const
+isl::map map::gist_domain(const isl::basic_set &context) const
{
- auto res = isl_map_get_space(get());
- return manage(res);
+ return this->gist_domain(isl::set(context));
}
-isl::id map::get_tuple_id(isl::dim type) const
+isl::map map::gist_domain(const isl::point &context) const
{
- auto res = isl_map_get_tuple_id(get(), static_cast<enum isl_dim_type>(type));
+ return this->gist_domain(isl::set(context));
+}
+
+isl::map map::gist_params(isl::set context) const
+{
+ auto res = isl_map_gist_params(copy(), context.release());
return manage(res);
}
-std::string map::get_tuple_name(isl::dim type) const
+isl::union_map map::gist_range(const isl::union_set &uset) const
{
- auto res = isl_map_get_tuple_name(get(), static_cast<enum isl_dim_type>(type));
- std::string tmp(res);
- return tmp;
+ return isl::union_map(*this).gist_range(uset);
}
-isl::map map::gist(isl::map context) const
+boolean map::has_domain_tuple_id() const
{
- auto res = isl_map_gist(copy(), context.release());
+ auto res = isl_map_has_domain_tuple_id(get());
return manage(res);
}
-isl::map map::gist_basic_map(isl::basic_map context) const
+boolean map::has_equal_space(const isl::map &map2) const
{
- auto res = isl_map_gist_basic_map(copy(), context.release());
+ auto res = isl_map_has_equal_space(get(), map2.get());
return manage(res);
}
-isl::map map::gist_domain(isl::set context) const
+boolean map::has_range_tuple_id() const
{
- auto res = isl_map_gist_domain(copy(), context.release());
+ auto res = isl_map_has_range_tuple_id(get());
return manage(res);
}
-isl::map map::gist_params(isl::set context) const
+boolean map::has_tuple_id(isl::dim type) const
{
- auto res = isl_map_gist_params(copy(), context.release());
+ auto res = isl_map_has_tuple_id(get(), static_cast<enum isl_dim_type>(type));
return manage(res);
}
-isl::map map::gist_range(isl::set context) const
+boolean map::has_tuple_name(isl::dim type) const
{
- auto res = isl_map_gist_range(copy(), context.release());
+ auto res = isl_map_has_tuple_name(get(), static_cast<enum isl_dim_type>(type));
return manage(res);
}
-boolean map::has_dim_id(isl::dim type, unsigned int pos) const
+isl::map map::identity(isl::space space)
{
- auto res = isl_map_has_dim_id(get(), static_cast<enum isl_dim_type>(type), pos);
+ auto res = isl_map_identity(space.release());
return manage(res);
}
-boolean map::has_dim_name(isl::dim type, unsigned int pos) const
+isl::map map::intersect(isl::map map2) const
{
- auto res = isl_map_has_dim_name(get(), static_cast<enum isl_dim_type>(type), pos);
+ auto res = isl_map_intersect(copy(), map2.release());
return manage(res);
}
-boolean map::has_equal_space(const isl::map &map2) const
+isl::union_map map::intersect(const isl::union_map &umap2) const
{
- auto res = isl_map_has_equal_space(get(), map2.get());
- return manage(res);
+ return isl::union_map(*this).intersect(umap2);
}
-boolean map::has_tuple_id(isl::dim type) const
+isl::map map::intersect(const isl::basic_map &map2) const
{
- auto res = isl_map_has_tuple_id(get(), static_cast<enum isl_dim_type>(type));
- return manage(res);
+ return this->intersect(isl::map(map2));
}
-boolean map::has_tuple_name(isl::dim type) const
+isl::map map::intersect_domain(isl::set set) const
{
- auto res = isl_map_has_tuple_name(get(), static_cast<enum isl_dim_type>(type));
+ auto res = isl_map_intersect_domain(copy(), set.release());
return manage(res);
}
-isl::map map::identity(isl::space space)
+isl::union_map map::intersect_domain(const isl::space &space) const
{
- auto res = isl_map_identity(space.release());
- return manage(res);
+ return isl::union_map(*this).intersect_domain(space);
}
-isl::map map::insert_dims(isl::dim type, unsigned int pos, unsigned int n) const
+isl::union_map map::intersect_domain(const isl::union_set &uset) const
{
- auto res = isl_map_insert_dims(copy(), static_cast<enum isl_dim_type>(type), pos, n);
- return manage(res);
+ return isl::union_map(*this).intersect_domain(uset);
}
-isl::map map::intersect(isl::map map2) const
+isl::map map::intersect_domain(const isl::basic_set &set) const
{
- auto res = isl_map_intersect(copy(), map2.release());
- return manage(res);
+ return this->intersect_domain(isl::set(set));
}
-isl::map map::intersect_domain(isl::set set) const
+isl::map map::intersect_domain(const isl::point &set) const
{
- auto res = isl_map_intersect_domain(copy(), set.release());
- return manage(res);
+ return this->intersect_domain(isl::set(set));
}
isl::map map::intersect_domain_factor_domain(isl::map factor) const
return manage(res);
}
+isl::union_map map::intersect_domain_factor_domain(const isl::union_map &factor) const
+{
+ return isl::union_map(*this).intersect_domain_factor_domain(factor);
+}
+
+isl::map map::intersect_domain_factor_domain(const isl::basic_map &factor) const
+{
+ return this->intersect_domain_factor_domain(isl::map(factor));
+}
+
isl::map map::intersect_domain_factor_range(isl::map factor) const
{
auto res = isl_map_intersect_domain_factor_range(copy(), factor.release());
return manage(res);
}
+isl::union_map map::intersect_domain_factor_range(const isl::union_map &factor) const
+{
+ return isl::union_map(*this).intersect_domain_factor_range(factor);
+}
+
+isl::map map::intersect_domain_factor_range(const isl::basic_map &factor) const
+{
+ return this->intersect_domain_factor_range(isl::map(factor));
+}
+
isl::map map::intersect_params(isl::set params) const
{
auto res = isl_map_intersect_params(copy(), params.release());
return manage(res);
}
+isl::union_map map::intersect_range(const isl::space &space) const
+{
+ return isl::union_map(*this).intersect_range(space);
+}
+
+isl::union_map map::intersect_range(const isl::union_set &uset) const
+{
+ return isl::union_map(*this).intersect_range(uset);
+}
+
+isl::map map::intersect_range(const isl::basic_set &set) const
+{
+ return this->intersect_range(isl::set(set));
+}
+
+isl::map map::intersect_range(const isl::point &set) const
+{
+ return this->intersect_range(isl::set(set));
+}
+
isl::map map::intersect_range_factor_domain(isl::map factor) const
{
auto res = isl_map_intersect_range_factor_domain(copy(), factor.release());
return manage(res);
}
+isl::union_map map::intersect_range_factor_domain(const isl::union_map &factor) const
+{
+ return isl::union_map(*this).intersect_range_factor_domain(factor);
+}
+
+isl::map map::intersect_range_factor_domain(const isl::basic_map &factor) const
+{
+ return this->intersect_range_factor_domain(isl::map(factor));
+}
+
isl::map map::intersect_range_factor_range(isl::map factor) const
{
auto res = isl_map_intersect_range_factor_range(copy(), factor.release());
return manage(res);
}
+isl::union_map map::intersect_range_factor_range(const isl::union_map &factor) const
+{
+ return isl::union_map(*this).intersect_range_factor_range(factor);
+}
+
+isl::map map::intersect_range_factor_range(const isl::basic_map &factor) const
+{
+ return this->intersect_range_factor_range(isl::map(factor));
+}
+
boolean map::involves_dims(isl::dim type, unsigned int first, unsigned int n) const
{
auto res = isl_map_involves_dims(get(), static_cast<enum isl_dim_type>(type), first, n);
return manage(res);
}
+boolean map::is_disjoint(const isl::union_map &umap2) const
+{
+ return isl::union_map(*this).is_disjoint(umap2);
+}
+
+boolean map::is_disjoint(const isl::basic_map &map2) const
+{
+ return this->is_disjoint(isl::map(map2));
+}
+
boolean map::is_empty() const
{
auto res = isl_map_is_empty(get());
return manage(res);
}
-boolean map::is_identity() const
+boolean map::is_equal(const isl::union_map &umap2) const
{
- auto res = isl_map_is_identity(get());
- return manage(res);
+ return isl::union_map(*this).is_equal(umap2);
}
-boolean map::is_injective() const
+boolean map::is_equal(const isl::basic_map &map2) const
{
- auto res = isl_map_is_injective(get());
- return manage(res);
+ return this->is_equal(isl::map(map2));
}
-boolean map::is_product() const
+boolean map::is_injective() const
{
- auto res = isl_map_is_product(get());
+ auto res = isl_map_is_injective(get());
return manage(res);
}
return manage(res);
}
+boolean map::is_strict_subset(const isl::union_map &umap2) const
+{
+ return isl::union_map(*this).is_strict_subset(umap2);
+}
+
+boolean map::is_strict_subset(const isl::basic_map &map2) const
+{
+ return this->is_strict_subset(isl::map(map2));
+}
+
boolean map::is_subset(const isl::map &map2) const
{
auto res = isl_map_is_subset(get(), map2.get());
return manage(res);
}
-int map::is_translation() const
+boolean map::is_subset(const isl::union_map &umap2) const
+{
+ return isl::union_map(*this).is_subset(umap2);
+}
+
+boolean map::is_subset(const isl::basic_map &map2) const
+{
+ return this->is_subset(isl::map(map2));
+}
+
+boolean map::isa_map() const
{
- auto res = isl_map_is_translation(get());
- return res;
+ return isl::union_map(*this).isa_map();
}
isl::map map::lex_ge(isl::space set_space)
return manage(res);
}
-isl::map map::lex_ge_first(isl::space space, unsigned int n)
-{
- auto res = isl_map_lex_ge_first(space.release(), n);
- return manage(res);
-}
-
-isl::map map::lex_ge_map(isl::map map2) const
-{
- auto res = isl_map_lex_ge_map(copy(), map2.release());
- return manage(res);
-}
-
isl::map map::lex_gt(isl::space set_space)
{
auto res = isl_map_lex_gt(set_space.release());
return manage(res);
}
-isl::map map::lex_gt_first(isl::space space, unsigned int n)
-{
- auto res = isl_map_lex_gt_first(space.release(), n);
- return manage(res);
-}
-
-isl::map map::lex_gt_map(isl::map map2) const
-{
- auto res = isl_map_lex_gt_map(copy(), map2.release());
- return manage(res);
-}
-
isl::map map::lex_le(isl::space set_space)
{
auto res = isl_map_lex_le(set_space.release());
return manage(res);
}
-isl::map map::lex_le_first(isl::space space, unsigned int n)
-{
- auto res = isl_map_lex_le_first(space.release(), n);
- return manage(res);
-}
-
-isl::map map::lex_le_map(isl::map map2) const
-{
- auto res = isl_map_lex_le_map(copy(), map2.release());
- return manage(res);
-}
-
isl::map map::lex_lt(isl::space set_space)
{
auto res = isl_map_lex_lt(set_space.release());
return manage(res);
}
-isl::map map::lex_lt_first(isl::space space, unsigned int n)
-{
- auto res = isl_map_lex_lt_first(space.release(), n);
- return manage(res);
-}
-
-isl::map map::lex_lt_map(isl::map map2) const
-{
- auto res = isl_map_lex_lt_map(copy(), map2.release());
- return manage(res);
-}
-
isl::map map::lexmax() const
{
auto res = isl_map_lexmax(copy());
return manage(res);
}
-isl::map map::lower_bound_val(isl::dim type, unsigned int pos, isl::val value) const
+isl::map_list map::map_list() const
{
- auto res = isl_map_lower_bound_val(copy(), static_cast<enum isl_dim_type>(type), pos, value.release());
- return manage(res);
+ return isl::union_map(*this).map_list();
}
isl::multi_pw_aff map::max_multi_pw_aff() const
return manage(res);
}
-isl_size map::n_basic_map() const
+class size map::n_basic_map() const
{
auto res = isl_map_n_basic_map(get());
- return res;
+ return manage(res);
}
-isl::map map::nat_universe(isl::space space)
+isl::map map::order_lt(isl::dim type1, int pos1, isl::dim type2, int pos2) const
{
- auto res = isl_map_nat_universe(space.release());
+ auto res = isl_map_order_lt(copy(), static_cast<enum isl_dim_type>(type1), pos1, static_cast<enum isl_dim_type>(type2), pos2);
return manage(res);
}
-isl::map map::neg() const
+isl::set map::params() const
{
- auto res = isl_map_neg(copy());
- return manage(res);
+ return isl::union_map(*this).params();
}
-isl::map map::oppose(isl::dim type1, int pos1, isl::dim type2, int pos2) const
+isl::basic_map map::polyhedral_hull() const
{
- auto res = isl_map_oppose(copy(), static_cast<enum isl_dim_type>(type1), pos1, static_cast<enum isl_dim_type>(type2), pos2);
+ auto res = isl_map_polyhedral_hull(copy());
return manage(res);
}
-isl::map map::order_ge(isl::dim type1, int pos1, isl::dim type2, int pos2) const
+isl::map map::preimage_domain(isl::multi_aff ma) const
{
- auto res = isl_map_order_ge(copy(), static_cast<enum isl_dim_type>(type1), pos1, static_cast<enum isl_dim_type>(type2), pos2);
+ auto res = isl_map_preimage_domain_multi_aff(copy(), ma.release());
return manage(res);
}
-isl::map map::order_gt(isl::dim type1, int pos1, isl::dim type2, int pos2) const
+isl::map map::preimage_domain(isl::multi_pw_aff mpa) const
{
- auto res = isl_map_order_gt(copy(), static_cast<enum isl_dim_type>(type1), pos1, static_cast<enum isl_dim_type>(type2), pos2);
+ auto res = isl_map_preimage_domain_multi_pw_aff(copy(), mpa.release());
return manage(res);
}
-isl::map map::order_le(isl::dim type1, int pos1, isl::dim type2, int pos2) const
+isl::map map::preimage_domain(isl::pw_multi_aff pma) const
{
- auto res = isl_map_order_le(copy(), static_cast<enum isl_dim_type>(type1), pos1, static_cast<enum isl_dim_type>(type2), pos2);
+ auto res = isl_map_preimage_domain_pw_multi_aff(copy(), pma.release());
return manage(res);
}
-isl::map map::order_lt(isl::dim type1, int pos1, isl::dim type2, int pos2) const
+isl::union_map map::preimage_domain(const isl::union_pw_multi_aff &upma) const
{
- auto res = isl_map_order_lt(copy(), static_cast<enum isl_dim_type>(type1), pos1, static_cast<enum isl_dim_type>(type2), pos2);
- return manage(res);
+ return isl::union_map(*this).preimage_domain(upma);
}
-isl::set map::params() const
+isl::map map::preimage_range(isl::multi_aff ma) const
{
- auto res = isl_map_params(copy());
+ auto res = isl_map_preimage_range_multi_aff(copy(), ma.release());
return manage(res);
}
-isl::val map::plain_get_val_if_fixed(isl::dim type, unsigned int pos) const
+isl::map map::preimage_range(isl::pw_multi_aff pma) const
{
- auto res = isl_map_plain_get_val_if_fixed(get(), static_cast<enum isl_dim_type>(type), pos);
+ auto res = isl_map_preimage_range_pw_multi_aff(copy(), pma.release());
return manage(res);
}
-boolean map::plain_is_empty() const
+isl::union_map map::preimage_range(const isl::union_pw_multi_aff &upma) const
{
- auto res = isl_map_plain_is_empty(get());
- return manage(res);
+ return isl::union_map(*this).preimage_range(upma);
}
-boolean map::plain_is_equal(const isl::map &map2) const
+isl::map map::product(isl::map map2) const
{
- auto res = isl_map_plain_is_equal(get(), map2.get());
+ auto res = isl_map_product(copy(), map2.release());
return manage(res);
}
-boolean map::plain_is_injective() const
+isl::union_map map::product(const isl::union_map &umap2) const
{
- auto res = isl_map_plain_is_injective(get());
- return manage(res);
+ return isl::union_map(*this).product(umap2);
}
-boolean map::plain_is_single_valued() const
+isl::map map::product(const isl::basic_map &map2) const
{
- auto res = isl_map_plain_is_single_valued(get());
- return manage(res);
+ return this->product(isl::map(map2));
}
-boolean map::plain_is_universe() const
+isl::map map::project_out(isl::dim type, unsigned int first, unsigned int n) const
{
- auto res = isl_map_plain_is_universe(get());
+ auto res = isl_map_project_out(copy(), static_cast<enum isl_dim_type>(type), first, n);
return manage(res);
}
-isl::basic_map map::plain_unshifted_simple_hull() const
+isl::map map::project_out_all_params() const
{
- auto res = isl_map_plain_unshifted_simple_hull(copy());
+ auto res = isl_map_project_out_all_params(copy());
return manage(res);
}
-isl::basic_map map::polyhedral_hull() const
+isl::set map::range() const
{
- auto res = isl_map_polyhedral_hull(copy());
+ auto res = isl_map_range(copy());
return manage(res);
}
-isl::map map::preimage_domain(isl::multi_aff ma) const
+isl::map map::range_factor_domain() const
{
- auto res = isl_map_preimage_domain_multi_aff(copy(), ma.release());
+ auto res = isl_map_range_factor_domain(copy());
return manage(res);
}
-isl::map map::preimage_domain(isl::multi_pw_aff mpa) const
+isl::map map::range_factor_range() const
{
- auto res = isl_map_preimage_domain_multi_pw_aff(copy(), mpa.release());
+ auto res = isl_map_range_factor_range(copy());
return manage(res);
}
-isl::map map::preimage_domain(isl::pw_multi_aff pma) const
+isl::fixed_box map::range_lattice_tile() const
{
- auto res = isl_map_preimage_domain_pw_multi_aff(copy(), pma.release());
+ auto res = isl_map_get_range_lattice_tile(get());
return manage(res);
}
-isl::map map::preimage_range(isl::multi_aff ma) const
+isl::fixed_box map::get_range_lattice_tile() const
{
- auto res = isl_map_preimage_range_multi_aff(copy(), ma.release());
- return manage(res);
+ return range_lattice_tile();
}
-isl::map map::preimage_range(isl::pw_multi_aff pma) const
+isl::map map::range_map() const
{
- auto res = isl_map_preimage_range_pw_multi_aff(copy(), pma.release());
+ auto res = isl_map_range_map(copy());
return manage(res);
}
-isl::map map::product(isl::map map2) const
+isl::map map::range_product(isl::map map2) const
{
- auto res = isl_map_product(copy(), map2.release());
+ auto res = isl_map_range_product(copy(), map2.release());
return manage(res);
}
-isl::map map::project_out(isl::dim type, unsigned int first, unsigned int n) const
+isl::union_map map::range_product(const isl::union_map &umap2) const
{
- auto res = isl_map_project_out(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::union_map(*this).range_product(umap2);
}
-isl::map map::project_out_all_params() const
+isl::map map::range_product(const isl::basic_map &map2) const
{
- auto res = isl_map_project_out_all_params(copy());
- return manage(res);
+ return this->range_product(isl::map(map2));
}
-isl::set map::range() const
+isl::map map::range_reverse() const
{
- auto res = isl_map_range(copy());
+ auto res = isl_map_range_reverse(copy());
return manage(res);
}
-isl::map map::range_curry() const
+isl::fixed_box map::range_simple_fixed_box_hull() const
{
- auto res = isl_map_range_curry(copy());
+ auto res = isl_map_get_range_simple_fixed_box_hull(get());
return manage(res);
}
-isl::map map::range_factor_domain() const
+isl::fixed_box map::get_range_simple_fixed_box_hull() const
{
- auto res = isl_map_range_factor_domain(copy());
- return manage(res);
+ return range_simple_fixed_box_hull();
}
-isl::map map::range_factor_range() const
+class size map::range_tuple_dim() const
{
- auto res = isl_map_range_factor_range(copy());
+ auto res = isl_map_range_tuple_dim(get());
return manage(res);
}
-boolean map::range_is_wrapping() const
+isl::id map::range_tuple_id() const
{
- auto res = isl_map_range_is_wrapping(get());
+ auto res = isl_map_get_range_tuple_id(get());
return manage(res);
}
-isl::map map::range_map() const
+isl::id map::get_range_tuple_id() const
{
- auto res = isl_map_range_map(copy());
- return manage(res);
+ return range_tuple_id();
}
-isl::map map::range_product(isl::map map2) const
+isl::map map::reverse() const
{
- auto res = isl_map_range_product(copy(), map2.release());
+ auto res = isl_map_reverse(copy());
return manage(res);
}
-isl::map map::range_reverse() const
+isl::basic_map map::sample() const
{
- auto res = isl_map_range_reverse(copy());
+ auto res = isl_map_sample(copy());
return manage(res);
}
-isl_size map::range_tuple_dim() const
+isl::map map::set_domain_tuple(isl::id id) const
{
- auto res = isl_map_range_tuple_dim(get());
- return res;
+ auto res = isl_map_set_domain_tuple_id(copy(), id.release());
+ return manage(res);
}
-isl::map map::remove_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::map map::set_domain_tuple(const std::string &id) const
{
- auto res = isl_map_remove_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return this->set_domain_tuple(isl::id(ctx(), id));
}
-isl::map map::remove_divs() const
+isl::map map::set_range_tuple(isl::id id) const
{
- auto res = isl_map_remove_divs(copy());
+ auto res = isl_map_set_range_tuple_id(copy(), id.release());
return manage(res);
}
-isl::map map::remove_divs_involving_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::map map::set_range_tuple(const std::string &id) const
{
- auto res = isl_map_remove_divs_involving_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return this->set_range_tuple(isl::id(ctx(), id));
}
-isl::map map::remove_redundancies() const
+isl::map map::set_tuple_id(isl::dim type, isl::id id) const
{
- auto res = isl_map_remove_redundancies(copy());
+ auto res = isl_map_set_tuple_id(copy(), static_cast<enum isl_dim_type>(type), id.release());
return manage(res);
}
-isl::map map::remove_unknown_divs() const
+isl::map map::set_tuple_id(isl::dim type, const std::string &id) const
{
- auto res = isl_map_remove_unknown_divs(copy());
- return manage(res);
+ return this->set_tuple_id(type, isl::id(ctx(), id));
}
-isl::map map::reset_tuple_id(isl::dim type) const
+isl::space map::space() const
{
- auto res = isl_map_reset_tuple_id(copy(), static_cast<enum isl_dim_type>(type));
+ auto res = isl_map_get_space(get());
return manage(res);
}
-isl::map map::reset_user() const
+isl::space map::get_space() const
{
- auto res = isl_map_reset_user(copy());
- return manage(res);
+ return space();
}
-isl::map map::reverse() const
+isl::map map::subtract(isl::map map2) const
{
- auto res = isl_map_reverse(copy());
+ auto res = isl_map_subtract(copy(), map2.release());
return manage(res);
}
-isl::basic_map map::sample() const
+isl::union_map map::subtract(const isl::union_map &umap2) const
{
- auto res = isl_map_sample(copy());
- return manage(res);
+ return isl::union_map(*this).subtract(umap2);
}
-isl::map map::set_dim_id(isl::dim type, unsigned int pos, isl::id id) const
+isl::map map::subtract(const isl::basic_map &map2) const
{
- auto res = isl_map_set_dim_id(copy(), static_cast<enum isl_dim_type>(type), pos, id.release());
- return manage(res);
+ return this->subtract(isl::map(map2));
}
-isl::map map::set_tuple_id(isl::dim type, isl::id id) const
+isl::union_map map::subtract_domain(const isl::union_set &dom) const
{
- auto res = isl_map_set_tuple_id(copy(), static_cast<enum isl_dim_type>(type), id.release());
- return manage(res);
+ return isl::union_map(*this).subtract_domain(dom);
}
-isl::map map::set_tuple_name(isl::dim type, const std::string &s) const
+isl::union_map map::subtract_range(const isl::union_set &dom) const
{
- auto res = isl_map_set_tuple_name(copy(), static_cast<enum isl_dim_type>(type), s.c_str());
- return manage(res);
+ return isl::union_map(*this).subtract_range(dom);
}
-isl::basic_map map::simple_hull() const
+isl::map map::sum(isl::map map2) const
{
- auto res = isl_map_simple_hull(copy());
+ auto res = isl_map_sum(copy(), map2.release());
return manage(res);
}
-isl::map map::subtract(isl::map map2) const
+isl::map_list map::to_list() const
{
- auto res = isl_map_subtract(copy(), map2.release());
+ auto res = isl_map_to_list(copy());
return manage(res);
}
-isl::map map::subtract_domain(isl::set dom) const
+isl::union_map map::to_union_map() const
{
- auto res = isl_map_subtract_domain(copy(), dom.release());
+ auto res = isl_map_to_union_map(copy());
return manage(res);
}
-isl::map map::subtract_range(isl::set dom) const
+isl::id map::tuple_id(isl::dim type) const
{
- auto res = isl_map_subtract_range(copy(), dom.release());
+ auto res = isl_map_get_tuple_id(get(), static_cast<enum isl_dim_type>(type));
return manage(res);
}
-isl::map map::sum(isl::map map2) const
+isl::id map::get_tuple_id(isl::dim type) const
{
- auto res = isl_map_sum(copy(), map2.release());
- return manage(res);
+ return tuple_id(type);
}
isl::map map::uncurry() const
return manage(res);
}
+isl::union_map map::unite(const isl::union_map &umap2) const
+{
+ return isl::union_map(*this).unite(umap2);
+}
+
+isl::map map::unite(const isl::basic_map &map2) const
+{
+ return this->unite(isl::map(map2));
+}
+
isl::map map::universe(isl::space space)
{
auto res = isl_map_universe(space.release());
return manage(res);
}
-isl::basic_map map::unshifted_simple_hull_from_map_list(isl::map_list list) const
-{
- auto res = isl_map_unshifted_simple_hull_from_map_list(copy(), list.release());
- return manage(res);
-}
-
isl::map map::upper_bound(isl::multi_pw_aff upper) const
{
auto res = isl_map_upper_bound_multi_pw_aff(copy(), upper.release());
return manage(res);
}
-isl::map map::upper_bound_val(isl::dim type, unsigned int pos, isl::val value) const
-{
- auto res = isl_map_upper_bound_val(copy(), static_cast<enum isl_dim_type>(type), pos, value.release());
- return manage(res);
-}
-
isl::set map::wrap() const
{
auto res = isl_map_wrap(copy());
return manage(res);
}
+inline std::ostream &operator<<(std::ostream &os, const map &obj)
+{
+ char *str = isl_map_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
+}
+
// implementations for isl::map_list
map_list manage(__isl_take isl_map_list *ptr) {
return map_list(ptr);
ptr = obj.copy();
}
-
map_list::map_list(__isl_take isl_map_list *ptr)
: ptr(ptr) {}
+map_list::map_list(isl::ctx ctx, int n)
+{
+ auto res = isl_map_list_alloc(ctx.release(), n);
+ ptr = res;
+}
+
+map_list::map_list(isl::map el)
+{
+ auto res = isl_map_list_from_map(el.release());
+ ptr = res;
+}
+
+map_list::map_list(isl::ctx ctx, const std::string &str)
+{
+ auto res = isl_map_list_read_from_str(ctx.release(), str.c_str());
+ ptr = res;
+}
map_list &map_list::operator=(map_list obj) {
std::swap(this->ptr, obj.ptr);
return ptr == nullptr;
}
-
isl::ctx map_list::ctx() const {
return isl::ctx(isl_map_list_get_ctx(ptr));
}
-void map_list::dump() const {
- isl_map_list_dump(get());
-}
-
-
isl::map_list map_list::add(isl::map el) const
{
auto res = isl_map_list_add(copy(), el.release());
return manage(res);
}
-isl::map_list map_list::alloc(isl::ctx ctx, int n)
+isl::map map_list::at(int index) const
{
- auto res = isl_map_list_alloc(ctx.release(), n);
+ auto res = isl_map_list_get_at(get(), index);
return manage(res);
}
+isl::map map_list::get_at(int index) const
+{
+ return at(index);
+}
+
isl::map_list map_list::clear() const
{
auto res = isl_map_list_clear(copy());
return manage(res);
}
-stat map_list::foreach(const std::function<stat(map)> &fn) const
+stat map_list::foreach(const std::function<stat(isl::map)> &fn) const
{
struct fn_data {
- const std::function<stat(map)> *func;
- } fn_data = { &fn };
+ std::function<stat(isl::map)> func;
+ } fn_data = { fn };
auto fn_lambda = [](isl_map *arg_0, void *arg_1) -> isl_stat {
auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
+ auto ret = (data->func)(manage(arg_0));
return ret.release();
};
auto res = isl_map_list_foreach(get(), fn_lambda, &fn_data);
return manage(res);
}
-isl::map_list map_list::from_map(isl::map el)
+isl::map_list map_list::insert(unsigned int pos, isl::map el) const
{
- auto res = isl_map_list_from_map(el.release());
+ auto res = isl_map_list_insert(copy(), pos, el.release());
return manage(res);
}
-isl::map map_list::get_at(int index) const
+class size map_list::size() const
{
- auto res = isl_map_list_get_at(get(), index);
+ auto res = isl_map_list_size(get());
return manage(res);
}
-isl::map map_list::get_map(int index) const
+inline std::ostream &operator<<(std::ostream &os, const map_list &obj)
{
- auto res = isl_map_list_get_map(get(), index);
- return manage(res);
+ char *str = isl_map_list_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::map_list map_list::insert(unsigned int pos, isl::map el) const
-{
- auto res = isl_map_list_insert(copy(), pos, el.release());
- return manage(res);
+// implementations for isl::multi_aff
+multi_aff manage(__isl_take isl_multi_aff *ptr) {
+ return multi_aff(ptr);
}
-
-isl_size map_list::n_map() const
-{
- auto res = isl_map_list_n_map(get());
- return res;
+multi_aff manage_copy(__isl_keep isl_multi_aff *ptr) {
+ ptr = isl_multi_aff_copy(ptr);
+ return multi_aff(ptr);
}
-isl::map_list map_list::reverse() const
-{
- auto res = isl_map_list_reverse(copy());
- return manage(res);
-}
+multi_aff::multi_aff()
+ : ptr(nullptr) {}
-isl::map_list map_list::set_map(int index, isl::map el) const
+multi_aff::multi_aff(const multi_aff &obj)
+ : ptr(nullptr)
{
- auto res = isl_map_list_set_map(copy(), index, el.release());
- return manage(res);
+ ptr = obj.copy();
}
-isl_size map_list::size() const
-{
- auto res = isl_map_list_size(get());
- return res;
-}
+multi_aff::multi_aff(__isl_take isl_multi_aff *ptr)
+ : ptr(ptr) {}
-isl::map_list map_list::swap(unsigned int pos1, unsigned int pos2) const
+multi_aff::multi_aff(isl::aff aff)
{
- auto res = isl_map_list_swap(copy(), pos1, pos2);
- return manage(res);
+ auto res = isl_multi_aff_from_aff(aff.release());
+ ptr = res;
}
-// implementations for isl::mat
-mat manage(__isl_take isl_mat *ptr) {
- return mat(ptr);
-}
-mat manage_copy(__isl_keep isl_mat *ptr) {
- ptr = isl_mat_copy(ptr);
- return mat(ptr);
+multi_aff::multi_aff(isl::space space, isl::aff_list list)
+{
+ auto res = isl_multi_aff_from_aff_list(space.release(), list.release());
+ ptr = res;
}
-mat::mat()
- : ptr(nullptr) {}
-
-mat::mat(const mat &obj)
- : ptr(nullptr)
+multi_aff::multi_aff(isl::ctx ctx, const std::string &str)
{
- ptr = obj.copy();
+ auto res = isl_multi_aff_read_from_str(ctx.release(), str.c_str());
+ ptr = res;
}
-
-mat::mat(__isl_take isl_mat *ptr)
- : ptr(ptr) {}
-
-
-mat &mat::operator=(mat obj) {
+multi_aff &multi_aff::operator=(multi_aff obj) {
std::swap(this->ptr, obj.ptr);
return *this;
}
-mat::~mat() {
+multi_aff::~multi_aff() {
if (ptr)
- isl_mat_free(ptr);
+ isl_multi_aff_free(ptr);
}
-__isl_give isl_mat *mat::copy() const & {
- return isl_mat_copy(ptr);
+__isl_give isl_multi_aff *multi_aff::copy() const & {
+ return isl_multi_aff_copy(ptr);
}
-__isl_keep isl_mat *mat::get() const {
+__isl_keep isl_multi_aff *multi_aff::get() const {
return ptr;
}
-__isl_give isl_mat *mat::release() {
- isl_mat *tmp = ptr;
+__isl_give isl_multi_aff *multi_aff::release() {
+ isl_multi_aff *tmp = ptr;
ptr = nullptr;
return tmp;
}
-bool mat::is_null() const {
+bool multi_aff::is_null() const {
return ptr == nullptr;
}
+isl::ctx multi_aff::ctx() const {
+ return isl::ctx(isl_multi_aff_get_ctx(ptr));
+}
-isl::ctx mat::ctx() const {
- return isl::ctx(isl_mat_get_ctx(ptr));
+isl::multi_aff multi_aff::add(isl::multi_aff multi2) const
+{
+ auto res = isl_multi_aff_add(copy(), multi2.release());
+ return manage(res);
}
-void mat::dump() const {
- isl_mat_dump(get());
+isl::multi_pw_aff multi_aff::add(const isl::multi_pw_aff &multi2) const
+{
+ return isl::pw_multi_aff(*this).add(multi2);
}
+isl::multi_union_pw_aff multi_aff::add(const isl::multi_union_pw_aff &multi2) const
+{
+ return isl::pw_multi_aff(*this).add(multi2);
+}
-isl::mat mat::add_rows(unsigned int n) const
+isl::pw_multi_aff multi_aff::add(const isl::pw_multi_aff &pma2) const
{
- auto res = isl_mat_add_rows(copy(), n);
- return manage(res);
+ return isl::pw_multi_aff(*this).add(pma2);
}
-isl::mat mat::add_zero_cols(unsigned int n) const
+isl::union_pw_multi_aff multi_aff::add(const isl::union_pw_multi_aff &upma2) const
{
- auto res = isl_mat_add_zero_cols(copy(), n);
- return manage(res);
+ return isl::pw_multi_aff(*this).add(upma2);
}
-isl::mat mat::add_zero_rows(unsigned int n) const
+isl::multi_aff multi_aff::add(const isl::aff &multi2) const
{
- auto res = isl_mat_add_zero_rows(copy(), n);
- return manage(res);
+ return this->add(isl::multi_aff(multi2));
}
-isl::mat mat::aff_direct_sum(isl::mat right) const
+isl::multi_aff multi_aff::add_constant(isl::multi_val mv) const
{
- auto res = isl_mat_aff_direct_sum(copy(), right.release());
+ auto res = isl_multi_aff_add_constant_multi_val(copy(), mv.release());
return manage(res);
}
-isl::mat mat::alloc(isl::ctx ctx, unsigned int n_row, unsigned int n_col)
+isl::multi_aff multi_aff::add_constant(isl::val v) const
{
- auto res = isl_mat_alloc(ctx.release(), n_row, n_col);
+ auto res = isl_multi_aff_add_constant_val(copy(), v.release());
return manage(res);
}
-isl_size mat::cols() const
+isl::multi_aff multi_aff::add_constant(long v) const
{
- auto res = isl_mat_cols(get());
- return res;
+ return this->add_constant(isl::val(ctx(), v));
}
-isl::mat mat::concat(isl::mat bot) const
+isl::union_pw_multi_aff multi_aff::add_pw_multi_aff(const isl::pw_multi_aff &pma) const
{
- auto res = isl_mat_concat(copy(), bot.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).add_pw_multi_aff(pma);
}
-isl::mat mat::diagonal(isl::mat mat2) const
+isl::union_pw_multi_aff multi_aff::apply(const isl::union_pw_multi_aff &upma2) const
{
- auto res = isl_mat_diagonal(copy(), mat2.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).apply(upma2);
}
-isl::mat mat::drop_cols(unsigned int col, unsigned int n) const
+isl::map multi_aff::as_map() const
{
- auto res = isl_mat_drop_cols(copy(), col, n);
+ auto res = isl_multi_aff_as_map(copy());
return manage(res);
}
-isl::mat mat::drop_rows(unsigned int row, unsigned int n) const
+isl::multi_aff multi_aff::as_multi_aff() const
{
- auto res = isl_mat_drop_rows(copy(), row, n);
- return manage(res);
+ return isl::pw_multi_aff(*this).as_multi_aff();
}
-isl::mat mat::from_row_vec(isl::vec vec)
+isl::multi_union_pw_aff multi_aff::as_multi_union_pw_aff() const
{
- auto res = isl_mat_from_row_vec(vec.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).as_multi_union_pw_aff();
}
-isl::val mat::get_element_val(int row, int col) const
+isl::pw_multi_aff multi_aff::as_pw_multi_aff() const
{
- auto res = isl_mat_get_element_val(get(), row, col);
- return manage(res);
+ return isl::pw_multi_aff(*this).as_pw_multi_aff();
}
-boolean mat::has_linearly_independent_rows(const isl::mat &mat2) const
+isl::set multi_aff::as_set() const
{
- auto res = isl_mat_has_linearly_independent_rows(get(), mat2.get());
+ auto res = isl_multi_aff_as_set(copy());
return manage(res);
}
-int mat::initial_non_zero_cols() const
+isl::union_map multi_aff::as_union_map() const
{
- auto res = isl_mat_initial_non_zero_cols(get());
- return res;
+ return isl::pw_multi_aff(*this).as_union_map();
}
-isl::mat mat::insert_cols(unsigned int col, unsigned int n) const
+isl::aff multi_aff::at(int pos) const
{
- auto res = isl_mat_insert_cols(copy(), col, n);
+ auto res = isl_multi_aff_get_at(get(), pos);
return manage(res);
}
-isl::mat mat::insert_rows(unsigned int row, unsigned int n) const
+isl::aff multi_aff::get_at(int pos) const
{
- auto res = isl_mat_insert_rows(copy(), row, n);
- return manage(res);
+ return at(pos);
}
-isl::mat mat::insert_zero_cols(unsigned int first, unsigned int n) const
+isl::basic_set multi_aff::bind(isl::multi_id tuple) const
{
- auto res = isl_mat_insert_zero_cols(copy(), first, n);
+ auto res = isl_multi_aff_bind(copy(), tuple.release());
return manage(res);
}
-isl::mat mat::insert_zero_rows(unsigned int row, unsigned int n) const
+isl::multi_aff multi_aff::bind_domain(isl::multi_id tuple) const
{
- auto res = isl_mat_insert_zero_rows(copy(), row, n);
+ auto res = isl_multi_aff_bind_domain(copy(), tuple.release());
return manage(res);
}
-isl::mat mat::inverse_product(isl::mat right) const
+isl::multi_aff multi_aff::bind_domain_wrapped_domain(isl::multi_id tuple) const
{
- auto res = isl_mat_inverse_product(copy(), right.release());
+ auto res = isl_multi_aff_bind_domain_wrapped_domain(copy(), tuple.release());
return manage(res);
}
-boolean mat::is_equal(const isl::mat &mat2) const
+isl::pw_multi_aff multi_aff::coalesce() const
{
- auto res = isl_mat_is_equal(get(), mat2.get());
- return manage(res);
+ return isl::pw_multi_aff(*this).coalesce();
}
-isl::mat mat::lin_to_aff() const
+isl::multi_val multi_aff::constant_multi_val() const
{
- auto res = isl_mat_lin_to_aff(copy());
+ auto res = isl_multi_aff_get_constant_multi_val(get());
return manage(res);
}
-isl::mat mat::move_cols(unsigned int dst_col, unsigned int src_col, unsigned int n) const
+isl::multi_val multi_aff::get_constant_multi_val() const
{
- auto res = isl_mat_move_cols(copy(), dst_col, src_col, n);
- return manage(res);
+ return constant_multi_val();
}
-isl::mat mat::normalize() const
+class size multi_aff::dim(isl::dim type) const
{
- auto res = isl_mat_normalize(copy());
+ auto res = isl_multi_aff_dim(get(), static_cast<enum isl_dim_type>(type));
return manage(res);
}
-isl::mat mat::normalize_row(int row) const
+isl::set multi_aff::domain() const
{
- auto res = isl_mat_normalize_row(copy(), row);
- return manage(res);
+ return isl::pw_multi_aff(*this).domain();
}
-isl::mat mat::product(isl::mat right) const
+isl::multi_aff multi_aff::domain_map(isl::space space)
{
- auto res = isl_mat_product(copy(), right.release());
+ auto res = isl_multi_aff_domain_map(space.release());
return manage(res);
}
-isl_size mat::rank() const
+isl::pw_multi_aff multi_aff::drop_dims(isl::dim type, unsigned int first, unsigned int n) const
{
- auto res = isl_mat_rank(get());
- return res;
+ return isl::pw_multi_aff(*this).drop_dims(type, first, n);
}
-isl::mat mat::right_inverse() const
+isl::pw_multi_aff multi_aff::extract_pw_multi_aff(const isl::space &space) const
{
- auto res = isl_mat_right_inverse(copy());
- return manage(res);
+ return isl::pw_multi_aff(*this).extract_pw_multi_aff(space);
}
-isl::mat mat::right_kernel() const
+isl::multi_aff multi_aff::flat_range_product(isl::multi_aff multi2) const
{
- auto res = isl_mat_right_kernel(copy());
+ auto res = isl_multi_aff_flat_range_product(copy(), multi2.release());
return manage(res);
}
-isl::mat mat::row_basis() const
+isl::multi_pw_aff multi_aff::flat_range_product(const isl::multi_pw_aff &multi2) const
{
- auto res = isl_mat_row_basis(copy());
- return manage(res);
+ return isl::pw_multi_aff(*this).flat_range_product(multi2);
}
-isl::mat mat::row_basis_extension(isl::mat mat2) const
+isl::multi_union_pw_aff multi_aff::flat_range_product(const isl::multi_union_pw_aff &multi2) const
{
- auto res = isl_mat_row_basis_extension(copy(), mat2.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).flat_range_product(multi2);
}
-isl_size mat::rows() const
+isl::pw_multi_aff multi_aff::flat_range_product(const isl::pw_multi_aff &pma2) const
{
- auto res = isl_mat_rows(get());
- return res;
+ return isl::pw_multi_aff(*this).flat_range_product(pma2);
}
-isl::mat mat::set_element_si(int row, int col, int v) const
+isl::union_pw_multi_aff multi_aff::flat_range_product(const isl::union_pw_multi_aff &upma2) const
{
- auto res = isl_mat_set_element_si(copy(), row, col, v);
- return manage(res);
+ return isl::pw_multi_aff(*this).flat_range_product(upma2);
}
-isl::mat mat::set_element_val(int row, int col, isl::val v) const
+isl::multi_aff multi_aff::flat_range_product(const isl::aff &multi2) const
{
- auto res = isl_mat_set_element_val(copy(), row, col, v.release());
- return manage(res);
+ return this->flat_range_product(isl::multi_aff(multi2));
}
-isl::mat mat::swap_cols(unsigned int i, unsigned int j) const
+isl::multi_aff multi_aff::floor() const
{
- auto res = isl_mat_swap_cols(copy(), i, j);
+ auto res = isl_multi_aff_floor(copy());
return manage(res);
}
-isl::mat mat::swap_rows(unsigned int i, unsigned int j) const
+stat multi_aff::foreach_piece(const std::function<stat(isl::set, isl::multi_aff)> &fn) const
{
- auto res = isl_mat_swap_rows(copy(), i, j);
- return manage(res);
+ return isl::pw_multi_aff(*this).foreach_piece(fn);
}
-isl::mat mat::transpose() const
+isl::multi_aff multi_aff::gist(isl::set context) const
{
- auto res = isl_mat_transpose(copy());
+ auto res = isl_multi_aff_gist(copy(), context.release());
return manage(res);
}
-isl::mat mat::unimodular_complete(int row) const
+isl::union_pw_multi_aff multi_aff::gist(const isl::union_set &context) const
{
- auto res = isl_mat_unimodular_complete(copy(), row);
- return manage(res);
+ return isl::pw_multi_aff(*this).gist(context);
}
-isl::mat mat::vec_concat(isl::vec bot) const
+isl::multi_aff multi_aff::gist(const isl::basic_set &context) const
{
- auto res = isl_mat_vec_concat(copy(), bot.release());
- return manage(res);
+ return this->gist(isl::set(context));
}
-isl::vec mat::vec_inverse_product(isl::vec vec) const
+isl::multi_aff multi_aff::gist(const isl::point &context) const
{
- auto res = isl_mat_vec_inverse_product(copy(), vec.release());
+ return this->gist(isl::set(context));
+}
+
+boolean multi_aff::has_range_tuple_id() const
+{
+ auto res = isl_multi_aff_has_range_tuple_id(get());
return manage(res);
}
-isl::vec mat::vec_product(isl::vec vec) const
+isl::multi_aff multi_aff::identity(isl::space space)
{
- auto res = isl_mat_vec_product(copy(), vec.release());
+ auto res = isl_multi_aff_identity(space.release());
return manage(res);
}
-// implementations for isl::multi_aff
-multi_aff manage(__isl_take isl_multi_aff *ptr) {
- return multi_aff(ptr);
+isl::multi_aff multi_aff::identity() const
+{
+ auto res = isl_multi_aff_identity_multi_aff(copy());
+ return manage(res);
}
-multi_aff manage_copy(__isl_keep isl_multi_aff *ptr) {
- ptr = isl_multi_aff_copy(ptr);
- return multi_aff(ptr);
+
+isl::multi_aff multi_aff::identity_on_domain(isl::space space)
+{
+ auto res = isl_multi_aff_identity_on_domain_space(space.release());
+ return manage(res);
}
-multi_aff::multi_aff()
- : ptr(nullptr) {}
+isl::multi_aff multi_aff::insert_domain(isl::space domain) const
+{
+ auto res = isl_multi_aff_insert_domain(copy(), domain.release());
+ return manage(res);
+}
-multi_aff::multi_aff(const multi_aff &obj)
- : ptr(nullptr)
+isl::pw_multi_aff multi_aff::intersect_domain(const isl::set &set) const
{
- ptr = obj.copy();
+ return isl::pw_multi_aff(*this).intersect_domain(set);
}
+isl::union_pw_multi_aff multi_aff::intersect_domain(const isl::space &space) const
+{
+ return isl::pw_multi_aff(*this).intersect_domain(space);
+}
-multi_aff::multi_aff(__isl_take isl_multi_aff *ptr)
- : ptr(ptr) {}
+isl::union_pw_multi_aff multi_aff::intersect_domain(const isl::union_set &uset) const
+{
+ return isl::pw_multi_aff(*this).intersect_domain(uset);
+}
-multi_aff::multi_aff(isl::aff aff)
+isl::union_pw_multi_aff multi_aff::intersect_domain_wrapped_domain(const isl::union_set &uset) const
{
- auto res = isl_multi_aff_from_aff(aff.release());
- ptr = res;
+ return isl::pw_multi_aff(*this).intersect_domain_wrapped_domain(uset);
}
-multi_aff::multi_aff(isl::space space, isl::aff_list list)
+
+isl::union_pw_multi_aff multi_aff::intersect_domain_wrapped_range(const isl::union_set &uset) const
{
- auto res = isl_multi_aff_from_aff_list(space.release(), list.release());
- ptr = res;
+ return isl::pw_multi_aff(*this).intersect_domain_wrapped_range(uset);
}
-multi_aff::multi_aff(isl::ctx ctx, const std::string &str)
+
+isl::pw_multi_aff multi_aff::intersect_params(const isl::set &set) const
{
- auto res = isl_multi_aff_read_from_str(ctx.release(), str.c_str());
- ptr = res;
+ return isl::pw_multi_aff(*this).intersect_params(set);
}
-multi_aff &multi_aff::operator=(multi_aff obj) {
- std::swap(this->ptr, obj.ptr);
- return *this;
+boolean multi_aff::involves_locals() const
+{
+ auto res = isl_multi_aff_involves_locals(get());
+ return manage(res);
}
-multi_aff::~multi_aff() {
- if (ptr)
- isl_multi_aff_free(ptr);
+boolean multi_aff::involves_nan() const
+{
+ auto res = isl_multi_aff_involves_nan(get());
+ return manage(res);
}
-__isl_give isl_multi_aff *multi_aff::copy() const & {
- return isl_multi_aff_copy(ptr);
+boolean multi_aff::involves_param(const isl::id &id) const
+{
+ return isl::pw_multi_aff(*this).involves_param(id);
}
-__isl_keep isl_multi_aff *multi_aff::get() const {
- return ptr;
+boolean multi_aff::involves_param(const std::string &id) const
+{
+ return this->involves_param(isl::id(ctx(), id));
}
-__isl_give isl_multi_aff *multi_aff::release() {
- isl_multi_aff *tmp = ptr;
- ptr = nullptr;
- return tmp;
+boolean multi_aff::involves_param(const isl::id_list &list) const
+{
+ return isl::pw_multi_aff(*this).involves_param(list);
}
-bool multi_aff::is_null() const {
- return ptr == nullptr;
+boolean multi_aff::isa_multi_aff() const
+{
+ return isl::pw_multi_aff(*this).isa_multi_aff();
}
+boolean multi_aff::isa_pw_multi_aff() const
+{
+ return isl::pw_multi_aff(*this).isa_pw_multi_aff();
+}
-isl::ctx multi_aff::ctx() const {
- return isl::ctx(isl_multi_aff_get_ctx(ptr));
+isl::aff_list multi_aff::list() const
+{
+ auto res = isl_multi_aff_get_list(get());
+ return manage(res);
}
-void multi_aff::dump() const {
- isl_multi_aff_dump(get());
+isl::aff_list multi_aff::get_list() const
+{
+ return list();
}
+isl::multi_pw_aff multi_aff::max(const isl::multi_pw_aff &multi2) const
+{
+ return isl::pw_multi_aff(*this).max(multi2);
+}
-isl::multi_aff multi_aff::add(isl::multi_aff multi2) const
+isl::multi_val multi_aff::max_multi_val() const
{
- auto res = isl_multi_aff_add(copy(), multi2.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).max_multi_val();
}
-isl::multi_aff multi_aff::add_constant(isl::multi_val mv) const
+isl::multi_pw_aff multi_aff::min(const isl::multi_pw_aff &multi2) const
{
- auto res = isl_multi_aff_add_constant_multi_val(copy(), mv.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).min(multi2);
}
-isl::multi_aff multi_aff::add_constant(isl::val v) const
+isl::multi_val multi_aff::min_multi_val() const
{
- auto res = isl_multi_aff_add_constant_val(copy(), v.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).min_multi_val();
}
-isl::multi_aff multi_aff::add_dims(isl::dim type, unsigned int n) const
+isl::multi_aff multi_aff::multi_val_on_domain(isl::space space, isl::multi_val mv)
{
- auto res = isl_multi_aff_add_dims(copy(), static_cast<enum isl_dim_type>(type), n);
+ auto res = isl_multi_aff_multi_val_on_domain_space(space.release(), mv.release());
return manage(res);
}
-isl::multi_aff multi_aff::align_params(isl::space model) const
+class size multi_aff::n_piece() const
{
- auto res = isl_multi_aff_align_params(copy(), model.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).n_piece();
}
-isl::basic_set multi_aff::bind(isl::multi_id tuple) const
+isl::multi_aff multi_aff::neg() const
{
- auto res = isl_multi_aff_bind(copy(), tuple.release());
+ auto res = isl_multi_aff_neg(copy());
return manage(res);
}
-isl::multi_aff multi_aff::bind_domain(isl::multi_id tuple) const
+boolean multi_aff::plain_is_empty() const
{
- auto res = isl_multi_aff_bind_domain(copy(), tuple.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).plain_is_empty();
}
-isl::multi_aff multi_aff::bind_domain_wrapped_domain(isl::multi_id tuple) const
+boolean multi_aff::plain_is_equal(const isl::multi_aff &multi2) const
{
- auto res = isl_multi_aff_bind_domain_wrapped_domain(copy(), tuple.release());
+ auto res = isl_multi_aff_plain_is_equal(get(), multi2.get());
return manage(res);
}
-isl_size multi_aff::dim(isl::dim type) const
+boolean multi_aff::plain_is_equal(const isl::multi_pw_aff &multi2) const
{
- auto res = isl_multi_aff_dim(get(), static_cast<enum isl_dim_type>(type));
- return res;
+ return isl::pw_multi_aff(*this).plain_is_equal(multi2);
}
-isl::multi_aff multi_aff::domain_map(isl::space space)
+boolean multi_aff::plain_is_equal(const isl::multi_union_pw_aff &multi2) const
{
- auto res = isl_multi_aff_domain_map(space.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).plain_is_equal(multi2);
}
-isl::multi_aff multi_aff::drop_dims(isl::dim type, unsigned int first, unsigned int n) const
+boolean multi_aff::plain_is_equal(const isl::aff &multi2) const
{
- auto res = isl_multi_aff_drop_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return this->plain_is_equal(isl::multi_aff(multi2));
}
-isl::multi_aff multi_aff::factor_range() const
+isl::pw_multi_aff multi_aff::preimage_domain_wrapped_domain(const isl::pw_multi_aff &pma2) const
{
- auto res = isl_multi_aff_factor_range(copy());
- return manage(res);
+ return isl::pw_multi_aff(*this).preimage_domain_wrapped_domain(pma2);
}
-int multi_aff::find_dim_by_id(isl::dim type, const isl::id &id) const
+isl::union_pw_multi_aff multi_aff::preimage_domain_wrapped_domain(const isl::union_pw_multi_aff &upma2) const
{
- auto res = isl_multi_aff_find_dim_by_id(get(), static_cast<enum isl_dim_type>(type), id.get());
- return res;
+ return isl::pw_multi_aff(*this).preimage_domain_wrapped_domain(upma2);
}
-int multi_aff::find_dim_by_name(isl::dim type, const std::string &name) const
+isl::multi_aff multi_aff::product(isl::multi_aff multi2) const
{
- auto res = isl_multi_aff_find_dim_by_name(get(), static_cast<enum isl_dim_type>(type), name.c_str());
- return res;
+ auto res = isl_multi_aff_product(copy(), multi2.release());
+ return manage(res);
}
-isl::multi_aff multi_aff::flat_range_product(isl::multi_aff multi2) const
+isl::multi_pw_aff multi_aff::product(const isl::multi_pw_aff &multi2) const
{
- auto res = isl_multi_aff_flat_range_product(copy(), multi2.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).product(multi2);
}
-isl::multi_aff multi_aff::flatten_domain() const
+isl::pw_multi_aff multi_aff::product(const isl::pw_multi_aff &pma2) const
{
- auto res = isl_multi_aff_flatten_domain(copy());
- return manage(res);
+ return isl::pw_multi_aff(*this).product(pma2);
}
-isl::multi_aff multi_aff::flatten_range() const
+isl::multi_aff multi_aff::product(const isl::aff &multi2) const
{
- auto res = isl_multi_aff_flatten_range(copy());
- return manage(res);
+ return this->product(isl::multi_aff(multi2));
}
-isl::multi_aff multi_aff::floor() const
+isl::multi_aff multi_aff::pullback(isl::multi_aff ma2) const
{
- auto res = isl_multi_aff_floor(copy());
+ auto res = isl_multi_aff_pullback_multi_aff(copy(), ma2.release());
return manage(res);
}
-isl::multi_aff multi_aff::from_range() const
+isl::multi_pw_aff multi_aff::pullback(const isl::multi_pw_aff &mpa2) const
{
- auto res = isl_multi_aff_from_range(copy());
- return manage(res);
+ return isl::pw_multi_aff(*this).pullback(mpa2);
}
-isl::aff multi_aff::get_aff(int pos) const
+isl::pw_multi_aff multi_aff::pullback(const isl::pw_multi_aff &pma2) const
{
- auto res = isl_multi_aff_get_aff(get(), pos);
- return manage(res);
+ return isl::pw_multi_aff(*this).pullback(pma2);
}
-isl::aff multi_aff::get_at(int pos) const
+isl::union_pw_multi_aff multi_aff::pullback(const isl::union_pw_multi_aff &upma2) const
{
- auto res = isl_multi_aff_get_at(get(), pos);
- return manage(res);
+ return isl::pw_multi_aff(*this).pullback(upma2);
}
-isl::multi_val multi_aff::get_constant_multi_val() const
+isl::multi_aff multi_aff::pullback(const isl::aff &ma2) const
{
- auto res = isl_multi_aff_get_constant_multi_val(get());
- return manage(res);
+ return this->pullback(isl::multi_aff(ma2));
}
-isl::id multi_aff::get_dim_id(isl::dim type, unsigned int pos) const
+isl::pw_multi_aff_list multi_aff::pw_multi_aff_list() const
{
- auto res = isl_multi_aff_get_dim_id(get(), static_cast<enum isl_dim_type>(type), pos);
- return manage(res);
+ return isl::pw_multi_aff(*this).pw_multi_aff_list();
}
-isl::space multi_aff::get_domain_space() const
+isl::pw_multi_aff multi_aff::range_factor_domain() const
{
- auto res = isl_multi_aff_get_domain_space(get());
- return manage(res);
+ return isl::pw_multi_aff(*this).range_factor_domain();
}
-isl::aff_list multi_aff::get_list() const
+isl::pw_multi_aff multi_aff::range_factor_range() const
{
- auto res = isl_multi_aff_get_list(get());
- return manage(res);
+ return isl::pw_multi_aff(*this).range_factor_range();
}
-isl::space multi_aff::get_space() const
+isl::multi_aff multi_aff::range_map(isl::space space)
{
- auto res = isl_multi_aff_get_space(get());
+ auto res = isl_multi_aff_range_map(space.release());
return manage(res);
}
-isl::id multi_aff::get_tuple_id(isl::dim type) const
+isl::multi_aff multi_aff::range_product(isl::multi_aff multi2) const
{
- auto res = isl_multi_aff_get_tuple_id(get(), static_cast<enum isl_dim_type>(type));
+ auto res = isl_multi_aff_range_product(copy(), multi2.release());
return manage(res);
}
-std::string multi_aff::get_tuple_name(isl::dim type) const
+isl::multi_pw_aff multi_aff::range_product(const isl::multi_pw_aff &multi2) const
{
- auto res = isl_multi_aff_get_tuple_name(get(), static_cast<enum isl_dim_type>(type));
- std::string tmp(res);
- return tmp;
+ return isl::pw_multi_aff(*this).range_product(multi2);
}
-isl::multi_aff multi_aff::gist(isl::set context) const
+isl::multi_union_pw_aff multi_aff::range_product(const isl::multi_union_pw_aff &multi2) const
{
- auto res = isl_multi_aff_gist(copy(), context.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).range_product(multi2);
}
-isl::multi_aff multi_aff::gist_params(isl::set context) const
+isl::pw_multi_aff multi_aff::range_product(const isl::pw_multi_aff &pma2) const
{
- auto res = isl_multi_aff_gist_params(copy(), context.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).range_product(pma2);
}
-boolean multi_aff::has_tuple_id(isl::dim type) const
+isl::union_pw_multi_aff multi_aff::range_product(const isl::union_pw_multi_aff &upma2) const
{
- auto res = isl_multi_aff_has_tuple_id(get(), static_cast<enum isl_dim_type>(type));
- return manage(res);
+ return isl::pw_multi_aff(*this).range_product(upma2);
}
-isl::multi_aff multi_aff::identity(isl::space space)
+isl::multi_aff multi_aff::range_product(const isl::aff &multi2) const
{
- auto res = isl_multi_aff_identity(space.release());
- return manage(res);
+ return this->range_product(isl::multi_aff(multi2));
}
-isl::multi_aff multi_aff::identity() const
+isl::id multi_aff::range_tuple_id() const
{
- auto res = isl_multi_aff_identity_multi_aff(copy());
+ auto res = isl_multi_aff_get_range_tuple_id(get());
return manage(res);
}
-isl::multi_aff multi_aff::identity_on_domain(isl::space space)
+isl::id multi_aff::get_range_tuple_id() const
{
- auto res = isl_multi_aff_identity_on_domain_space(space.release());
- return manage(res);
+ return range_tuple_id();
}
-isl::multi_aff multi_aff::insert_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::multi_aff multi_aff::reset_range_tuple_id() const
{
- auto res = isl_multi_aff_insert_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
+ auto res = isl_multi_aff_reset_range_tuple_id(copy());
return manage(res);
}
-isl::multi_aff multi_aff::insert_domain(isl::space domain) const
+isl::multi_aff multi_aff::reset_tuple_id(isl::dim type) const
{
- auto res = isl_multi_aff_insert_domain(copy(), domain.release());
+ auto res = isl_multi_aff_reset_tuple_id(copy(), static_cast<enum isl_dim_type>(type));
return manage(res);
}
-boolean multi_aff::involves_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::multi_aff multi_aff::scale(isl::multi_val mv) const
{
- auto res = isl_multi_aff_involves_dims(get(), static_cast<enum isl_dim_type>(type), first, n);
+ auto res = isl_multi_aff_scale_multi_val(copy(), mv.release());
return manage(res);
}
-boolean multi_aff::involves_locals() const
+isl::multi_aff multi_aff::scale(isl::val v) const
{
- auto res = isl_multi_aff_involves_locals(get());
+ auto res = isl_multi_aff_scale_val(copy(), v.release());
return manage(res);
}
-boolean multi_aff::involves_nan() const
+isl::multi_aff multi_aff::scale(long v) const
{
- auto res = isl_multi_aff_involves_nan(get());
- return manage(res);
+ return this->scale(isl::val(ctx(), v));
}
-isl::set multi_aff::lex_ge_set(isl::multi_aff ma2) const
+isl::multi_aff multi_aff::scale_down(isl::multi_val mv) const
{
- auto res = isl_multi_aff_lex_ge_set(copy(), ma2.release());
+ auto res = isl_multi_aff_scale_down_multi_val(copy(), mv.release());
return manage(res);
}
-isl::set multi_aff::lex_gt_set(isl::multi_aff ma2) const
+isl::multi_aff multi_aff::scale_down(isl::val v) const
{
- auto res = isl_multi_aff_lex_gt_set(copy(), ma2.release());
+ auto res = isl_multi_aff_scale_down_val(copy(), v.release());
return manage(res);
}
-isl::set multi_aff::lex_le_set(isl::multi_aff ma2) const
+isl::multi_aff multi_aff::scale_down(long v) const
{
- auto res = isl_multi_aff_lex_le_set(copy(), ma2.release());
- return manage(res);
+ return this->scale_down(isl::val(ctx(), v));
}
-isl::set multi_aff::lex_lt_set(isl::multi_aff ma2) const
+isl::multi_aff multi_aff::set_aff(int pos, isl::aff el) const
{
- auto res = isl_multi_aff_lex_lt_set(copy(), ma2.release());
+ auto res = isl_multi_aff_set_aff(copy(), pos, el.release());
return manage(res);
}
-isl::multi_aff multi_aff::mod_multi_val(isl::multi_val mv) const
+isl::multi_aff multi_aff::set_at(int pos, isl::aff el) const
{
- auto res = isl_multi_aff_mod_multi_val(copy(), mv.release());
+ auto res = isl_multi_aff_set_at(copy(), pos, el.release());
return manage(res);
}
-isl::multi_aff multi_aff::move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const
+isl::multi_pw_aff multi_aff::set_at(int pos, const isl::pw_aff &el) const
{
- auto res = isl_multi_aff_move_dims(copy(), static_cast<enum isl_dim_type>(dst_type), dst_pos, static_cast<enum isl_dim_type>(src_type), src_pos, n);
- return manage(res);
+ return isl::pw_multi_aff(*this).set_at(pos, el);
}
-isl::multi_aff multi_aff::multi_val_on_space(isl::space space, isl::multi_val mv)
+isl::multi_union_pw_aff multi_aff::set_at(int pos, const isl::union_pw_aff &el) const
{
- auto res = isl_multi_aff_multi_val_on_space(space.release(), mv.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).set_at(pos, el);
}
-isl::multi_aff multi_aff::neg() const
+isl::multi_pw_aff multi_aff::set_pw_aff(int pos, const isl::pw_aff &el) const
{
- auto res = isl_multi_aff_neg(copy());
- return manage(res);
+ return isl::pw_multi_aff(*this).set_pw_aff(pos, el);
}
-int multi_aff::plain_cmp(const isl::multi_aff &multi2) const
+isl::pw_multi_aff multi_aff::set_pw_aff(unsigned int pos, const isl::pw_aff &pa) const
{
- auto res = isl_multi_aff_plain_cmp(get(), multi2.get());
- return res;
+ return isl::pw_multi_aff(*this).set_pw_aff(pos, pa);
}
-boolean multi_aff::plain_is_equal(const isl::multi_aff &multi2) const
+isl::multi_aff multi_aff::set_range_tuple(isl::id id) const
{
- auto res = isl_multi_aff_plain_is_equal(get(), multi2.get());
+ auto res = isl_multi_aff_set_range_tuple_id(copy(), id.release());
return manage(res);
}
-isl::multi_aff multi_aff::product(isl::multi_aff multi2) const
+isl::multi_aff multi_aff::set_range_tuple(const std::string &id) const
{
- auto res = isl_multi_aff_product(copy(), multi2.release());
- return manage(res);
+ return this->set_range_tuple(isl::id(ctx(), id));
}
-isl::multi_aff multi_aff::project_domain_on_params() const
+isl::multi_union_pw_aff multi_aff::set_union_pw_aff(int pos, const isl::union_pw_aff &el) const
{
- auto res = isl_multi_aff_project_domain_on_params(copy());
- return manage(res);
+ return isl::pw_multi_aff(*this).set_union_pw_aff(pos, el);
}
-isl::multi_aff multi_aff::project_out_map(isl::space space, isl::dim type, unsigned int first, unsigned int n)
+class size multi_aff::size() const
{
- auto res = isl_multi_aff_project_out_map(space.release(), static_cast<enum isl_dim_type>(type), first, n);
+ auto res = isl_multi_aff_size(get());
return manage(res);
}
-isl::multi_aff multi_aff::pullback(isl::multi_aff ma2) const
+isl::space multi_aff::space() const
{
- auto res = isl_multi_aff_pullback_multi_aff(copy(), ma2.release());
+ auto res = isl_multi_aff_get_space(get());
return manage(res);
}
-isl::multi_aff multi_aff::range_factor_domain() const
+isl::space multi_aff::get_space() const
{
- auto res = isl_multi_aff_range_factor_domain(copy());
- return manage(res);
+ return space();
}
-isl::multi_aff multi_aff::range_factor_range() const
+isl::multi_aff multi_aff::sub(isl::multi_aff multi2) const
{
- auto res = isl_multi_aff_range_factor_range(copy());
+ auto res = isl_multi_aff_sub(copy(), multi2.release());
return manage(res);
}
-boolean multi_aff::range_is_wrapping() const
+isl::multi_pw_aff multi_aff::sub(const isl::multi_pw_aff &multi2) const
{
- auto res = isl_multi_aff_range_is_wrapping(get());
- return manage(res);
+ return isl::pw_multi_aff(*this).sub(multi2);
}
-isl::multi_aff multi_aff::range_map(isl::space space)
+isl::multi_union_pw_aff multi_aff::sub(const isl::multi_union_pw_aff &multi2) const
{
- auto res = isl_multi_aff_range_map(space.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).sub(multi2);
}
-isl::multi_aff multi_aff::range_product(isl::multi_aff multi2) const
+isl::pw_multi_aff multi_aff::sub(const isl::pw_multi_aff &pma2) const
{
- auto res = isl_multi_aff_range_product(copy(), multi2.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).sub(pma2);
}
-isl::multi_aff multi_aff::range_splice(unsigned int pos, isl::multi_aff multi2) const
+isl::union_pw_multi_aff multi_aff::sub(const isl::union_pw_multi_aff &upma2) const
{
- auto res = isl_multi_aff_range_splice(copy(), pos, multi2.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).sub(upma2);
}
-isl::multi_aff multi_aff::reset_tuple_id(isl::dim type) const
+isl::multi_aff multi_aff::sub(const isl::aff &multi2) const
{
- auto res = isl_multi_aff_reset_tuple_id(copy(), static_cast<enum isl_dim_type>(type));
- return manage(res);
+ return this->sub(isl::multi_aff(multi2));
}
-isl::multi_aff multi_aff::reset_user() const
+isl::pw_multi_aff multi_aff::subtract_domain(const isl::set &set) const
{
- auto res = isl_multi_aff_reset_user(copy());
- return manage(res);
+ return isl::pw_multi_aff(*this).subtract_domain(set);
}
-isl::multi_aff multi_aff::scale(isl::multi_val mv) const
+isl::union_pw_multi_aff multi_aff::subtract_domain(const isl::space &space) const
{
- auto res = isl_multi_aff_scale_multi_val(copy(), mv.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).subtract_domain(space);
}
-isl::multi_aff multi_aff::scale(isl::val v) const
+isl::union_pw_multi_aff multi_aff::subtract_domain(const isl::union_set &uset) const
{
- auto res = isl_multi_aff_scale_val(copy(), v.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).subtract_domain(uset);
}
-isl::multi_aff multi_aff::scale_down(isl::multi_val mv) const
+isl::pw_multi_aff_list multi_aff::to_list() const
{
- auto res = isl_multi_aff_scale_down_multi_val(copy(), mv.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).to_list();
}
-isl::multi_aff multi_aff::scale_down(isl::val v) const
+isl::multi_pw_aff multi_aff::to_multi_pw_aff() const
{
- auto res = isl_multi_aff_scale_down_val(copy(), v.release());
+ auto res = isl_multi_aff_to_multi_pw_aff(copy());
return manage(res);
}
-isl::multi_aff multi_aff::set_aff(int pos, isl::aff el) const
+isl::multi_union_pw_aff multi_aff::to_multi_union_pw_aff() const
{
- auto res = isl_multi_aff_set_aff(copy(), pos, el.release());
+ auto res = isl_multi_aff_to_multi_union_pw_aff(copy());
return manage(res);
}
-isl::multi_aff multi_aff::set_at(int pos, isl::aff el) const
+isl::pw_multi_aff multi_aff::to_pw_multi_aff() const
{
- auto res = isl_multi_aff_set_at(copy(), pos, el.release());
+ auto res = isl_multi_aff_to_pw_multi_aff(copy());
return manage(res);
}
-isl::multi_aff multi_aff::set_dim_id(isl::dim type, unsigned int pos, isl::id id) const
+isl::union_pw_multi_aff multi_aff::to_union_pw_multi_aff() const
{
- auto res = isl_multi_aff_set_dim_id(copy(), static_cast<enum isl_dim_type>(type), pos, id.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).to_union_pw_multi_aff();
}
-isl::multi_aff multi_aff::set_tuple_id(isl::dim type, isl::id id) const
+isl::id multi_aff::tuple_id(isl::dim type) const
{
- auto res = isl_multi_aff_set_tuple_id(copy(), static_cast<enum isl_dim_type>(type), id.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).tuple_id(type);
}
-isl::multi_aff multi_aff::set_tuple_name(isl::dim type, const std::string &s) const
+isl::multi_aff multi_aff::unbind_params_insert_domain(isl::multi_id domain) const
{
- auto res = isl_multi_aff_set_tuple_name(copy(), static_cast<enum isl_dim_type>(type), s.c_str());
+ auto res = isl_multi_aff_unbind_params_insert_domain(copy(), domain.release());
return manage(res);
}
-isl_size multi_aff::size() const
+isl::multi_pw_aff multi_aff::union_add(const isl::multi_pw_aff &mpa2) const
{
- auto res = isl_multi_aff_size(get());
- return res;
+ return isl::pw_multi_aff(*this).union_add(mpa2);
}
-isl::multi_aff multi_aff::splice(unsigned int in_pos, unsigned int out_pos, isl::multi_aff multi2) const
+isl::multi_union_pw_aff multi_aff::union_add(const isl::multi_union_pw_aff &mupa2) const
{
- auto res = isl_multi_aff_splice(copy(), in_pos, out_pos, multi2.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).union_add(mupa2);
}
-isl::multi_aff multi_aff::sub(isl::multi_aff multi2) const
+isl::pw_multi_aff multi_aff::union_add(const isl::pw_multi_aff &pma2) const
{
- auto res = isl_multi_aff_sub(copy(), multi2.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).union_add(pma2);
}
-isl::multi_aff multi_aff::unbind_params_insert_domain(isl::multi_id domain) const
+isl::union_pw_multi_aff multi_aff::union_add(const isl::union_pw_multi_aff &upma2) const
{
- auto res = isl_multi_aff_unbind_params_insert_domain(copy(), domain.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).union_add(upma2);
}
isl::multi_aff multi_aff::zero(isl::space space)
return manage(res);
}
+inline std::ostream &operator<<(std::ostream &os, const multi_aff &obj)
+{
+ char *str = isl_multi_aff_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
+}
+
// implementations for isl::multi_id
multi_id manage(__isl_take isl_multi_id *ptr) {
return multi_id(ptr);
ptr = obj.copy();
}
-
multi_id::multi_id(__isl_take isl_multi_id *ptr)
: ptr(ptr) {}
auto res = isl_multi_id_from_id_list(space.release(), list.release());
ptr = res;
}
+
multi_id::multi_id(isl::ctx ctx, const std::string &str)
{
auto res = isl_multi_id_read_from_str(ctx.release(), str.c_str());
return ptr == nullptr;
}
-
isl::ctx multi_id::ctx() const {
return isl::ctx(isl_multi_id_get_ctx(ptr));
}
-void multi_id::dump() const {
- isl_multi_id_dump(get());
-}
-
-
-isl::multi_id multi_id::align_params(isl::space model) const
+isl::id multi_id::at(int pos) const
{
- auto res = isl_multi_id_align_params(copy(), model.release());
+ auto res = isl_multi_id_get_at(get(), pos);
return manage(res);
}
-isl::multi_id multi_id::factor_range() const
+isl::id multi_id::get_at(int pos) const
{
- auto res = isl_multi_id_factor_range(copy());
- return manage(res);
+ return at(pos);
}
isl::multi_id multi_id::flat_range_product(isl::multi_id multi2) const
return manage(res);
}
-isl::multi_id multi_id::flatten_range() const
-{
- auto res = isl_multi_id_flatten_range(copy());
- return manage(res);
-}
-
-isl::multi_id multi_id::from_range() const
-{
- auto res = isl_multi_id_from_range(copy());
- return manage(res);
-}
-
-isl::id multi_id::get_at(int pos) const
-{
- auto res = isl_multi_id_get_at(get(), pos);
- return manage(res);
-}
-
-isl::space multi_id::get_domain_space() const
-{
- auto res = isl_multi_id_get_domain_space(get());
- return manage(res);
-}
-
-isl::id multi_id::get_id(int pos) const
-{
- auto res = isl_multi_id_get_id(get(), pos);
- return manage(res);
-}
-
-isl::id_list multi_id::get_list() const
+isl::id_list multi_id::list() const
{
auto res = isl_multi_id_get_list(get());
return manage(res);
}
-isl::space multi_id::get_space() const
+isl::id_list multi_id::get_list() const
{
- auto res = isl_multi_id_get_space(get());
- return manage(res);
+ return list();
}
boolean multi_id::plain_is_equal(const isl::multi_id &multi2) const
return manage(res);
}
-isl::multi_id multi_id::range_factor_domain() const
+isl::multi_id multi_id::range_product(isl::multi_id multi2) const
{
- auto res = isl_multi_id_range_factor_domain(copy());
+ auto res = isl_multi_id_range_product(copy(), multi2.release());
return manage(res);
}
-isl::multi_id multi_id::range_factor_range() const
+isl::multi_id multi_id::set_at(int pos, isl::id el) const
{
- auto res = isl_multi_id_range_factor_range(copy());
+ auto res = isl_multi_id_set_at(copy(), pos, el.release());
return manage(res);
}
-boolean multi_id::range_is_wrapping() const
+isl::multi_id multi_id::set_at(int pos, const std::string &el) const
{
- auto res = isl_multi_id_range_is_wrapping(get());
- return manage(res);
+ return this->set_at(pos, isl::id(ctx(), el));
}
-isl::multi_id multi_id::range_product(isl::multi_id multi2) const
+isl::multi_id multi_id::set_id(int pos, isl::id el) const
{
- auto res = isl_multi_id_range_product(copy(), multi2.release());
+ auto res = isl_multi_id_set_id(copy(), pos, el.release());
return manage(res);
}
-isl::multi_id multi_id::range_splice(unsigned int pos, isl::multi_id multi2) const
+isl::multi_id multi_id::set_id(int pos, const std::string &el) const
{
- auto res = isl_multi_id_range_splice(copy(), pos, multi2.release());
- return manage(res);
+ return this->set_id(pos, isl::id(ctx(), el));
}
-isl::multi_id multi_id::reset_user() const
+class size multi_id::size() const
{
- auto res = isl_multi_id_reset_user(copy());
+ auto res = isl_multi_id_size(get());
return manage(res);
}
-isl::multi_id multi_id::set_at(int pos, isl::id el) const
+isl::space multi_id::space() const
{
- auto res = isl_multi_id_set_at(copy(), pos, el.release());
+ auto res = isl_multi_id_get_space(get());
return manage(res);
}
-isl::multi_id multi_id::set_id(int pos, isl::id el) const
+isl::space multi_id::get_space() const
{
- auto res = isl_multi_id_set_id(copy(), pos, el.release());
- return manage(res);
+ return space();
}
-isl_size multi_id::size() const
+inline std::ostream &operator<<(std::ostream &os, const multi_id &obj)
{
- auto res = isl_multi_id_size(get());
- return res;
+ char *str = isl_multi_id_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
// implementations for isl::multi_pw_aff
ptr = obj.copy();
}
-
multi_pw_aff::multi_pw_aff(__isl_take isl_multi_pw_aff *ptr)
: ptr(ptr) {}
auto res = isl_multi_pw_aff_from_aff(aff.release());
ptr = res;
}
+
multi_pw_aff::multi_pw_aff(isl::multi_aff ma)
{
auto res = isl_multi_pw_aff_from_multi_aff(ma.release());
ptr = res;
}
+
multi_pw_aff::multi_pw_aff(isl::pw_aff pa)
{
auto res = isl_multi_pw_aff_from_pw_aff(pa.release());
ptr = res;
}
+
multi_pw_aff::multi_pw_aff(isl::space space, isl::pw_aff_list list)
{
auto res = isl_multi_pw_aff_from_pw_aff_list(space.release(), list.release());
ptr = res;
}
+
multi_pw_aff::multi_pw_aff(isl::pw_multi_aff pma)
{
auto res = isl_multi_pw_aff_from_pw_multi_aff(pma.release());
ptr = res;
}
+
multi_pw_aff::multi_pw_aff(isl::ctx ctx, const std::string &str)
{
auto res = isl_multi_pw_aff_read_from_str(ctx.release(), str.c_str());
return ptr == nullptr;
}
-
isl::ctx multi_pw_aff::ctx() const {
return isl::ctx(isl_multi_pw_aff_get_ctx(ptr));
}
-void multi_pw_aff::dump() const {
- isl_multi_pw_aff_dump(get());
-}
-
-
isl::multi_pw_aff multi_pw_aff::add(isl::multi_pw_aff multi2) const
{
auto res = isl_multi_pw_aff_add(copy(), multi2.release());
return manage(res);
}
-isl::multi_pw_aff multi_pw_aff::add_constant(isl::multi_val mv) const
+isl::multi_union_pw_aff multi_pw_aff::add(const isl::multi_union_pw_aff &multi2) const
{
- auto res = isl_multi_pw_aff_add_constant_multi_val(copy(), mv.release());
- return manage(res);
+ return isl::multi_union_pw_aff(*this).add(multi2);
}
-isl::multi_pw_aff multi_pw_aff::add_constant(isl::val v) const
+isl::multi_pw_aff multi_pw_aff::add(const isl::aff &multi2) const
{
- auto res = isl_multi_pw_aff_add_constant_val(copy(), v.release());
- return manage(res);
+ return this->add(isl::multi_pw_aff(multi2));
}
-isl::multi_pw_aff multi_pw_aff::add_dims(isl::dim type, unsigned int n) const
+isl::multi_pw_aff multi_pw_aff::add(const isl::multi_aff &multi2) const
{
- auto res = isl_multi_pw_aff_add_dims(copy(), static_cast<enum isl_dim_type>(type), n);
- return manage(res);
+ return this->add(isl::multi_pw_aff(multi2));
}
-isl::multi_pw_aff multi_pw_aff::align_params(isl::space model) const
+isl::multi_pw_aff multi_pw_aff::add(const isl::pw_aff &multi2) const
{
- auto res = isl_multi_pw_aff_align_params(copy(), model.release());
- return manage(res);
+ return this->add(isl::multi_pw_aff(multi2));
}
-isl::set multi_pw_aff::bind(isl::multi_id tuple) const
+isl::multi_pw_aff multi_pw_aff::add(const isl::pw_multi_aff &multi2) const
{
- auto res = isl_multi_pw_aff_bind(copy(), tuple.release());
- return manage(res);
+ return this->add(isl::multi_pw_aff(multi2));
}
-isl::multi_pw_aff multi_pw_aff::bind_domain(isl::multi_id tuple) const
+isl::multi_pw_aff multi_pw_aff::add_constant(isl::multi_val mv) const
{
- auto res = isl_multi_pw_aff_bind_domain(copy(), tuple.release());
+ auto res = isl_multi_pw_aff_add_constant_multi_val(copy(), mv.release());
return manage(res);
}
-isl::multi_pw_aff multi_pw_aff::bind_domain_wrapped_domain(isl::multi_id tuple) const
+isl::multi_pw_aff multi_pw_aff::add_constant(isl::val v) const
{
- auto res = isl_multi_pw_aff_bind_domain_wrapped_domain(copy(), tuple.release());
+ auto res = isl_multi_pw_aff_add_constant_val(copy(), v.release());
return manage(res);
}
-isl::multi_pw_aff multi_pw_aff::coalesce() const
+isl::multi_pw_aff multi_pw_aff::add_constant(long v) const
{
- auto res = isl_multi_pw_aff_coalesce(copy());
- return manage(res);
+ return this->add_constant(isl::val(ctx(), v));
}
-isl_size multi_pw_aff::dim(isl::dim type) const
+isl::map multi_pw_aff::as_map() const
{
- auto res = isl_multi_pw_aff_dim(get(), static_cast<enum isl_dim_type>(type));
- return res;
+ auto res = isl_multi_pw_aff_as_map(copy());
+ return manage(res);
}
-isl::set multi_pw_aff::domain() const
+isl::multi_aff multi_pw_aff::as_multi_aff() const
{
- auto res = isl_multi_pw_aff_domain(copy());
+ auto res = isl_multi_pw_aff_as_multi_aff(copy());
return manage(res);
}
-isl::multi_pw_aff multi_pw_aff::drop_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::set multi_pw_aff::as_set() const
{
- auto res = isl_multi_pw_aff_drop_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
+ auto res = isl_multi_pw_aff_as_set(copy());
return manage(res);
}
-isl::map multi_pw_aff::eq_map(isl::multi_pw_aff mpa2) const
+isl::pw_aff multi_pw_aff::at(int pos) const
{
- auto res = isl_multi_pw_aff_eq_map(copy(), mpa2.release());
+ auto res = isl_multi_pw_aff_get_at(get(), pos);
return manage(res);
}
-isl::multi_pw_aff multi_pw_aff::factor_range() const
+isl::pw_aff multi_pw_aff::get_at(int pos) const
{
- auto res = isl_multi_pw_aff_factor_range(copy());
- return manage(res);
+ return at(pos);
}
-int multi_pw_aff::find_dim_by_id(isl::dim type, const isl::id &id) const
+isl::set multi_pw_aff::bind(isl::multi_id tuple) const
{
- auto res = isl_multi_pw_aff_find_dim_by_id(get(), static_cast<enum isl_dim_type>(type), id.get());
- return res;
+ auto res = isl_multi_pw_aff_bind(copy(), tuple.release());
+ return manage(res);
}
-int multi_pw_aff::find_dim_by_name(isl::dim type, const std::string &name) const
+isl::multi_pw_aff multi_pw_aff::bind_domain(isl::multi_id tuple) const
{
- auto res = isl_multi_pw_aff_find_dim_by_name(get(), static_cast<enum isl_dim_type>(type), name.c_str());
- return res;
+ auto res = isl_multi_pw_aff_bind_domain(copy(), tuple.release());
+ return manage(res);
}
-isl::multi_pw_aff multi_pw_aff::flat_range_product(isl::multi_pw_aff multi2) const
+isl::multi_pw_aff multi_pw_aff::bind_domain_wrapped_domain(isl::multi_id tuple) const
{
- auto res = isl_multi_pw_aff_flat_range_product(copy(), multi2.release());
+ auto res = isl_multi_pw_aff_bind_domain_wrapped_domain(copy(), tuple.release());
return manage(res);
}
-isl::multi_pw_aff multi_pw_aff::flatten_range() const
+isl::multi_pw_aff multi_pw_aff::coalesce() const
{
- auto res = isl_multi_pw_aff_flatten_range(copy());
+ auto res = isl_multi_pw_aff_coalesce(copy());
return manage(res);
}
-isl::multi_pw_aff multi_pw_aff::from_range() const
+class size multi_pw_aff::dim(isl::dim type) const
{
- auto res = isl_multi_pw_aff_from_range(copy());
+ auto res = isl_multi_pw_aff_dim(get(), static_cast<enum isl_dim_type>(type));
return manage(res);
}
-isl::pw_aff multi_pw_aff::get_at(int pos) const
+isl::set multi_pw_aff::domain() const
{
- auto res = isl_multi_pw_aff_get_at(get(), pos);
+ auto res = isl_multi_pw_aff_domain(copy());
return manage(res);
}
-isl::id multi_pw_aff::get_dim_id(isl::dim type, unsigned int pos) const
+isl::multi_pw_aff multi_pw_aff::flat_range_product(isl::multi_pw_aff multi2) const
{
- auto res = isl_multi_pw_aff_get_dim_id(get(), static_cast<enum isl_dim_type>(type), pos);
+ auto res = isl_multi_pw_aff_flat_range_product(copy(), multi2.release());
return manage(res);
}
-isl::space multi_pw_aff::get_domain_space() const
+isl::multi_union_pw_aff multi_pw_aff::flat_range_product(const isl::multi_union_pw_aff &multi2) const
{
- auto res = isl_multi_pw_aff_get_domain_space(get());
- return manage(res);
+ return isl::multi_union_pw_aff(*this).flat_range_product(multi2);
}
-uint32_t multi_pw_aff::get_hash() const
+isl::multi_pw_aff multi_pw_aff::flat_range_product(const isl::aff &multi2) const
{
- auto res = isl_multi_pw_aff_get_hash(get());
- return res;
+ return this->flat_range_product(isl::multi_pw_aff(multi2));
}
-isl::pw_aff_list multi_pw_aff::get_list() const
+isl::multi_pw_aff multi_pw_aff::flat_range_product(const isl::multi_aff &multi2) const
{
- auto res = isl_multi_pw_aff_get_list(get());
- return manage(res);
+ return this->flat_range_product(isl::multi_pw_aff(multi2));
}
-isl::pw_aff multi_pw_aff::get_pw_aff(int pos) const
+isl::multi_pw_aff multi_pw_aff::flat_range_product(const isl::pw_aff &multi2) const
{
- auto res = isl_multi_pw_aff_get_pw_aff(get(), pos);
- return manage(res);
+ return this->flat_range_product(isl::multi_pw_aff(multi2));
}
-isl::space multi_pw_aff::get_space() const
+isl::multi_pw_aff multi_pw_aff::flat_range_product(const isl::pw_multi_aff &multi2) const
{
- auto res = isl_multi_pw_aff_get_space(get());
- return manage(res);
+ return this->flat_range_product(isl::multi_pw_aff(multi2));
}
-isl::id multi_pw_aff::get_tuple_id(isl::dim type) const
+isl::multi_pw_aff multi_pw_aff::gist(isl::set set) const
{
- auto res = isl_multi_pw_aff_get_tuple_id(get(), static_cast<enum isl_dim_type>(type));
+ auto res = isl_multi_pw_aff_gist(copy(), set.release());
return manage(res);
}
-std::string multi_pw_aff::get_tuple_name(isl::dim type) const
+isl::multi_union_pw_aff multi_pw_aff::gist(const isl::union_set &context) const
{
- auto res = isl_multi_pw_aff_get_tuple_name(get(), static_cast<enum isl_dim_type>(type));
- std::string tmp(res);
- return tmp;
+ return isl::multi_union_pw_aff(*this).gist(context);
}
-isl::multi_pw_aff multi_pw_aff::gist(isl::set set) const
+isl::multi_pw_aff multi_pw_aff::gist(const isl::basic_set &set) const
{
- auto res = isl_multi_pw_aff_gist(copy(), set.release());
- return manage(res);
+ return this->gist(isl::set(set));
}
-isl::multi_pw_aff multi_pw_aff::gist_params(isl::set set) const
+isl::multi_pw_aff multi_pw_aff::gist(const isl::point &set) const
{
- auto res = isl_multi_pw_aff_gist_params(copy(), set.release());
- return manage(res);
+ return this->gist(isl::set(set));
}
-boolean multi_pw_aff::has_tuple_id(isl::dim type) const
+boolean multi_pw_aff::has_range_tuple_id() const
{
- auto res = isl_multi_pw_aff_has_tuple_id(get(), static_cast<enum isl_dim_type>(type));
+ auto res = isl_multi_pw_aff_has_range_tuple_id(get());
return manage(res);
}
return manage(res);
}
-isl::multi_pw_aff multi_pw_aff::insert_dims(isl::dim type, unsigned int first, unsigned int n) const
-{
- auto res = isl_multi_pw_aff_insert_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
-}
-
isl::multi_pw_aff multi_pw_aff::insert_domain(isl::space domain) const
{
auto res = isl_multi_pw_aff_insert_domain(copy(), domain.release());
return manage(res);
}
-isl::multi_pw_aff multi_pw_aff::intersect_params(isl::set set) const
+isl::multi_union_pw_aff multi_pw_aff::intersect_domain(const isl::union_set &uset) const
{
- auto res = isl_multi_pw_aff_intersect_params(copy(), set.release());
- return manage(res);
+ return isl::multi_union_pw_aff(*this).intersect_domain(uset);
}
-boolean multi_pw_aff::involves_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::multi_pw_aff multi_pw_aff::intersect_domain(const isl::basic_set &domain) const
{
- auto res = isl_multi_pw_aff_involves_dims(get(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return this->intersect_domain(isl::set(domain));
}
-boolean multi_pw_aff::involves_nan() const
+isl::multi_pw_aff multi_pw_aff::intersect_domain(const isl::point &domain) const
{
- auto res = isl_multi_pw_aff_involves_nan(get());
- return manage(res);
+ return this->intersect_domain(isl::set(domain));
}
-boolean multi_pw_aff::involves_param(const isl::id &id) const
+isl::multi_pw_aff multi_pw_aff::intersect_params(isl::set set) const
{
- auto res = isl_multi_pw_aff_involves_param_id(get(), id.get());
+ auto res = isl_multi_pw_aff_intersect_params(copy(), set.release());
return manage(res);
}
-boolean multi_pw_aff::involves_param(const isl::id_list &list) const
+boolean multi_pw_aff::involves_nan() const
{
- auto res = isl_multi_pw_aff_involves_param_id_list(get(), list.get());
+ auto res = isl_multi_pw_aff_involves_nan(get());
return manage(res);
}
-boolean multi_pw_aff::is_cst() const
+boolean multi_pw_aff::involves_param(const isl::id &id) const
{
- auto res = isl_multi_pw_aff_is_cst(get());
+ auto res = isl_multi_pw_aff_involves_param_id(get(), id.get());
return manage(res);
}
-boolean multi_pw_aff::is_equal(const isl::multi_pw_aff &mpa2) const
+boolean multi_pw_aff::involves_param(const std::string &id) const
{
- auto res = isl_multi_pw_aff_is_equal(get(), mpa2.get());
- return manage(res);
+ return this->involves_param(isl::id(ctx(), id));
}
-isl::map multi_pw_aff::lex_ge_map(isl::multi_pw_aff mpa2) const
+boolean multi_pw_aff::involves_param(const isl::id_list &list) const
{
- auto res = isl_multi_pw_aff_lex_ge_map(copy(), mpa2.release());
+ auto res = isl_multi_pw_aff_involves_param_id_list(get(), list.get());
return manage(res);
}
-isl::map multi_pw_aff::lex_gt_map(isl::multi_pw_aff mpa2) const
+boolean multi_pw_aff::isa_multi_aff() const
{
- auto res = isl_multi_pw_aff_lex_gt_map(copy(), mpa2.release());
+ auto res = isl_multi_pw_aff_isa_multi_aff(get());
return manage(res);
}
-isl::map multi_pw_aff::lex_le_map(isl::multi_pw_aff mpa2) const
+isl::pw_aff_list multi_pw_aff::list() const
{
- auto res = isl_multi_pw_aff_lex_le_map(copy(), mpa2.release());
+ auto res = isl_multi_pw_aff_get_list(get());
return manage(res);
}
-isl::map multi_pw_aff::lex_lt_map(isl::multi_pw_aff mpa2) const
+isl::pw_aff_list multi_pw_aff::get_list() const
{
- auto res = isl_multi_pw_aff_lex_lt_map(copy(), mpa2.release());
- return manage(res);
+ return list();
}
isl::multi_pw_aff multi_pw_aff::max(isl::multi_pw_aff multi2) const
return manage(res);
}
-isl::multi_pw_aff multi_pw_aff::mod_multi_val(isl::multi_val mv) const
+isl::multi_pw_aff multi_pw_aff::neg() const
{
- auto res = isl_multi_pw_aff_mod_multi_val(copy(), mv.release());
+ auto res = isl_multi_pw_aff_neg(copy());
return manage(res);
}
-isl::multi_pw_aff multi_pw_aff::move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const
+boolean multi_pw_aff::plain_is_equal(const isl::multi_pw_aff &multi2) const
{
- auto res = isl_multi_pw_aff_move_dims(copy(), static_cast<enum isl_dim_type>(dst_type), dst_pos, static_cast<enum isl_dim_type>(src_type), src_pos, n);
+ auto res = isl_multi_pw_aff_plain_is_equal(get(), multi2.get());
return manage(res);
}
-isl::multi_pw_aff multi_pw_aff::neg() const
+boolean multi_pw_aff::plain_is_equal(const isl::multi_union_pw_aff &multi2) const
{
- auto res = isl_multi_pw_aff_neg(copy());
- return manage(res);
+ return isl::multi_union_pw_aff(*this).plain_is_equal(multi2);
}
-boolean multi_pw_aff::plain_is_equal(const isl::multi_pw_aff &multi2) const
+boolean multi_pw_aff::plain_is_equal(const isl::aff &multi2) const
{
- auto res = isl_multi_pw_aff_plain_is_equal(get(), multi2.get());
- return manage(res);
+ return this->plain_is_equal(isl::multi_pw_aff(multi2));
}
-isl::multi_pw_aff multi_pw_aff::product(isl::multi_pw_aff multi2) const
+boolean multi_pw_aff::plain_is_equal(const isl::multi_aff &multi2) const
{
- auto res = isl_multi_pw_aff_product(copy(), multi2.release());
- return manage(res);
+ return this->plain_is_equal(isl::multi_pw_aff(multi2));
+}
+
+boolean multi_pw_aff::plain_is_equal(const isl::pw_aff &multi2) const
+{
+ return this->plain_is_equal(isl::multi_pw_aff(multi2));
+}
+
+boolean multi_pw_aff::plain_is_equal(const isl::pw_multi_aff &multi2) const
+{
+ return this->plain_is_equal(isl::multi_pw_aff(multi2));
}
-isl::multi_pw_aff multi_pw_aff::project_domain_on_params() const
+isl::multi_pw_aff multi_pw_aff::product(isl::multi_pw_aff multi2) const
{
- auto res = isl_multi_pw_aff_project_domain_on_params(copy());
+ auto res = isl_multi_pw_aff_product(copy(), multi2.release());
return manage(res);
}
return manage(res);
}
-isl::multi_pw_aff multi_pw_aff::range_factor_domain() const
+isl::multi_union_pw_aff multi_pw_aff::pullback(const isl::union_pw_multi_aff &upma) const
{
- auto res = isl_multi_pw_aff_range_factor_domain(copy());
- return manage(res);
+ return isl::multi_union_pw_aff(*this).pullback(upma);
}
-isl::multi_pw_aff multi_pw_aff::range_factor_range() const
+isl::multi_pw_aff multi_pw_aff::range_product(isl::multi_pw_aff multi2) const
{
- auto res = isl_multi_pw_aff_range_factor_range(copy());
+ auto res = isl_multi_pw_aff_range_product(copy(), multi2.release());
return manage(res);
}
-boolean multi_pw_aff::range_is_wrapping() const
+isl::multi_union_pw_aff multi_pw_aff::range_product(const isl::multi_union_pw_aff &multi2) const
{
- auto res = isl_multi_pw_aff_range_is_wrapping(get());
- return manage(res);
+ return isl::multi_union_pw_aff(*this).range_product(multi2);
}
-isl::multi_pw_aff multi_pw_aff::range_product(isl::multi_pw_aff multi2) const
+isl::multi_pw_aff multi_pw_aff::range_product(const isl::aff &multi2) const
{
- auto res = isl_multi_pw_aff_range_product(copy(), multi2.release());
+ return this->range_product(isl::multi_pw_aff(multi2));
+}
+
+isl::multi_pw_aff multi_pw_aff::range_product(const isl::multi_aff &multi2) const
+{
+ return this->range_product(isl::multi_pw_aff(multi2));
+}
+
+isl::multi_pw_aff multi_pw_aff::range_product(const isl::pw_aff &multi2) const
+{
+ return this->range_product(isl::multi_pw_aff(multi2));
+}
+
+isl::multi_pw_aff multi_pw_aff::range_product(const isl::pw_multi_aff &multi2) const
+{
+ return this->range_product(isl::multi_pw_aff(multi2));
+}
+
+isl::id multi_pw_aff::range_tuple_id() const
+{
+ auto res = isl_multi_pw_aff_get_range_tuple_id(get());
return manage(res);
}
-isl::multi_pw_aff multi_pw_aff::range_splice(unsigned int pos, isl::multi_pw_aff multi2) const
+isl::id multi_pw_aff::get_range_tuple_id() const
+{
+ return range_tuple_id();
+}
+
+isl::multi_pw_aff multi_pw_aff::reset_range_tuple_id() const
{
- auto res = isl_multi_pw_aff_range_splice(copy(), pos, multi2.release());
+ auto res = isl_multi_pw_aff_reset_range_tuple_id(copy());
return manage(res);
}
return manage(res);
}
-isl::multi_pw_aff multi_pw_aff::reset_user() const
-{
- auto res = isl_multi_pw_aff_reset_user(copy());
- return manage(res);
-}
-
isl::multi_pw_aff multi_pw_aff::scale(isl::multi_val mv) const
{
auto res = isl_multi_pw_aff_scale_multi_val(copy(), mv.release());
return manage(res);
}
+isl::multi_pw_aff multi_pw_aff::scale(long v) const
+{
+ return this->scale(isl::val(ctx(), v));
+}
+
isl::multi_pw_aff multi_pw_aff::scale_down(isl::multi_val mv) const
{
auto res = isl_multi_pw_aff_scale_down_multi_val(copy(), mv.release());
return manage(res);
}
+isl::multi_pw_aff multi_pw_aff::scale_down(long v) const
+{
+ return this->scale_down(isl::val(ctx(), v));
+}
+
isl::multi_pw_aff multi_pw_aff::set_at(int pos, isl::pw_aff el) const
{
auto res = isl_multi_pw_aff_set_at(copy(), pos, el.release());
return manage(res);
}
-isl::multi_pw_aff multi_pw_aff::set_dim_id(isl::dim type, unsigned int pos, isl::id id) const
+isl::multi_union_pw_aff multi_pw_aff::set_at(int pos, const isl::union_pw_aff &el) const
{
- auto res = isl_multi_pw_aff_set_dim_id(copy(), static_cast<enum isl_dim_type>(type), pos, id.release());
- return manage(res);
+ return isl::multi_union_pw_aff(*this).set_at(pos, el);
}
isl::multi_pw_aff multi_pw_aff::set_pw_aff(int pos, isl::pw_aff el) const
return manage(res);
}
-isl::multi_pw_aff multi_pw_aff::set_tuple_id(isl::dim type, isl::id id) const
+isl::multi_pw_aff multi_pw_aff::set_range_tuple(isl::id id) const
{
- auto res = isl_multi_pw_aff_set_tuple_id(copy(), static_cast<enum isl_dim_type>(type), id.release());
+ auto res = isl_multi_pw_aff_set_range_tuple_id(copy(), id.release());
return manage(res);
}
-isl::multi_pw_aff multi_pw_aff::set_tuple_name(isl::dim type, const std::string &s) const
+isl::multi_pw_aff multi_pw_aff::set_range_tuple(const std::string &id) const
{
- auto res = isl_multi_pw_aff_set_tuple_name(copy(), static_cast<enum isl_dim_type>(type), s.c_str());
- return manage(res);
+ return this->set_range_tuple(isl::id(ctx(), id));
}
-isl_size multi_pw_aff::size() const
+isl::multi_union_pw_aff multi_pw_aff::set_union_pw_aff(int pos, const isl::union_pw_aff &el) const
+{
+ return isl::multi_union_pw_aff(*this).set_union_pw_aff(pos, el);
+}
+
+class size multi_pw_aff::size() const
{
auto res = isl_multi_pw_aff_size(get());
- return res;
+ return manage(res);
}
-isl::multi_pw_aff multi_pw_aff::splice(unsigned int in_pos, unsigned int out_pos, isl::multi_pw_aff multi2) const
+isl::space multi_pw_aff::space() const
{
- auto res = isl_multi_pw_aff_splice(copy(), in_pos, out_pos, multi2.release());
+ auto res = isl_multi_pw_aff_get_space(get());
return manage(res);
}
+isl::space multi_pw_aff::get_space() const
+{
+ return space();
+}
+
isl::multi_pw_aff multi_pw_aff::sub(isl::multi_pw_aff multi2) const
{
auto res = isl_multi_pw_aff_sub(copy(), multi2.release());
return manage(res);
}
+isl::multi_union_pw_aff multi_pw_aff::sub(const isl::multi_union_pw_aff &multi2) const
+{
+ return isl::multi_union_pw_aff(*this).sub(multi2);
+}
+
+isl::multi_pw_aff multi_pw_aff::sub(const isl::aff &multi2) const
+{
+ return this->sub(isl::multi_pw_aff(multi2));
+}
+
+isl::multi_pw_aff multi_pw_aff::sub(const isl::multi_aff &multi2) const
+{
+ return this->sub(isl::multi_pw_aff(multi2));
+}
+
+isl::multi_pw_aff multi_pw_aff::sub(const isl::pw_aff &multi2) const
+{
+ return this->sub(isl::multi_pw_aff(multi2));
+}
+
+isl::multi_pw_aff multi_pw_aff::sub(const isl::pw_multi_aff &multi2) const
+{
+ return this->sub(isl::multi_pw_aff(multi2));
+}
+
isl::multi_pw_aff multi_pw_aff::unbind_params_insert_domain(isl::multi_id domain) const
{
auto res = isl_multi_pw_aff_unbind_params_insert_domain(copy(), domain.release());
return manage(res);
}
+isl::multi_union_pw_aff multi_pw_aff::union_add(const isl::multi_union_pw_aff &mupa2) const
+{
+ return isl::multi_union_pw_aff(*this).union_add(mupa2);
+}
+
+isl::multi_pw_aff multi_pw_aff::union_add(const isl::aff &mpa2) const
+{
+ return this->union_add(isl::multi_pw_aff(mpa2));
+}
+
+isl::multi_pw_aff multi_pw_aff::union_add(const isl::multi_aff &mpa2) const
+{
+ return this->union_add(isl::multi_pw_aff(mpa2));
+}
+
+isl::multi_pw_aff multi_pw_aff::union_add(const isl::pw_aff &mpa2) const
+{
+ return this->union_add(isl::multi_pw_aff(mpa2));
+}
+
+isl::multi_pw_aff multi_pw_aff::union_add(const isl::pw_multi_aff &mpa2) const
+{
+ return this->union_add(isl::multi_pw_aff(mpa2));
+}
+
isl::multi_pw_aff multi_pw_aff::zero(isl::space space)
{
auto res = isl_multi_pw_aff_zero(space.release());
return manage(res);
}
+inline std::ostream &operator<<(std::ostream &os, const multi_pw_aff &obj)
+{
+ char *str = isl_multi_pw_aff_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
+}
+
// implementations for isl::multi_union_pw_aff
multi_union_pw_aff manage(__isl_take isl_multi_union_pw_aff *ptr) {
return multi_union_pw_aff(ptr);
ptr = obj.copy();
}
-
multi_union_pw_aff::multi_union_pw_aff(__isl_take isl_multi_union_pw_aff *ptr)
: ptr(ptr) {}
auto res = isl_multi_union_pw_aff_from_multi_pw_aff(mpa.release());
ptr = res;
}
+
multi_union_pw_aff::multi_union_pw_aff(isl::union_pw_aff upa)
{
auto res = isl_multi_union_pw_aff_from_union_pw_aff(upa.release());
ptr = res;
}
+
multi_union_pw_aff::multi_union_pw_aff(isl::space space, isl::union_pw_aff_list list)
{
auto res = isl_multi_union_pw_aff_from_union_pw_aff_list(space.release(), list.release());
ptr = res;
}
+
multi_union_pw_aff::multi_union_pw_aff(isl::union_pw_multi_aff upma)
{
auto res = isl_multi_union_pw_aff_from_union_pw_multi_aff(upma.release());
ptr = res;
}
+
multi_union_pw_aff::multi_union_pw_aff(isl::ctx ctx, const std::string &str)
{
auto res = isl_multi_union_pw_aff_read_from_str(ctx.release(), str.c_str());
return ptr == nullptr;
}
-
isl::ctx multi_union_pw_aff::ctx() const {
return isl::ctx(isl_multi_union_pw_aff_get_ctx(ptr));
}
-void multi_union_pw_aff::dump() const {
- isl_multi_union_pw_aff_dump(get());
+isl::multi_union_pw_aff multi_union_pw_aff::add(isl::multi_union_pw_aff multi2) const
+{
+ auto res = isl_multi_union_pw_aff_add(copy(), multi2.release());
+ return manage(res);
+}
+
+isl::union_pw_aff multi_union_pw_aff::at(int pos) const
+{
+ auto res = isl_multi_union_pw_aff_get_at(get(), pos);
+ return manage(res);
}
+isl::union_pw_aff multi_union_pw_aff::get_at(int pos) const
+{
+ return at(pos);
+}
-isl::multi_union_pw_aff multi_union_pw_aff::add(isl::multi_union_pw_aff multi2) const
+isl::union_set multi_union_pw_aff::bind(isl::multi_id tuple) const
{
- auto res = isl_multi_union_pw_aff_add(copy(), multi2.release());
+ auto res = isl_multi_union_pw_aff_bind(copy(), tuple.release());
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::align_params(isl::space model) const
+isl::multi_union_pw_aff multi_union_pw_aff::coalesce() const
{
- auto res = isl_multi_union_pw_aff_align_params(copy(), model.release());
+ auto res = isl_multi_union_pw_aff_coalesce(copy());
return manage(res);
}
-isl::union_pw_aff multi_union_pw_aff::apply_aff(isl::aff aff) const
+class size multi_union_pw_aff::dim(isl::dim type) const
{
- auto res = isl_multi_union_pw_aff_apply_aff(copy(), aff.release());
+ auto res = isl_multi_union_pw_aff_dim(get(), static_cast<enum isl_dim_type>(type));
return manage(res);
}
-isl::union_pw_aff multi_union_pw_aff::apply_pw_aff(isl::pw_aff pa) const
+isl::union_set multi_union_pw_aff::domain() const
{
- auto res = isl_multi_union_pw_aff_apply_pw_aff(copy(), pa.release());
+ auto res = isl_multi_union_pw_aff_domain(copy());
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::apply_pw_multi_aff(isl::pw_multi_aff pma) const
+isl::multi_union_pw_aff multi_union_pw_aff::flat_range_product(isl::multi_union_pw_aff multi2) const
{
- auto res = isl_multi_union_pw_aff_apply_pw_multi_aff(copy(), pma.release());
+ auto res = isl_multi_union_pw_aff_flat_range_product(copy(), multi2.release());
return manage(res);
}
-isl::union_set multi_union_pw_aff::bind(isl::multi_id tuple) const
+isl::multi_union_pw_aff multi_union_pw_aff::from_union_map(isl::union_map umap)
{
- auto res = isl_multi_union_pw_aff_bind(copy(), tuple.release());
+ auto res = isl_multi_union_pw_aff_from_union_map(umap.release());
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::coalesce() const
+isl::multi_union_pw_aff multi_union_pw_aff::gist(isl::union_set context) const
{
- auto res = isl_multi_union_pw_aff_coalesce(copy());
+ auto res = isl_multi_union_pw_aff_gist(copy(), context.release());
return manage(res);
}
-isl_size multi_union_pw_aff::dim(isl::dim type) const
+boolean multi_union_pw_aff::has_range_tuple_id() const
{
- auto res = isl_multi_union_pw_aff_dim(get(), static_cast<enum isl_dim_type>(type));
- return res;
+ auto res = isl_multi_union_pw_aff_has_range_tuple_id(get());
+ return manage(res);
}
-isl::union_set multi_union_pw_aff::domain() const
+isl::multi_union_pw_aff multi_union_pw_aff::intersect_domain(isl::union_set uset) const
{
- auto res = isl_multi_union_pw_aff_domain(copy());
+ auto res = isl_multi_union_pw_aff_intersect_domain(copy(), uset.release());
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::drop_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::multi_union_pw_aff multi_union_pw_aff::intersect_params(isl::set params) const
{
- auto res = isl_multi_union_pw_aff_drop_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
+ auto res = isl_multi_union_pw_aff_intersect_params(copy(), params.release());
return manage(res);
}
-isl::multi_pw_aff multi_union_pw_aff::extract_multi_pw_aff(isl::space space) const
+boolean multi_union_pw_aff::involves_nan() const
{
- auto res = isl_multi_union_pw_aff_extract_multi_pw_aff(get(), space.release());
+ auto res = isl_multi_union_pw_aff_involves_nan(get());
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::factor_range() const
+isl::union_pw_aff_list multi_union_pw_aff::list() const
{
- auto res = isl_multi_union_pw_aff_factor_range(copy());
+ auto res = isl_multi_union_pw_aff_get_list(get());
return manage(res);
}
-int multi_union_pw_aff::find_dim_by_id(isl::dim type, const isl::id &id) const
+isl::union_pw_aff_list multi_union_pw_aff::get_list() const
{
- auto res = isl_multi_union_pw_aff_find_dim_by_id(get(), static_cast<enum isl_dim_type>(type), id.get());
- return res;
+ return list();
}
-int multi_union_pw_aff::find_dim_by_name(isl::dim type, const std::string &name) const
+isl::multi_union_pw_aff multi_union_pw_aff::neg() const
{
- auto res = isl_multi_union_pw_aff_find_dim_by_name(get(), static_cast<enum isl_dim_type>(type), name.c_str());
- return res;
+ auto res = isl_multi_union_pw_aff_neg(copy());
+ return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::flat_range_product(isl::multi_union_pw_aff multi2) const
+boolean multi_union_pw_aff::plain_is_equal(const isl::multi_union_pw_aff &multi2) const
{
- auto res = isl_multi_union_pw_aff_flat_range_product(copy(), multi2.release());
+ auto res = isl_multi_union_pw_aff_plain_is_equal(get(), multi2.get());
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::flatten_range() const
+isl::multi_union_pw_aff multi_union_pw_aff::pullback(isl::union_pw_multi_aff upma) const
{
- auto res = isl_multi_union_pw_aff_flatten_range(copy());
+ auto res = isl_multi_union_pw_aff_pullback_union_pw_multi_aff(copy(), upma.release());
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::floor() const
+isl::multi_union_pw_aff multi_union_pw_aff::range_product(isl::multi_union_pw_aff multi2) const
{
- auto res = isl_multi_union_pw_aff_floor(copy());
+ auto res = isl_multi_union_pw_aff_range_product(copy(), multi2.release());
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::from_multi_aff(isl::multi_aff ma)
+isl::id multi_union_pw_aff::range_tuple_id() const
{
- auto res = isl_multi_union_pw_aff_from_multi_aff(ma.release());
+ auto res = isl_multi_union_pw_aff_get_range_tuple_id(get());
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::from_range() const
+isl::id multi_union_pw_aff::get_range_tuple_id() const
+{
+ return range_tuple_id();
+}
+
+isl::multi_union_pw_aff multi_union_pw_aff::reset_range_tuple_id() const
{
- auto res = isl_multi_union_pw_aff_from_range(copy());
+ auto res = isl_multi_union_pw_aff_reset_range_tuple_id(copy());
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::from_union_map(isl::union_map umap)
+isl::multi_union_pw_aff multi_union_pw_aff::reset_tuple_id(isl::dim type) const
{
- auto res = isl_multi_union_pw_aff_from_union_map(umap.release());
+ auto res = isl_multi_union_pw_aff_reset_tuple_id(copy(), static_cast<enum isl_dim_type>(type));
return manage(res);
}
-isl::union_pw_aff multi_union_pw_aff::get_at(int pos) const
+isl::multi_union_pw_aff multi_union_pw_aff::scale(isl::multi_val mv) const
{
- auto res = isl_multi_union_pw_aff_get_at(get(), pos);
+ auto res = isl_multi_union_pw_aff_scale_multi_val(copy(), mv.release());
+ return manage(res);
+}
+
+isl::multi_union_pw_aff multi_union_pw_aff::scale(isl::val v) const
+{
+ auto res = isl_multi_union_pw_aff_scale_val(copy(), v.release());
+ return manage(res);
+}
+
+isl::multi_union_pw_aff multi_union_pw_aff::scale(long v) const
+{
+ return this->scale(isl::val(ctx(), v));
+}
+
+isl::multi_union_pw_aff multi_union_pw_aff::scale_down(isl::multi_val mv) const
+{
+ auto res = isl_multi_union_pw_aff_scale_down_multi_val(copy(), mv.release());
+ return manage(res);
+}
+
+isl::multi_union_pw_aff multi_union_pw_aff::scale_down(isl::val v) const
+{
+ auto res = isl_multi_union_pw_aff_scale_down_val(copy(), v.release());
+ return manage(res);
+}
+
+isl::multi_union_pw_aff multi_union_pw_aff::scale_down(long v) const
+{
+ return this->scale_down(isl::val(ctx(), v));
+}
+
+isl::multi_union_pw_aff multi_union_pw_aff::set_at(int pos, isl::union_pw_aff el) const
+{
+ auto res = isl_multi_union_pw_aff_set_at(copy(), pos, el.release());
+ return manage(res);
+}
+
+isl::multi_union_pw_aff multi_union_pw_aff::set_range_tuple(isl::id id) const
+{
+ auto res = isl_multi_union_pw_aff_set_range_tuple_id(copy(), id.release());
+ return manage(res);
+}
+
+isl::multi_union_pw_aff multi_union_pw_aff::set_range_tuple(const std::string &id) const
+{
+ return this->set_range_tuple(isl::id(ctx(), id));
+}
+
+isl::multi_union_pw_aff multi_union_pw_aff::set_union_pw_aff(int pos, isl::union_pw_aff el) const
+{
+ auto res = isl_multi_union_pw_aff_set_union_pw_aff(copy(), pos, el.release());
+ return manage(res);
+}
+
+class size multi_union_pw_aff::size() const
+{
+ auto res = isl_multi_union_pw_aff_size(get());
+ return manage(res);
+}
+
+isl::space multi_union_pw_aff::space() const
+{
+ auto res = isl_multi_union_pw_aff_get_space(get());
+ return manage(res);
+}
+
+isl::space multi_union_pw_aff::get_space() const
+{
+ return space();
+}
+
+isl::multi_union_pw_aff multi_union_pw_aff::sub(isl::multi_union_pw_aff multi2) const
+{
+ auto res = isl_multi_union_pw_aff_sub(copy(), multi2.release());
+ return manage(res);
+}
+
+isl::multi_union_pw_aff multi_union_pw_aff::union_add(isl::multi_union_pw_aff mupa2) const
+{
+ auto res = isl_multi_union_pw_aff_union_add(copy(), mupa2.release());
return manage(res);
}
-isl::id multi_union_pw_aff::get_dim_id(isl::dim type, unsigned int pos) const
+isl::multi_union_pw_aff multi_union_pw_aff::zero(isl::space space)
{
- auto res = isl_multi_union_pw_aff_get_dim_id(get(), static_cast<enum isl_dim_type>(type), pos);
+ auto res = isl_multi_union_pw_aff_zero(space.release());
return manage(res);
}
-isl::space multi_union_pw_aff::get_domain_space() const
-{
- auto res = isl_multi_union_pw_aff_get_domain_space(get());
- return manage(res);
+inline std::ostream &operator<<(std::ostream &os, const multi_union_pw_aff &obj)
+{
+ char *str = isl_multi_union_pw_aff_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
+}
+
+// implementations for isl::multi_val
+multi_val manage(__isl_take isl_multi_val *ptr) {
+ return multi_val(ptr);
+}
+multi_val manage_copy(__isl_keep isl_multi_val *ptr) {
+ ptr = isl_multi_val_copy(ptr);
+ return multi_val(ptr);
+}
+
+multi_val::multi_val()
+ : ptr(nullptr) {}
+
+multi_val::multi_val(const multi_val &obj)
+ : ptr(nullptr)
+{
+ ptr = obj.copy();
+}
+
+multi_val::multi_val(__isl_take isl_multi_val *ptr)
+ : ptr(ptr) {}
+
+multi_val::multi_val(isl::space space, isl::val_list list)
+{
+ auto res = isl_multi_val_from_val_list(space.release(), list.release());
+ ptr = res;
+}
+
+multi_val::multi_val(isl::ctx ctx, const std::string &str)
+{
+ auto res = isl_multi_val_read_from_str(ctx.release(), str.c_str());
+ ptr = res;
+}
+
+multi_val &multi_val::operator=(multi_val obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
+}
+
+multi_val::~multi_val() {
+ if (ptr)
+ isl_multi_val_free(ptr);
+}
+
+__isl_give isl_multi_val *multi_val::copy() const & {
+ return isl_multi_val_copy(ptr);
+}
+
+__isl_keep isl_multi_val *multi_val::get() const {
+ return ptr;
+}
+
+__isl_give isl_multi_val *multi_val::release() {
+ isl_multi_val *tmp = ptr;
+ ptr = nullptr;
+ return tmp;
}
-isl::union_pw_aff_list multi_union_pw_aff::get_list() const
-{
- auto res = isl_multi_union_pw_aff_get_list(get());
- return manage(res);
+bool multi_val::is_null() const {
+ return ptr == nullptr;
}
-isl::space multi_union_pw_aff::get_space() const
-{
- auto res = isl_multi_union_pw_aff_get_space(get());
- return manage(res);
+isl::ctx multi_val::ctx() const {
+ return isl::ctx(isl_multi_val_get_ctx(ptr));
}
-isl::id multi_union_pw_aff::get_tuple_id(isl::dim type) const
+isl::multi_val multi_val::add(isl::multi_val multi2) const
{
- auto res = isl_multi_union_pw_aff_get_tuple_id(get(), static_cast<enum isl_dim_type>(type));
+ auto res = isl_multi_val_add(copy(), multi2.release());
return manage(res);
}
-std::string multi_union_pw_aff::get_tuple_name(isl::dim type) const
-{
- auto res = isl_multi_union_pw_aff_get_tuple_name(get(), static_cast<enum isl_dim_type>(type));
- std::string tmp(res);
- return tmp;
-}
-
-isl::union_pw_aff multi_union_pw_aff::get_union_pw_aff(int pos) const
+isl::multi_val multi_val::add(isl::val v) const
{
- auto res = isl_multi_union_pw_aff_get_union_pw_aff(get(), pos);
+ auto res = isl_multi_val_add_val(copy(), v.release());
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::gist(isl::union_set context) const
+isl::multi_val multi_val::add(long v) const
{
- auto res = isl_multi_union_pw_aff_gist(copy(), context.release());
- return manage(res);
+ return this->add(isl::val(ctx(), v));
}
-isl::multi_union_pw_aff multi_union_pw_aff::gist_params(isl::set context) const
+isl::val multi_val::at(int pos) const
{
- auto res = isl_multi_union_pw_aff_gist_params(copy(), context.release());
+ auto res = isl_multi_val_get_at(get(), pos);
return manage(res);
}
-boolean multi_union_pw_aff::has_tuple_id(isl::dim type) const
+isl::val multi_val::get_at(int pos) const
{
- auto res = isl_multi_union_pw_aff_has_tuple_id(get(), static_cast<enum isl_dim_type>(type));
- return manage(res);
+ return at(pos);
}
-isl::multi_union_pw_aff multi_union_pw_aff::intersect_domain(isl::union_set uset) const
+class size multi_val::dim(isl::dim type) const
{
- auto res = isl_multi_union_pw_aff_intersect_domain(copy(), uset.release());
+ auto res = isl_multi_val_dim(get(), static_cast<enum isl_dim_type>(type));
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::intersect_params(isl::set params) const
+isl::multi_val multi_val::flat_range_product(isl::multi_val multi2) const
{
- auto res = isl_multi_union_pw_aff_intersect_params(copy(), params.release());
+ auto res = isl_multi_val_flat_range_product(copy(), multi2.release());
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::intersect_range(isl::set set) const
+boolean multi_val::has_range_tuple_id() const
{
- auto res = isl_multi_union_pw_aff_intersect_range(copy(), set.release());
+ auto res = isl_multi_val_has_range_tuple_id(get());
return manage(res);
}
-boolean multi_union_pw_aff::involves_nan() const
+boolean multi_val::involves_nan() const
{
- auto res = isl_multi_union_pw_aff_involves_nan(get());
+ auto res = isl_multi_val_involves_nan(get());
return manage(res);
}
-isl::multi_val multi_union_pw_aff::max_multi_val() const
+isl::val_list multi_val::list() const
{
- auto res = isl_multi_union_pw_aff_max_multi_val(copy());
+ auto res = isl_multi_val_get_list(get());
return manage(res);
}
-isl::multi_val multi_union_pw_aff::min_multi_val() const
+isl::val_list multi_val::get_list() const
{
- auto res = isl_multi_union_pw_aff_min_multi_val(copy());
- return manage(res);
+ return list();
}
-isl::multi_union_pw_aff multi_union_pw_aff::mod_multi_val(isl::multi_val mv) const
+isl::multi_val multi_val::max(isl::multi_val multi2) const
{
- auto res = isl_multi_union_pw_aff_mod_multi_val(copy(), mv.release());
+ auto res = isl_multi_val_max(copy(), multi2.release());
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::multi_aff_on_domain(isl::union_set domain, isl::multi_aff ma)
+isl::multi_val multi_val::min(isl::multi_val multi2) const
{
- auto res = isl_multi_union_pw_aff_multi_aff_on_domain(domain.release(), ma.release());
+ auto res = isl_multi_val_min(copy(), multi2.release());
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::multi_val_on_domain(isl::union_set domain, isl::multi_val mv)
+isl::multi_val multi_val::neg() const
{
- auto res = isl_multi_union_pw_aff_multi_val_on_domain(domain.release(), mv.release());
+ auto res = isl_multi_val_neg(copy());
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::neg() const
+boolean multi_val::plain_is_equal(const isl::multi_val &multi2) const
{
- auto res = isl_multi_union_pw_aff_neg(copy());
+ auto res = isl_multi_val_plain_is_equal(get(), multi2.get());
return manage(res);
}
-boolean multi_union_pw_aff::plain_is_equal(const isl::multi_union_pw_aff &multi2) const
+isl::multi_val multi_val::product(isl::multi_val multi2) const
{
- auto res = isl_multi_union_pw_aff_plain_is_equal(get(), multi2.get());
+ auto res = isl_multi_val_product(copy(), multi2.release());
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::pullback(isl::union_pw_multi_aff upma) const
+isl::multi_val multi_val::range_product(isl::multi_val multi2) const
{
- auto res = isl_multi_union_pw_aff_pullback_union_pw_multi_aff(copy(), upma.release());
+ auto res = isl_multi_val_range_product(copy(), multi2.release());
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::pw_multi_aff_on_domain(isl::union_set domain, isl::pw_multi_aff pma)
+isl::id multi_val::range_tuple_id() const
{
- auto res = isl_multi_union_pw_aff_pw_multi_aff_on_domain(domain.release(), pma.release());
+ auto res = isl_multi_val_get_range_tuple_id(get());
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::range_factor_domain() const
+isl::id multi_val::get_range_tuple_id() const
{
- auto res = isl_multi_union_pw_aff_range_factor_domain(copy());
- return manage(res);
+ return range_tuple_id();
}
-isl::multi_union_pw_aff multi_union_pw_aff::range_factor_range() const
+isl::multi_val multi_val::reset_range_tuple_id() const
{
- auto res = isl_multi_union_pw_aff_range_factor_range(copy());
+ auto res = isl_multi_val_reset_range_tuple_id(copy());
return manage(res);
}
-boolean multi_union_pw_aff::range_is_wrapping() const
+isl::multi_val multi_val::reset_tuple_id(isl::dim type) const
{
- auto res = isl_multi_union_pw_aff_range_is_wrapping(get());
+ auto res = isl_multi_val_reset_tuple_id(copy(), static_cast<enum isl_dim_type>(type));
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::range_product(isl::multi_union_pw_aff multi2) const
+isl::multi_val multi_val::scale(isl::multi_val mv) const
{
- auto res = isl_multi_union_pw_aff_range_product(copy(), multi2.release());
+ auto res = isl_multi_val_scale_multi_val(copy(), mv.release());
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::range_splice(unsigned int pos, isl::multi_union_pw_aff multi2) const
+isl::multi_val multi_val::scale(isl::val v) const
{
- auto res = isl_multi_union_pw_aff_range_splice(copy(), pos, multi2.release());
+ auto res = isl_multi_val_scale_val(copy(), v.release());
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::reset_tuple_id(isl::dim type) const
+isl::multi_val multi_val::scale(long v) const
{
- auto res = isl_multi_union_pw_aff_reset_tuple_id(copy(), static_cast<enum isl_dim_type>(type));
- return manage(res);
+ return this->scale(isl::val(ctx(), v));
}
-isl::multi_union_pw_aff multi_union_pw_aff::reset_user() const
+isl::multi_val multi_val::scale_down(isl::multi_val mv) const
{
- auto res = isl_multi_union_pw_aff_reset_user(copy());
+ auto res = isl_multi_val_scale_down_multi_val(copy(), mv.release());
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::scale(isl::multi_val mv) const
+isl::multi_val multi_val::scale_down(isl::val v) const
{
- auto res = isl_multi_union_pw_aff_scale_multi_val(copy(), mv.release());
+ auto res = isl_multi_val_scale_down_val(copy(), v.release());
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::scale(isl::val v) const
+isl::multi_val multi_val::scale_down(long v) const
{
- auto res = isl_multi_union_pw_aff_scale_val(copy(), v.release());
- return manage(res);
+ return this->scale_down(isl::val(ctx(), v));
}
-isl::multi_union_pw_aff multi_union_pw_aff::scale_down(isl::multi_val mv) const
+isl::multi_val multi_val::set_at(int pos, isl::val el) const
{
- auto res = isl_multi_union_pw_aff_scale_down_multi_val(copy(), mv.release());
+ auto res = isl_multi_val_set_at(copy(), pos, el.release());
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::scale_down(isl::val v) const
+isl::multi_val multi_val::set_at(int pos, long el) const
{
- auto res = isl_multi_union_pw_aff_scale_down_val(copy(), v.release());
- return manage(res);
+ return this->set_at(pos, isl::val(ctx(), el));
}
-isl::multi_union_pw_aff multi_union_pw_aff::set_at(int pos, isl::union_pw_aff el) const
+isl::multi_val multi_val::set_range_tuple(isl::id id) const
{
- auto res = isl_multi_union_pw_aff_set_at(copy(), pos, el.release());
+ auto res = isl_multi_val_set_range_tuple_id(copy(), id.release());
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::set_dim_id(isl::dim type, unsigned int pos, isl::id id) const
+isl::multi_val multi_val::set_range_tuple(const std::string &id) const
{
- auto res = isl_multi_union_pw_aff_set_dim_id(copy(), static_cast<enum isl_dim_type>(type), pos, id.release());
- return manage(res);
+ return this->set_range_tuple(isl::id(ctx(), id));
}
-isl::multi_union_pw_aff multi_union_pw_aff::set_tuple_id(isl::dim type, isl::id id) const
+isl::multi_val multi_val::set_val(int pos, isl::val el) const
{
- auto res = isl_multi_union_pw_aff_set_tuple_id(copy(), static_cast<enum isl_dim_type>(type), id.release());
+ auto res = isl_multi_val_set_val(copy(), pos, el.release());
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::set_tuple_name(isl::dim type, const std::string &s) const
+isl::multi_val multi_val::set_val(int pos, long el) const
{
- auto res = isl_multi_union_pw_aff_set_tuple_name(copy(), static_cast<enum isl_dim_type>(type), s.c_str());
- return manage(res);
+ return this->set_val(pos, isl::val(ctx(), el));
}
-isl::multi_union_pw_aff multi_union_pw_aff::set_union_pw_aff(int pos, isl::union_pw_aff el) const
+class size multi_val::size() const
{
- auto res = isl_multi_union_pw_aff_set_union_pw_aff(copy(), pos, el.release());
+ auto res = isl_multi_val_size(get());
return manage(res);
}
-isl_size multi_union_pw_aff::size() const
+isl::space multi_val::space() const
{
- auto res = isl_multi_union_pw_aff_size(get());
- return res;
+ auto res = isl_multi_val_get_space(get());
+ return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::sub(isl::multi_union_pw_aff multi2) const
+isl::space multi_val::get_space() const
{
- auto res = isl_multi_union_pw_aff_sub(copy(), multi2.release());
- return manage(res);
+ return space();
}
-isl::multi_union_pw_aff multi_union_pw_aff::union_add(isl::multi_union_pw_aff mupa2) const
+isl::multi_val multi_val::sub(isl::multi_val multi2) const
{
- auto res = isl_multi_union_pw_aff_union_add(copy(), mupa2.release());
+ auto res = isl_multi_val_sub(copy(), multi2.release());
return manage(res);
}
-isl::multi_union_pw_aff multi_union_pw_aff::zero(isl::space space)
+isl::multi_val multi_val::zero(isl::space space)
{
- auto res = isl_multi_union_pw_aff_zero(space.release());
+ auto res = isl_multi_val_zero(space.release());
return manage(res);
}
-isl::union_set multi_union_pw_aff::zero_union_set() const
+inline std::ostream &operator<<(std::ostream &os, const multi_val &obj)
{
- auto res = isl_multi_union_pw_aff_zero_union_set(copy());
- return manage(res);
+ char *str = isl_multi_val_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-// implementations for isl::multi_val
-multi_val manage(__isl_take isl_multi_val *ptr) {
- return multi_val(ptr);
+// implementations for isl::point
+point manage(__isl_take isl_point *ptr) {
+ return point(ptr);
}
-multi_val manage_copy(__isl_keep isl_multi_val *ptr) {
- ptr = isl_multi_val_copy(ptr);
- return multi_val(ptr);
+point manage_copy(__isl_keep isl_point *ptr) {
+ ptr = isl_point_copy(ptr);
+ return point(ptr);
}
-multi_val::multi_val()
+point::point()
: ptr(nullptr) {}
-multi_val::multi_val(const multi_val &obj)
+point::point(const point &obj)
: ptr(nullptr)
{
ptr = obj.copy();
}
-
-multi_val::multi_val(__isl_take isl_multi_val *ptr)
+point::point(__isl_take isl_point *ptr)
: ptr(ptr) {}
-multi_val::multi_val(isl::space space, isl::val_list list)
-{
- auto res = isl_multi_val_from_val_list(space.release(), list.release());
- ptr = res;
-}
-multi_val::multi_val(isl::ctx ctx, const std::string &str)
+point::point(isl::space space)
{
- auto res = isl_multi_val_read_from_str(ctx.release(), str.c_str());
+ auto res = isl_point_zero(space.release());
ptr = res;
}
-multi_val &multi_val::operator=(multi_val obj) {
+point &point::operator=(point obj) {
std::swap(this->ptr, obj.ptr);
return *this;
}
-multi_val::~multi_val() {
+point::~point() {
if (ptr)
- isl_multi_val_free(ptr);
+ isl_point_free(ptr);
}
-__isl_give isl_multi_val *multi_val::copy() const & {
- return isl_multi_val_copy(ptr);
+__isl_give isl_point *point::copy() const & {
+ return isl_point_copy(ptr);
}
-__isl_keep isl_multi_val *multi_val::get() const {
+__isl_keep isl_point *point::get() const {
return ptr;
}
-__isl_give isl_multi_val *multi_val::release() {
- isl_multi_val *tmp = ptr;
+__isl_give isl_point *point::release() {
+ isl_point *tmp = ptr;
ptr = nullptr;
return tmp;
}
-bool multi_val::is_null() const {
+bool point::is_null() const {
return ptr == nullptr;
}
+isl::ctx point::ctx() const {
+ return isl::ctx(isl_point_get_ctx(ptr));
+}
-isl::ctx multi_val::ctx() const {
- return isl::ctx(isl_multi_val_get_ctx(ptr));
+isl::set point::add_constraint(const isl::constraint &constraint) const
+{
+ return isl::basic_set(*this).add_constraint(constraint);
}
-void multi_val::dump() const {
- isl_multi_val_dump(get());
+isl::set point::add_dims(isl::dim type, unsigned int n) const
+{
+ return isl::basic_set(*this).add_dims(type, n);
}
+isl::basic_set point::affine_hull() const
+{
+ return isl::basic_set(*this).affine_hull();
+}
-isl::multi_val multi_val::add(isl::multi_val multi2) const
+isl::set point::align_params(const isl::space &model) const
{
- auto res = isl_multi_val_add(copy(), multi2.release());
- return manage(res);
+ return isl::basic_set(*this).align_params(model);
}
-isl::multi_val multi_val::add(isl::val v) const
+isl::basic_set point::apply(const isl::basic_map &bmap) const
{
- auto res = isl_multi_val_add_val(copy(), v.release());
- return manage(res);
+ return isl::basic_set(*this).apply(bmap);
}
-isl::multi_val multi_val::add_dims(isl::dim type, unsigned int n) const
+isl::set point::apply(const isl::map &map) const
{
- auto res = isl_multi_val_add_dims(copy(), static_cast<enum isl_dim_type>(type), n);
- return manage(res);
+ return isl::basic_set(*this).apply(map);
}
-isl::multi_val multi_val::align_params(isl::space model) const
+isl::union_set point::apply(const isl::union_map &umap) const
{
- auto res = isl_multi_val_align_params(copy(), model.release());
- return manage(res);
+ return isl::basic_set(*this).apply(umap);
}
-isl_size multi_val::dim(isl::dim type) const
+isl::pw_multi_aff point::as_pw_multi_aff() const
{
- auto res = isl_multi_val_dim(get(), static_cast<enum isl_dim_type>(type));
- return res;
+ return isl::basic_set(*this).as_pw_multi_aff();
}
-isl::multi_val multi_val::drop_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::set point::as_set() const
{
- auto res = isl_multi_val_drop_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::basic_set(*this).as_set();
}
-isl::multi_val multi_val::factor_range() const
+isl::basic_set_list point::basic_set_list() const
{
- auto res = isl_multi_val_factor_range(copy());
- return manage(res);
+ return isl::basic_set(*this).basic_set_list();
}
-int multi_val::find_dim_by_id(isl::dim type, const isl::id &id) const
+isl::set point::bind(const isl::multi_id &tuple) const
{
- auto res = isl_multi_val_find_dim_by_id(get(), static_cast<enum isl_dim_type>(type), id.get());
- return res;
+ return isl::basic_set(*this).bind(tuple);
}
-int multi_val::find_dim_by_name(isl::dim type, const std::string &name) const
+isl::set point::coalesce() const
{
- auto res = isl_multi_val_find_dim_by_name(get(), static_cast<enum isl_dim_type>(type), name.c_str());
- return res;
+ return isl::basic_set(*this).coalesce();
}
-isl::multi_val multi_val::flat_range_product(isl::multi_val multi2) const
+isl::set point::complement() const
{
- auto res = isl_multi_val_flat_range_product(copy(), multi2.release());
- return manage(res);
+ return isl::basic_set(*this).complement();
}
-isl::multi_val multi_val::flatten_range() const
+isl::union_set point::compute_divs() const
{
- auto res = isl_multi_val_flatten_range(copy());
- return manage(res);
+ return isl::basic_set(*this).compute_divs();
}
-isl::multi_val multi_val::from_range() const
+boolean point::contains(const isl::space &space) const
{
- auto res = isl_multi_val_from_range(copy());
- return manage(res);
+ return isl::basic_set(*this).contains(space);
}
-isl::val multi_val::get_at(int pos) const
+isl::basic_set point::convex_hull() const
{
- auto res = isl_multi_val_get_at(get(), pos);
- return manage(res);
+ return isl::basic_set(*this).convex_hull();
}
-isl::id multi_val::get_dim_id(isl::dim type, unsigned int pos) const
+isl::val point::coordinate_val(isl::dim type, int pos) const
{
- auto res = isl_multi_val_get_dim_id(get(), static_cast<enum isl_dim_type>(type), pos);
+ auto res = isl_point_get_coordinate_val(get(), static_cast<enum isl_dim_type>(type), pos);
return manage(res);
}
-isl::space multi_val::get_domain_space() const
+isl::val point::get_coordinate_val(isl::dim type, int pos) const
{
- auto res = isl_multi_val_get_domain_space(get());
- return manage(res);
+ return coordinate_val(type, pos);
}
-isl::val_list multi_val::get_list() const
+isl::basic_set point::detect_equalities() const
{
- auto res = isl_multi_val_get_list(get());
- return manage(res);
+ return isl::basic_set(*this).detect_equalities();
}
-isl::space multi_val::get_space() const
+class size point::dim(isl::dim type) const
{
- auto res = isl_multi_val_get_space(get());
- return manage(res);
+ return isl::basic_set(*this).dim(type);
}
-isl::id multi_val::get_tuple_id(isl::dim type) const
+boolean point::dim_has_any_lower_bound(isl::dim type, unsigned int pos) const
{
- auto res = isl_multi_val_get_tuple_id(get(), static_cast<enum isl_dim_type>(type));
- return manage(res);
+ return isl::basic_set(*this).dim_has_any_lower_bound(type, pos);
}
-std::string multi_val::get_tuple_name(isl::dim type) const
+isl::id point::dim_id(isl::dim type, unsigned int pos) const
{
- auto res = isl_multi_val_get_tuple_name(get(), static_cast<enum isl_dim_type>(type));
- std::string tmp(res);
- return tmp;
+ return isl::basic_set(*this).dim_id(type, pos);
}
-isl::val multi_val::get_val(int pos) const
+isl::pw_aff point::dim_max(int pos) const
{
- auto res = isl_multi_val_get_val(get(), pos);
- return manage(res);
+ return isl::basic_set(*this).dim_max(pos);
}
-boolean multi_val::has_tuple_id(isl::dim type) const
+isl::val point::dim_max_val(int pos) const
{
- auto res = isl_multi_val_has_tuple_id(get(), static_cast<enum isl_dim_type>(type));
- return manage(res);
+ return isl::basic_set(*this).dim_max_val(pos);
}
-isl::multi_val multi_val::insert_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::pw_aff point::dim_min(int pos) const
{
- auto res = isl_multi_val_insert_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::basic_set(*this).dim_min(pos);
}
-boolean multi_val::involves_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::val point::dim_min_val(int pos) const
{
- auto res = isl_multi_val_involves_dims(get(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::basic_set(*this).dim_min_val(pos);
}
-boolean multi_val::involves_nan() const
+std::string point::dim_name(isl::dim type, unsigned int pos) const
{
- auto res = isl_multi_val_involves_nan(get());
- return manage(res);
+ return isl::basic_set(*this).dim_name(type, pos);
}
-boolean multi_val::is_zero() const
+isl::aff point::div(int pos) const
{
- auto res = isl_multi_val_is_zero(get());
- return manage(res);
+ return isl::basic_set(*this).div(pos);
}
-isl::multi_val multi_val::max(isl::multi_val multi2) const
+isl::set point::drop_constraints_involving_dims(isl::dim type, unsigned int first, unsigned int n) const
{
- auto res = isl_multi_val_max(copy(), multi2.release());
- return manage(res);
+ return isl::basic_set(*this).drop_constraints_involving_dims(type, first, n);
}
-isl::multi_val multi_val::min(isl::multi_val multi2) const
+isl::set point::eliminate(isl::dim type, unsigned int first, unsigned int n) const
{
- auto res = isl_multi_val_min(copy(), multi2.release());
- return manage(res);
+ return isl::basic_set(*this).eliminate(type, first, n);
}
-isl::multi_val multi_val::mod_multi_val(isl::multi_val mv) const
+boolean point::every_set(const std::function<boolean(isl::set)> &test) const
{
- auto res = isl_multi_val_mod_multi_val(copy(), mv.release());
- return manage(res);
+ return isl::basic_set(*this).every_set(test);
}
-isl::multi_val multi_val::mod_val(isl::val v) const
+isl::set point::extract_set(const isl::space &space) const
{
- auto res = isl_multi_val_mod_val(copy(), v.release());
- return manage(res);
+ return isl::basic_set(*this).extract_set(space);
}
-isl::multi_val multi_val::neg() const
+int point::find_dim_by_id(isl::dim type, const isl::id &id) const
{
- auto res = isl_multi_val_neg(copy());
- return manage(res);
+ return isl::basic_set(*this).find_dim_by_id(type, id);
}
-boolean multi_val::plain_is_equal(const isl::multi_val &multi2) const
+int point::find_dim_by_id(isl::dim type, const std::string &id) const
{
- auto res = isl_multi_val_plain_is_equal(get(), multi2.get());
- return manage(res);
+ return this->find_dim_by_id(type, isl::id(ctx(), id));
}
-isl::multi_val multi_val::product(isl::multi_val multi2) const
+isl::basic_set point::fix_si(isl::dim type, unsigned int pos, int value) const
{
- auto res = isl_multi_val_product(copy(), multi2.release());
- return manage(res);
+ return isl::basic_set(*this).fix_si(type, pos, value);
+}
+
+isl::basic_set point::fix_val(isl::dim type, unsigned int pos, const isl::val &v) const
+{
+ return isl::basic_set(*this).fix_val(type, pos, v);
+}
+
+isl::basic_set point::fix_val(isl::dim type, unsigned int pos, long v) const
+{
+ return this->fix_val(type, pos, isl::val(ctx(), v));
+}
+
+isl::basic_set point::flatten() const
+{
+ return isl::basic_set(*this).flatten();
+}
+
+stat point::foreach_basic_set(const std::function<stat(isl::basic_set)> &fn) const
+{
+ return isl::basic_set(*this).foreach_basic_set(fn);
+}
+
+stat point::foreach_point(const std::function<stat(isl::point)> &fn) const
+{
+ return isl::basic_set(*this).foreach_point(fn);
+}
+
+stat point::foreach_set(const std::function<stat(isl::set)> &fn) const
+{
+ return isl::basic_set(*this).foreach_set(fn);
+}
+
+isl::basic_set point::gist(const isl::basic_set &context) const
+{
+ return isl::basic_set(*this).gist(context);
+}
+
+isl::set point::gist(const isl::set &context) const
+{
+ return isl::basic_set(*this).gist(context);
}
-isl::multi_val multi_val::project_domain_on_params() const
+isl::union_set point::gist(const isl::union_set &context) const
{
- auto res = isl_multi_val_project_domain_on_params(copy());
- return manage(res);
+ return isl::basic_set(*this).gist(context);
}
-isl::multi_val multi_val::range_factor_domain() const
+isl::set point::gist_params(const isl::set &context) const
{
- auto res = isl_multi_val_range_factor_domain(copy());
- return manage(res);
+ return isl::basic_set(*this).gist_params(context);
}
-isl::multi_val multi_val::range_factor_range() const
+boolean point::has_equal_space(const isl::set &set2) const
{
- auto res = isl_multi_val_range_factor_range(copy());
- return manage(res);
+ return isl::basic_set(*this).has_equal_space(set2);
}
-boolean multi_val::range_is_wrapping() const
+isl::map point::identity() const
{
- auto res = isl_multi_val_range_is_wrapping(get());
- return manage(res);
+ return isl::basic_set(*this).identity();
}
-isl::multi_val multi_val::range_product(isl::multi_val multi2) const
+isl::union_pw_multi_aff point::identity_union_pw_multi_aff() const
{
- auto res = isl_multi_val_range_product(copy(), multi2.release());
- return manage(res);
+ return isl::basic_set(*this).identity_union_pw_multi_aff();
}
-isl::multi_val multi_val::range_splice(unsigned int pos, isl::multi_val multi2) const
+isl::pw_aff point::indicator_function() const
{
- auto res = isl_multi_val_range_splice(copy(), pos, multi2.release());
- return manage(res);
+ return isl::basic_set(*this).indicator_function();
}
-isl::multi_val multi_val::reset_tuple_id(isl::dim type) const
+isl::set point::insert_dims(isl::dim type, unsigned int pos, unsigned int n) const
{
- auto res = isl_multi_val_reset_tuple_id(copy(), static_cast<enum isl_dim_type>(type));
- return manage(res);
+ return isl::basic_set(*this).insert_dims(type, pos, n);
}
-isl::multi_val multi_val::reset_user() const
+isl::map point::insert_domain(const isl::space &domain) const
{
- auto res = isl_multi_val_reset_user(copy());
- return manage(res);
+ return isl::basic_set(*this).insert_domain(domain);
}
-isl::multi_val multi_val::scale(isl::multi_val mv) const
+isl::basic_set point::intersect(const isl::basic_set &bset2) const
{
- auto res = isl_multi_val_scale_multi_val(copy(), mv.release());
- return manage(res);
+ return isl::basic_set(*this).intersect(bset2);
}
-isl::multi_val multi_val::scale(isl::val v) const
+isl::set point::intersect(const isl::set &set2) const
{
- auto res = isl_multi_val_scale_val(copy(), v.release());
- return manage(res);
+ return isl::basic_set(*this).intersect(set2);
}
-isl::multi_val multi_val::scale_down(isl::multi_val mv) const
+isl::union_set point::intersect(const isl::union_set &uset2) const
{
- auto res = isl_multi_val_scale_down_multi_val(copy(), mv.release());
- return manage(res);
+ return isl::basic_set(*this).intersect(uset2);
}
-isl::multi_val multi_val::scale_down(isl::val v) const
+isl::basic_set point::intersect_params(const isl::basic_set &bset2) const
{
- auto res = isl_multi_val_scale_down_val(copy(), v.release());
- return manage(res);
+ return isl::basic_set(*this).intersect_params(bset2);
}
-isl::multi_val multi_val::set_at(int pos, isl::val el) const
+isl::set point::intersect_params(const isl::set ¶ms) const
{
- auto res = isl_multi_val_set_at(copy(), pos, el.release());
- return manage(res);
+ return isl::basic_set(*this).intersect_params(params);
}
-isl::multi_val multi_val::set_dim_id(isl::dim type, unsigned int pos, isl::id id) const
+boolean point::involves_dims(isl::dim type, unsigned int first, unsigned int n) const
{
- auto res = isl_multi_val_set_dim_id(copy(), static_cast<enum isl_dim_type>(type), pos, id.release());
- return manage(res);
+ return isl::basic_set(*this).involves_dims(type, first, n);
}
-isl::multi_val multi_val::set_tuple_id(isl::dim type, isl::id id) const
+boolean point::involves_locals() const
{
- auto res = isl_multi_val_set_tuple_id(copy(), static_cast<enum isl_dim_type>(type), id.release());
- return manage(res);
+ return isl::basic_set(*this).involves_locals();
}
-isl::multi_val multi_val::set_tuple_name(isl::dim type, const std::string &s) const
+boolean point::is_bounded() const
{
- auto res = isl_multi_val_set_tuple_name(copy(), static_cast<enum isl_dim_type>(type), s.c_str());
- return manage(res);
+ return isl::basic_set(*this).is_bounded();
}
-isl::multi_val multi_val::set_val(int pos, isl::val el) const
+boolean point::is_disjoint(const isl::set &set2) const
{
- auto res = isl_multi_val_set_val(copy(), pos, el.release());
- return manage(res);
+ return isl::basic_set(*this).is_disjoint(set2);
}
-isl_size multi_val::size() const
+boolean point::is_disjoint(const isl::union_set &uset2) const
{
- auto res = isl_multi_val_size(get());
- return res;
+ return isl::basic_set(*this).is_disjoint(uset2);
}
-isl::multi_val multi_val::splice(unsigned int in_pos, unsigned int out_pos, isl::multi_val multi2) const
+boolean point::is_empty() const
{
- auto res = isl_multi_val_splice(copy(), in_pos, out_pos, multi2.release());
- return manage(res);
+ return isl::basic_set(*this).is_empty();
}
-isl::multi_val multi_val::sub(isl::multi_val multi2) const
+boolean point::is_equal(const isl::basic_set &bset2) const
{
- auto res = isl_multi_val_sub(copy(), multi2.release());
- return manage(res);
+ return isl::basic_set(*this).is_equal(bset2);
}
-isl::multi_val multi_val::zero(isl::space space)
+boolean point::is_equal(const isl::set &set2) const
{
- auto res = isl_multi_val_zero(space.release());
- return manage(res);
+ return isl::basic_set(*this).is_equal(set2);
}
-// implementations for isl::point
-point manage(__isl_take isl_point *ptr) {
- return point(ptr);
-}
-point manage_copy(__isl_keep isl_point *ptr) {
- ptr = isl_point_copy(ptr);
- return point(ptr);
+boolean point::is_equal(const isl::union_set &uset2) const
+{
+ return isl::basic_set(*this).is_equal(uset2);
}
-point::point()
- : ptr(nullptr) {}
-
-point::point(const point &obj)
- : ptr(nullptr)
+boolean point::is_params() const
{
- ptr = obj.copy();
+ return isl::basic_set(*this).is_params();
}
-
-point::point(__isl_take isl_point *ptr)
- : ptr(ptr) {}
-
-point::point(isl::space dim)
+boolean point::is_singleton() const
{
- auto res = isl_point_zero(dim.release());
- ptr = res;
+ return isl::basic_set(*this).is_singleton();
}
-point &point::operator=(point obj) {
- std::swap(this->ptr, obj.ptr);
- return *this;
+boolean point::is_strict_subset(const isl::set &set2) const
+{
+ return isl::basic_set(*this).is_strict_subset(set2);
}
-point::~point() {
- if (ptr)
- isl_point_free(ptr);
+boolean point::is_strict_subset(const isl::union_set &uset2) const
+{
+ return isl::basic_set(*this).is_strict_subset(uset2);
}
-__isl_give isl_point *point::copy() const & {
- return isl_point_copy(ptr);
+boolean point::is_subset(const isl::basic_set &bset2) const
+{
+ return isl::basic_set(*this).is_subset(bset2);
}
-__isl_keep isl_point *point::get() const {
- return ptr;
+boolean point::is_subset(const isl::set &set2) const
+{
+ return isl::basic_set(*this).is_subset(set2);
}
-__isl_give isl_point *point::release() {
- isl_point *tmp = ptr;
- ptr = nullptr;
- return tmp;
+boolean point::is_subset(const isl::union_set &uset2) const
+{
+ return isl::basic_set(*this).is_subset(uset2);
}
-bool point::is_null() const {
- return ptr == nullptr;
+boolean point::is_wrapping() const
+{
+ return isl::basic_set(*this).is_wrapping();
}
-
-isl::ctx point::ctx() const {
- return isl::ctx(isl_point_get_ctx(ptr));
+boolean point::isa_set() const
+{
+ return isl::basic_set(*this).isa_set();
}
-void point::dump() const {
- isl_point_dump(get());
+isl::set point::lexmax() const
+{
+ return isl::basic_set(*this).lexmax();
}
-
-isl::point point::add_ui(isl::dim type, int pos, unsigned int val) const
+isl::pw_multi_aff point::lexmax_pw_multi_aff() const
{
- auto res = isl_point_add_ui(copy(), static_cast<enum isl_dim_type>(type), pos, val);
- return manage(res);
+ return isl::basic_set(*this).lexmax_pw_multi_aff();
}
-isl::val point::get_coordinate_val(isl::dim type, int pos) const
+isl::set point::lexmin() const
{
- auto res = isl_point_get_coordinate_val(get(), static_cast<enum isl_dim_type>(type), pos);
- return manage(res);
+ return isl::basic_set(*this).lexmin();
}
-isl::multi_val point::get_multi_val() const
+isl::pw_multi_aff point::lexmin_pw_multi_aff() const
{
- auto res = isl_point_get_multi_val(get());
- return manage(res);
+ return isl::basic_set(*this).lexmin_pw_multi_aff();
}
-isl::space point::get_space() const
+isl::set point::lower_bound(const isl::multi_pw_aff &lower) const
{
- auto res = isl_point_get_space(get());
- return manage(res);
+ return isl::basic_set(*this).lower_bound(lower);
}
-isl::point point::set_coordinate_val(isl::dim type, int pos, isl::val v) const
+isl::set point::lower_bound(const isl::multi_val &lower) const
{
- auto res = isl_point_set_coordinate_val(copy(), static_cast<enum isl_dim_type>(type), pos, v.release());
- return manage(res);
+ return isl::basic_set(*this).lower_bound(lower);
}
-isl::point point::sub_ui(isl::dim type, int pos, unsigned int val) const
+isl::set point::lower_bound_si(isl::dim type, unsigned int pos, int value) const
{
- auto res = isl_point_sub_ui(copy(), static_cast<enum isl_dim_type>(type), pos, val);
- return manage(res);
+ return isl::basic_set(*this).lower_bound_si(type, pos, value);
}
-// implementations for isl::pw_aff
-pw_aff manage(__isl_take isl_pw_aff *ptr) {
- return pw_aff(ptr);
+isl::set point::lower_bound_val(isl::dim type, unsigned int pos, const isl::val &value) const
+{
+ return isl::basic_set(*this).lower_bound_val(type, pos, value);
}
-pw_aff manage_copy(__isl_keep isl_pw_aff *ptr) {
- ptr = isl_pw_aff_copy(ptr);
- return pw_aff(ptr);
+
+isl::set point::lower_bound_val(isl::dim type, unsigned int pos, long value) const
+{
+ return this->lower_bound_val(type, pos, isl::val(ctx(), value));
}
-pw_aff::pw_aff()
- : ptr(nullptr) {}
+isl::multi_pw_aff point::max_multi_pw_aff() const
+{
+ return isl::basic_set(*this).max_multi_pw_aff();
+}
-pw_aff::pw_aff(const pw_aff &obj)
- : ptr(nullptr)
+isl::val point::max_val(const isl::aff &obj) const
{
- ptr = obj.copy();
+ return isl::basic_set(*this).max_val(obj);
}
+isl::multi_pw_aff point::min_multi_pw_aff() const
+{
+ return isl::basic_set(*this).min_multi_pw_aff();
+}
-pw_aff::pw_aff(__isl_take isl_pw_aff *ptr)
- : ptr(ptr) {}
+isl::val point::min_val(const isl::aff &obj) const
+{
+ return isl::basic_set(*this).min_val(obj);
+}
-pw_aff::pw_aff(isl::aff aff)
+isl::multi_val point::multi_val() const
{
- auto res = isl_pw_aff_from_aff(aff.release());
- ptr = res;
+ auto res = isl_point_get_multi_val(get());
+ return manage(res);
}
-pw_aff::pw_aff(isl::ctx ctx, const std::string &str)
+
+isl::multi_val point::get_multi_val() const
{
- auto res = isl_pw_aff_read_from_str(ctx.release(), str.c_str());
- ptr = res;
+ return multi_val();
}
-pw_aff::pw_aff(isl::set domain, isl::val v)
+
+class size point::n_basic_set() const
{
- auto res = isl_pw_aff_val_on_domain(domain.release(), v.release());
- ptr = res;
+ return isl::basic_set(*this).n_basic_set();
}
-pw_aff::pw_aff(isl::local_space ls)
+
+isl::basic_set point::params() const
{
- auto res = isl_pw_aff_zero_on_domain(ls.release());
- ptr = res;
+ return isl::basic_set(*this).params();
}
-pw_aff &pw_aff::operator=(pw_aff obj) {
- std::swap(this->ptr, obj.ptr);
- return *this;
+isl::val point::plain_get_val_if_fixed(isl::dim type, unsigned int pos) const
+{
+ return isl::basic_set(*this).plain_get_val_if_fixed(type, pos);
}
-pw_aff::~pw_aff() {
- if (ptr)
- isl_pw_aff_free(ptr);
+isl::multi_val point::plain_multi_val_if_fixed() const
+{
+ return isl::basic_set(*this).plain_multi_val_if_fixed();
}
-__isl_give isl_pw_aff *pw_aff::copy() const & {
- return isl_pw_aff_copy(ptr);
+isl::basic_set point::polyhedral_hull() const
+{
+ return isl::basic_set(*this).polyhedral_hull();
}
-__isl_keep isl_pw_aff *pw_aff::get() const {
- return ptr;
+isl::set point::preimage(const isl::multi_aff &ma) const
+{
+ return isl::basic_set(*this).preimage(ma);
}
-__isl_give isl_pw_aff *pw_aff::release() {
- isl_pw_aff *tmp = ptr;
- ptr = nullptr;
- return tmp;
+isl::set point::preimage(const isl::multi_pw_aff &mpa) const
+{
+ return isl::basic_set(*this).preimage(mpa);
}
-bool pw_aff::is_null() const {
- return ptr == nullptr;
+isl::set point::preimage(const isl::pw_multi_aff &pma) const
+{
+ return isl::basic_set(*this).preimage(pma);
}
+isl::union_set point::preimage(const isl::union_pw_multi_aff &upma) const
+{
+ return isl::basic_set(*this).preimage(upma);
+}
-isl::ctx pw_aff::ctx() const {
- return isl::ctx(isl_pw_aff_get_ctx(ptr));
+isl::set point::product(const isl::set &set2) const
+{
+ return isl::basic_set(*this).product(set2);
}
-void pw_aff::dump() const {
- isl_pw_aff_dump(get());
+isl::basic_set point::project_out(isl::dim type, unsigned int first, unsigned int n) const
+{
+ return isl::basic_set(*this).project_out(type, first, n);
}
+isl::set point::project_out_all_params() const
+{
+ return isl::basic_set(*this).project_out_all_params();
+}
-isl::pw_aff pw_aff::add(isl::pw_aff pwaff2) const
+isl::set point::project_out_param(const isl::id &id) const
{
- auto res = isl_pw_aff_add(copy(), pwaff2.release());
- return manage(res);
+ return isl::basic_set(*this).project_out_param(id);
}
-isl::pw_aff pw_aff::add_constant(isl::val v) const
+isl::set point::project_out_param(const std::string &id) const
{
- auto res = isl_pw_aff_add_constant_val(copy(), v.release());
- return manage(res);
+ return this->project_out_param(isl::id(ctx(), id));
}
-isl::pw_aff pw_aff::add_dims(isl::dim type, unsigned int n) const
+isl::set point::project_out_param(const isl::id_list &list) const
{
- auto res = isl_pw_aff_add_dims(copy(), static_cast<enum isl_dim_type>(type), n);
- return manage(res);
+ return isl::basic_set(*this).project_out_param(list);
}
-isl::pw_aff pw_aff::align_params(isl::space model) const
+isl::pw_multi_aff point::pw_multi_aff_on_domain(const isl::multi_val &mv) const
{
- auto res = isl_pw_aff_align_params(copy(), model.release());
- return manage(res);
+ return isl::basic_set(*this).pw_multi_aff_on_domain(mv);
}
-isl::pw_aff pw_aff::alloc(isl::set set, isl::aff aff)
+isl::set point::remove_dims(isl::dim type, unsigned int first, unsigned int n) const
{
- auto res = isl_pw_aff_alloc(set.release(), aff.release());
- return manage(res);
+ return isl::basic_set(*this).remove_dims(type, first, n);
}
-isl::aff pw_aff::as_aff() const
+isl::set point::remove_divs() const
{
- auto res = isl_pw_aff_as_aff(copy());
- return manage(res);
+ return isl::basic_set(*this).remove_divs();
}
-isl::set pw_aff::bind(isl::id id) const
+isl::set point::remove_redundancies() const
{
- auto res = isl_pw_aff_bind_id(copy(), id.release());
- return manage(res);
+ return isl::basic_set(*this).remove_redundancies();
}
-isl::pw_aff pw_aff::bind_domain(isl::multi_id tuple) const
+isl::set point::reset_tuple_id() const
{
- auto res = isl_pw_aff_bind_domain(copy(), tuple.release());
- return manage(res);
+ return isl::basic_set(*this).reset_tuple_id();
}
-isl::pw_aff pw_aff::bind_domain_wrapped_domain(isl::multi_id tuple) const
+isl::basic_set point::sample() const
{
- auto res = isl_pw_aff_bind_domain_wrapped_domain(copy(), tuple.release());
- return manage(res);
+ return isl::basic_set(*this).sample();
}
-isl::pw_aff pw_aff::ceil() const
+isl::point point::sample_point() const
{
- auto res = isl_pw_aff_ceil(copy());
- return manage(res);
+ return isl::basic_set(*this).sample_point();
}
-isl::pw_aff pw_aff::coalesce() const
+isl::set point::set_dim_id(isl::dim type, unsigned int pos, const isl::id &id) const
{
- auto res = isl_pw_aff_coalesce(copy());
- return manage(res);
+ return isl::basic_set(*this).set_dim_id(type, pos, id);
}
-isl::pw_aff pw_aff::cond(isl::pw_aff pwaff_true, isl::pw_aff pwaff_false) const
+isl::set point::set_dim_id(isl::dim type, unsigned int pos, const std::string &id) const
{
- auto res = isl_pw_aff_cond(copy(), pwaff_true.release(), pwaff_false.release());
- return manage(res);
+ return this->set_dim_id(type, pos, isl::id(ctx(), id));
}
-isl_size pw_aff::dim(isl::dim type) const
+isl::set_list point::set_list() const
{
- auto res = isl_pw_aff_dim(get(), static_cast<enum isl_dim_type>(type));
- return res;
+ return isl::basic_set(*this).set_list();
}
-isl::pw_aff pw_aff::div(isl::pw_aff pa2) const
+isl::set point::set_tuple_id(const isl::id &id) const
{
- auto res = isl_pw_aff_div(copy(), pa2.release());
- return manage(res);
+ return isl::basic_set(*this).set_tuple_id(id);
}
-isl::set pw_aff::domain() const
+isl::set point::set_tuple_id(const std::string &id) const
{
- auto res = isl_pw_aff_domain(copy());
- return manage(res);
+ return this->set_tuple_id(isl::id(ctx(), id));
}
-isl::pw_aff pw_aff::drop_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::fixed_box point::simple_fixed_box_hull() const
{
- auto res = isl_pw_aff_drop_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::basic_set(*this).simple_fixed_box_hull();
}
-isl::pw_aff pw_aff::drop_unused_params() const
+isl::basic_set point::simple_hull() const
{
- auto res = isl_pw_aff_drop_unused_params(copy());
- return manage(res);
+ return isl::basic_set(*this).simple_hull();
}
-isl::pw_aff pw_aff::empty(isl::space space)
+isl::space point::space() const
{
- auto res = isl_pw_aff_empty(space.release());
- return manage(res);
+ return isl::basic_set(*this).space();
}
-isl::map pw_aff::eq_map(isl::pw_aff pa2) const
+isl::val point::stride(int pos) const
{
- auto res = isl_pw_aff_eq_map(copy(), pa2.release());
- return manage(res);
+ return isl::basic_set(*this).stride(pos);
}
-isl::set pw_aff::eq_set(isl::pw_aff pwaff2) const
+isl::set point::subtract(const isl::set &set2) const
{
- auto res = isl_pw_aff_eq_set(copy(), pwaff2.release());
- return manage(res);
+ return isl::basic_set(*this).subtract(set2);
}
-isl::val pw_aff::eval(isl::point pnt) const
+isl::union_set point::subtract(const isl::union_set &uset2) const
{
- auto res = isl_pw_aff_eval(copy(), pnt.release());
- return manage(res);
+ return isl::basic_set(*this).subtract(uset2);
}
-int pw_aff::find_dim_by_name(isl::dim type, const std::string &name) const
+isl::basic_set_list point::to_list() const
{
- auto res = isl_pw_aff_find_dim_by_name(get(), static_cast<enum isl_dim_type>(type), name.c_str());
- return res;
+ return isl::basic_set(*this).to_list();
}
-isl::pw_aff pw_aff::floor() const
+isl::set point::to_set() const
{
- auto res = isl_pw_aff_floor(copy());
+ auto res = isl_point_to_set(copy());
return manage(res);
}
-stat pw_aff::foreach_piece(const std::function<stat(set, aff)> &fn) const
+isl::union_set point::to_union_set() const
{
- struct fn_data {
- const std::function<stat(set, aff)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_set *arg_0, isl_aff *arg_1, void *arg_2) -> isl_stat {
- auto *data = static_cast<struct fn_data *>(arg_2);
- stat ret = (*data->func)(manage(arg_0), manage(arg_1));
- return ret.release();
- };
- auto res = isl_pw_aff_foreach_piece(get(), fn_lambda, &fn_data);
- return manage(res);
+ return isl::basic_set(*this).to_union_set();
}
-isl::pw_aff pw_aff::from_range() const
+isl::map point::translation() const
{
- auto res = isl_pw_aff_from_range(copy());
- return manage(res);
+ return isl::basic_set(*this).translation();
}
-isl::map pw_aff::ge_map(isl::pw_aff pa2) const
+class size point::tuple_dim() const
{
- auto res = isl_pw_aff_ge_map(copy(), pa2.release());
- return manage(res);
+ return isl::basic_set(*this).tuple_dim();
}
-isl::set pw_aff::ge_set(isl::pw_aff pwaff2) const
+isl::id point::tuple_id() const
{
- auto res = isl_pw_aff_ge_set(copy(), pwaff2.release());
- return manage(res);
+ return isl::basic_set(*this).tuple_id();
}
-isl::id pw_aff::get_dim_id(isl::dim type, unsigned int pos) const
+std::string point::tuple_name() const
{
- auto res = isl_pw_aff_get_dim_id(get(), static_cast<enum isl_dim_type>(type), pos);
- return manage(res);
+ return isl::basic_set(*this).tuple_name();
}
-std::string pw_aff::get_dim_name(isl::dim type, unsigned int pos) const
+isl::set point::unbind_params(const isl::multi_id &tuple) const
{
- auto res = isl_pw_aff_get_dim_name(get(), static_cast<enum isl_dim_type>(type), pos);
- std::string tmp(res);
- return tmp;
+ return isl::basic_set(*this).unbind_params(tuple);
}
-isl::space pw_aff::get_domain_space() const
+isl::map point::unbind_params_insert_domain(const isl::multi_id &domain) const
{
- auto res = isl_pw_aff_get_domain_space(get());
- return manage(res);
+ return isl::basic_set(*this).unbind_params_insert_domain(domain);
}
-uint32_t pw_aff::get_hash() const
+isl::set point::unite(const isl::basic_set &bset2) const
{
- auto res = isl_pw_aff_get_hash(get());
- return res;
+ return isl::basic_set(*this).unite(bset2);
}
-isl::space pw_aff::get_space() const
+isl::set point::unite(const isl::set &set2) const
{
- auto res = isl_pw_aff_get_space(get());
- return manage(res);
+ return isl::basic_set(*this).unite(set2);
}
-isl::id pw_aff::get_tuple_id(isl::dim type) const
+isl::union_set point::unite(const isl::union_set &uset2) const
{
- auto res = isl_pw_aff_get_tuple_id(get(), static_cast<enum isl_dim_type>(type));
- return manage(res);
+ return isl::basic_set(*this).unite(uset2);
}
-isl::pw_aff pw_aff::gist(isl::set context) const
+isl::basic_set point::unshifted_simple_hull() const
{
- auto res = isl_pw_aff_gist(copy(), context.release());
- return manage(res);
+ return isl::basic_set(*this).unshifted_simple_hull();
}
-isl::pw_aff pw_aff::gist_params(isl::set context) const
+isl::map point::unwrap() const
{
- auto res = isl_pw_aff_gist_params(copy(), context.release());
- return manage(res);
+ return isl::basic_set(*this).unwrap();
}
-isl::map pw_aff::gt_map(isl::pw_aff pa2) const
+isl::set point::upper_bound(const isl::multi_pw_aff &upper) const
{
- auto res = isl_pw_aff_gt_map(copy(), pa2.release());
- return manage(res);
+ return isl::basic_set(*this).upper_bound(upper);
}
-isl::set pw_aff::gt_set(isl::pw_aff pwaff2) const
+isl::set point::upper_bound(const isl::multi_val &upper) const
{
- auto res = isl_pw_aff_gt_set(copy(), pwaff2.release());
- return manage(res);
+ return isl::basic_set(*this).upper_bound(upper);
}
-boolean pw_aff::has_dim_id(isl::dim type, unsigned int pos) const
+isl::set point::upper_bound_val(isl::dim type, unsigned int pos, const isl::val &value) const
{
- auto res = isl_pw_aff_has_dim_id(get(), static_cast<enum isl_dim_type>(type), pos);
- return manage(res);
+ return isl::basic_set(*this).upper_bound_val(type, pos, value);
}
-boolean pw_aff::has_tuple_id(isl::dim type) const
+isl::set point::upper_bound_val(isl::dim type, unsigned int pos, long value) const
{
- auto res = isl_pw_aff_has_tuple_id(get(), static_cast<enum isl_dim_type>(type));
- return manage(res);
+ return this->upper_bound_val(type, pos, isl::val(ctx(), value));
}
-isl::pw_aff pw_aff::insert_dims(isl::dim type, unsigned int first, unsigned int n) const
+inline std::ostream &operator<<(std::ostream &os, const point &obj)
{
- auto res = isl_pw_aff_insert_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ char *str = isl_point_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::pw_aff pw_aff::insert_domain(isl::space domain) const
-{
- auto res = isl_pw_aff_insert_domain(copy(), domain.release());
- return manage(res);
+// implementations for isl::pw_aff
+pw_aff manage(__isl_take isl_pw_aff *ptr) {
+ return pw_aff(ptr);
+}
+pw_aff manage_copy(__isl_keep isl_pw_aff *ptr) {
+ ptr = isl_pw_aff_copy(ptr);
+ return pw_aff(ptr);
}
-isl::pw_aff pw_aff::intersect_domain(isl::set set) const
+pw_aff::pw_aff()
+ : ptr(nullptr) {}
+
+pw_aff::pw_aff(const pw_aff &obj)
+ : ptr(nullptr)
{
- auto res = isl_pw_aff_intersect_domain(copy(), set.release());
- return manage(res);
+ ptr = obj.copy();
}
-isl::pw_aff pw_aff::intersect_domain_wrapped_domain(isl::set set) const
+pw_aff::pw_aff(__isl_take isl_pw_aff *ptr)
+ : ptr(ptr) {}
+
+pw_aff::pw_aff(isl::aff aff)
{
- auto res = isl_pw_aff_intersect_domain_wrapped_domain(copy(), set.release());
- return manage(res);
+ auto res = isl_pw_aff_from_aff(aff.release());
+ ptr = res;
}
-isl::pw_aff pw_aff::intersect_domain_wrapped_range(isl::set set) const
+pw_aff::pw_aff(isl::ctx ctx, const std::string &str)
{
- auto res = isl_pw_aff_intersect_domain_wrapped_range(copy(), set.release());
- return manage(res);
+ auto res = isl_pw_aff_read_from_str(ctx.release(), str.c_str());
+ ptr = res;
}
-isl::pw_aff pw_aff::intersect_params(isl::set set) const
+pw_aff::pw_aff(isl::set domain, isl::val v)
{
- auto res = isl_pw_aff_intersect_params(copy(), set.release());
- return manage(res);
+ auto res = isl_pw_aff_val_on_domain(domain.release(), v.release());
+ ptr = res;
}
-boolean pw_aff::involves_dims(isl::dim type, unsigned int first, unsigned int n) const
+pw_aff::pw_aff(isl::local_space ls)
{
- auto res = isl_pw_aff_involves_dims(get(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ auto res = isl_pw_aff_zero_on_domain(ls.release());
+ ptr = res;
}
-boolean pw_aff::involves_nan() const
-{
- auto res = isl_pw_aff_involves_nan(get());
- return manage(res);
+pw_aff &pw_aff::operator=(pw_aff obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-boolean pw_aff::involves_param_id(const isl::id &id) const
-{
- auto res = isl_pw_aff_involves_param_id(get(), id.get());
- return manage(res);
+pw_aff::~pw_aff() {
+ if (ptr)
+ isl_pw_aff_free(ptr);
}
-boolean pw_aff::is_cst() const
-{
- auto res = isl_pw_aff_is_cst(get());
- return manage(res);
+__isl_give isl_pw_aff *pw_aff::copy() const & {
+ return isl_pw_aff_copy(ptr);
}
-boolean pw_aff::is_empty() const
-{
- auto res = isl_pw_aff_is_empty(get());
- return manage(res);
+__isl_keep isl_pw_aff *pw_aff::get() const {
+ return ptr;
}
-boolean pw_aff::is_equal(const isl::pw_aff &pa2) const
-{
- auto res = isl_pw_aff_is_equal(get(), pa2.get());
- return manage(res);
+__isl_give isl_pw_aff *pw_aff::release() {
+ isl_pw_aff *tmp = ptr;
+ ptr = nullptr;
+ return tmp;
}
-boolean pw_aff::isa_aff() const
-{
- auto res = isl_pw_aff_isa_aff(get());
- return manage(res);
+bool pw_aff::is_null() const {
+ return ptr == nullptr;
}
-isl::map pw_aff::le_map(isl::pw_aff pa2) const
-{
- auto res = isl_pw_aff_le_map(copy(), pa2.release());
- return manage(res);
+isl::ctx pw_aff::ctx() const {
+ return isl::ctx(isl_pw_aff_get_ctx(ptr));
}
-isl::set pw_aff::le_set(isl::pw_aff pwaff2) const
+isl::multi_pw_aff pw_aff::add(const isl::multi_pw_aff &multi2) const
{
- auto res = isl_pw_aff_le_set(copy(), pwaff2.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).add(multi2);
}
-isl::map pw_aff::lt_map(isl::pw_aff pa2) const
+isl::multi_union_pw_aff pw_aff::add(const isl::multi_union_pw_aff &multi2) const
{
- auto res = isl_pw_aff_lt_map(copy(), pa2.release());
- return manage(res);
+ return isl::union_pw_aff(*this).add(multi2);
}
-isl::set pw_aff::lt_set(isl::pw_aff pwaff2) const
+isl::pw_aff pw_aff::add(isl::pw_aff pwaff2) const
{
- auto res = isl_pw_aff_lt_set(copy(), pwaff2.release());
+ auto res = isl_pw_aff_add(copy(), pwaff2.release());
return manage(res);
}
-isl::pw_aff pw_aff::max(isl::pw_aff pwaff2) const
+isl::pw_multi_aff pw_aff::add(const isl::pw_multi_aff &pma2) const
{
- auto res = isl_pw_aff_max(copy(), pwaff2.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).add(pma2);
}
-isl::pw_aff pw_aff::min(isl::pw_aff pwaff2) const
+isl::union_pw_aff pw_aff::add(const isl::union_pw_aff &upa2) const
{
- auto res = isl_pw_aff_min(copy(), pwaff2.release());
- return manage(res);
+ return isl::union_pw_aff(*this).add(upa2);
}
-isl::pw_aff pw_aff::mod(isl::val mod) const
+isl::union_pw_multi_aff pw_aff::add(const isl::union_pw_multi_aff &upma2) const
{
- auto res = isl_pw_aff_mod_val(copy(), mod.release());
- return manage(res);
+ return isl::union_pw_aff(*this).add(upma2);
}
-isl::pw_aff pw_aff::move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const
+isl::pw_aff pw_aff::add(const isl::aff &pwaff2) const
{
- auto res = isl_pw_aff_move_dims(copy(), static_cast<enum isl_dim_type>(dst_type), dst_pos, static_cast<enum isl_dim_type>(src_type), src_pos, n);
- return manage(res);
+ return this->add(isl::pw_aff(pwaff2));
}
-isl::pw_aff pw_aff::mul(isl::pw_aff pwaff2) const
+isl::pw_aff pw_aff::add_constant(isl::val v) const
{
- auto res = isl_pw_aff_mul(copy(), pwaff2.release());
+ auto res = isl_pw_aff_add_constant_val(copy(), v.release());
return manage(res);
}
-isl_size pw_aff::n_piece() const
+isl::pw_aff pw_aff::add_constant(long v) const
{
- auto res = isl_pw_aff_n_piece(get());
- return res;
+ return this->add_constant(isl::val(ctx(), v));
}
-isl::pw_aff pw_aff::nan_on_domain(isl::local_space ls)
+isl::pw_multi_aff pw_aff::add_constant(const isl::multi_val &mv) const
{
- auto res = isl_pw_aff_nan_on_domain(ls.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).add_constant(mv);
}
-isl::pw_aff pw_aff::nan_on_domain_space(isl::space space)
+isl::pw_aff pw_aff::add_dims(isl::dim type, unsigned int n) const
{
- auto res = isl_pw_aff_nan_on_domain_space(space.release());
+ auto res = isl_pw_aff_add_dims(copy(), static_cast<enum isl_dim_type>(type), n);
return manage(res);
}
-isl::set pw_aff::ne_set(isl::pw_aff pwaff2) const
+isl::union_pw_multi_aff pw_aff::add_pw_multi_aff(const isl::pw_multi_aff &pma) const
{
- auto res = isl_pw_aff_ne_set(copy(), pwaff2.release());
- return manage(res);
+ return isl::union_pw_aff(*this).add_pw_multi_aff(pma);
}
-isl::pw_aff pw_aff::neg() const
+isl::union_pw_multi_aff pw_aff::apply(const isl::union_pw_multi_aff &upma2) const
{
- auto res = isl_pw_aff_neg(copy());
- return manage(res);
+ return isl::union_pw_aff(*this).apply(upma2);
}
-isl::set pw_aff::non_zero_set() const
+isl::aff pw_aff::as_aff() const
{
- auto res = isl_pw_aff_non_zero_set(copy());
+ auto res = isl_pw_aff_as_aff(copy());
return manage(res);
}
-isl::set pw_aff::nonneg_set() const
+isl::map pw_aff::as_map() const
{
- auto res = isl_pw_aff_nonneg_set(copy());
+ auto res = isl_pw_aff_as_map(copy());
return manage(res);
}
-isl::pw_aff pw_aff::param_on_domain(isl::set domain, isl::id id)
+isl::multi_aff pw_aff::as_multi_aff() const
{
- auto res = isl_pw_aff_param_on_domain_id(domain.release(), id.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).as_multi_aff();
}
-isl::set pw_aff::params() const
+isl::multi_union_pw_aff pw_aff::as_multi_union_pw_aff() const
{
- auto res = isl_pw_aff_params(copy());
- return manage(res);
+ return isl::union_pw_aff(*this).as_multi_union_pw_aff();
}
-int pw_aff::plain_cmp(const isl::pw_aff &pa2) const
+isl::pw_multi_aff pw_aff::as_pw_multi_aff() const
{
- auto res = isl_pw_aff_plain_cmp(get(), pa2.get());
- return res;
+ return isl::union_pw_aff(*this).as_pw_multi_aff();
}
-boolean pw_aff::plain_is_equal(const isl::pw_aff &pwaff2) const
+isl::set pw_aff::as_set() const
{
- auto res = isl_pw_aff_plain_is_equal(get(), pwaff2.get());
- return manage(res);
+ return isl::pw_multi_aff(*this).as_set();
}
-isl::set pw_aff::pos_set() const
+isl::union_map pw_aff::as_union_map() const
{
- auto res = isl_pw_aff_pos_set(copy());
- return manage(res);
+ return isl::union_pw_aff(*this).as_union_map();
}
-isl::pw_aff pw_aff::project_domain_on_params() const
+isl::pw_aff pw_aff::at(int pos) const
{
- auto res = isl_pw_aff_project_domain_on_params(copy());
- return manage(res);
+ return isl::pw_multi_aff(*this).at(pos);
}
-isl::pw_aff pw_aff::pullback(isl::multi_aff ma) const
+isl::set pw_aff::bind(const isl::multi_id &tuple) const
{
- auto res = isl_pw_aff_pullback_multi_aff(copy(), ma.release());
- return manage(res);
+ return isl::multi_pw_aff(*this).bind(tuple);
}
-isl::pw_aff pw_aff::pullback(isl::multi_pw_aff mpa) const
+isl::set pw_aff::bind(isl::id id) const
{
- auto res = isl_pw_aff_pullback_multi_pw_aff(copy(), mpa.release());
+ auto res = isl_pw_aff_bind_id(copy(), id.release());
return manage(res);
}
-isl::pw_aff pw_aff::pullback(isl::pw_multi_aff pma) const
+isl::set pw_aff::bind(const std::string &id) const
{
- auto res = isl_pw_aff_pullback_pw_multi_aff(copy(), pma.release());
- return manage(res);
+ return this->bind(isl::id(ctx(), id));
}
-isl::pw_aff pw_aff::reset_tuple_id(isl::dim type) const
+isl::pw_aff pw_aff::bind_domain(isl::multi_id tuple) const
{
- auto res = isl_pw_aff_reset_tuple_id(copy(), static_cast<enum isl_dim_type>(type));
+ auto res = isl_pw_aff_bind_domain(copy(), tuple.release());
return manage(res);
}
-isl::pw_aff pw_aff::reset_user() const
+isl::pw_aff pw_aff::bind_domain_wrapped_domain(isl::multi_id tuple) const
{
- auto res = isl_pw_aff_reset_user(copy());
+ auto res = isl_pw_aff_bind_domain_wrapped_domain(copy(), tuple.release());
return manage(res);
}
-isl::pw_aff pw_aff::scale(isl::val v) const
+isl::pw_aff pw_aff::ceil() const
{
- auto res = isl_pw_aff_scale_val(copy(), v.release());
+ auto res = isl_pw_aff_ceil(copy());
return manage(res);
}
-isl::pw_aff pw_aff::scale_down(isl::val f) const
+isl::pw_aff pw_aff::coalesce() const
{
- auto res = isl_pw_aff_scale_down_val(copy(), f.release());
+ auto res = isl_pw_aff_coalesce(copy());
return manage(res);
}
-isl::pw_aff pw_aff::set_dim_id(isl::dim type, unsigned int pos, isl::id id) const
+isl::pw_aff pw_aff::cond(isl::pw_aff pwaff_true, isl::pw_aff pwaff_false) const
{
- auto res = isl_pw_aff_set_dim_id(copy(), static_cast<enum isl_dim_type>(type), pos, id.release());
+ auto res = isl_pw_aff_cond(copy(), pwaff_true.release(), pwaff_false.release());
return manage(res);
}
-isl::pw_aff pw_aff::set_tuple_id(isl::dim type, isl::id id) const
+class size pw_aff::dim(isl::dim type) const
{
- auto res = isl_pw_aff_set_tuple_id(copy(), static_cast<enum isl_dim_type>(type), id.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).dim(type);
}
-isl::pw_aff pw_aff::sub(isl::pw_aff pwaff2) const
+isl::id pw_aff::dim_id(isl::dim type, unsigned int pos) const
{
- auto res = isl_pw_aff_sub(copy(), pwaff2.release());
+ auto res = isl_pw_aff_get_dim_id(get(), static_cast<enum isl_dim_type>(type), pos);
return manage(res);
}
-isl::pw_aff pw_aff::subtract_domain(isl::set set) const
+isl::id pw_aff::get_dim_id(isl::dim type, unsigned int pos) const
{
- auto res = isl_pw_aff_subtract_domain(copy(), set.release());
- return manage(res);
+ return dim_id(type, pos);
}
-isl::pw_aff pw_aff::tdiv_q(isl::pw_aff pa2) const
+isl::pw_aff pw_aff::div(isl::pw_aff pa2) const
{
- auto res = isl_pw_aff_tdiv_q(copy(), pa2.release());
+ auto res = isl_pw_aff_div(copy(), pa2.release());
return manage(res);
}
-isl::pw_aff pw_aff::tdiv_r(isl::pw_aff pa2) const
+isl::set pw_aff::domain() const
{
- auto res = isl_pw_aff_tdiv_r(copy(), pa2.release());
+ auto res = isl_pw_aff_domain(copy());
return manage(res);
}
-isl::pw_aff pw_aff::union_add(isl::pw_aff pwaff2) const
+isl::space pw_aff::domain_space() const
{
- auto res = isl_pw_aff_union_add(copy(), pwaff2.release());
+ auto res = isl_pw_aff_get_domain_space(get());
return manage(res);
}
-isl::pw_aff pw_aff::union_max(isl::pw_aff pwaff2) const
+isl::space pw_aff::get_domain_space() const
{
- auto res = isl_pw_aff_union_max(copy(), pwaff2.release());
- return manage(res);
+ return domain_space();
}
-isl::pw_aff pw_aff::union_min(isl::pw_aff pwaff2) const
+isl::pw_multi_aff pw_aff::drop_dims(isl::dim type, unsigned int first, unsigned int n) const
{
- auto res = isl_pw_aff_union_min(copy(), pwaff2.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).drop_dims(type, first, n);
}
-isl::pw_aff pw_aff::var_on_domain(isl::local_space ls, isl::dim type, unsigned int pos)
+isl::set pw_aff::eq_set(isl::pw_aff pwaff2) const
{
- auto res = isl_pw_aff_var_on_domain(ls.release(), static_cast<enum isl_dim_type>(type), pos);
+ auto res = isl_pw_aff_eq_set(copy(), pwaff2.release());
return manage(res);
}
-isl::set pw_aff::zero_set() const
+isl::val pw_aff::eval(isl::point pnt) const
{
- auto res = isl_pw_aff_zero_set(copy());
+ auto res = isl_pw_aff_eval(copy(), pnt.release());
return manage(res);
}
-// implementations for isl::pw_aff_list
-pw_aff_list manage(__isl_take isl_pw_aff_list *ptr) {
- return pw_aff_list(ptr);
-}
-pw_aff_list manage_copy(__isl_keep isl_pw_aff_list *ptr) {
- ptr = isl_pw_aff_list_copy(ptr);
- return pw_aff_list(ptr);
+isl::pw_multi_aff pw_aff::extract_pw_multi_aff(const isl::space &space) const
+{
+ return isl::union_pw_aff(*this).extract_pw_multi_aff(space);
}
-pw_aff_list::pw_aff_list()
- : ptr(nullptr) {}
-
-pw_aff_list::pw_aff_list(const pw_aff_list &obj)
- : ptr(nullptr)
+isl::multi_pw_aff pw_aff::flat_range_product(const isl::multi_pw_aff &multi2) const
{
- ptr = obj.copy();
+ return isl::pw_multi_aff(*this).flat_range_product(multi2);
}
-
-pw_aff_list::pw_aff_list(__isl_take isl_pw_aff_list *ptr)
- : ptr(ptr) {}
-
-
-pw_aff_list &pw_aff_list::operator=(pw_aff_list obj) {
- std::swap(this->ptr, obj.ptr);
- return *this;
+isl::multi_union_pw_aff pw_aff::flat_range_product(const isl::multi_union_pw_aff &multi2) const
+{
+ return isl::union_pw_aff(*this).flat_range_product(multi2);
}
-pw_aff_list::~pw_aff_list() {
- if (ptr)
- isl_pw_aff_list_free(ptr);
+isl::pw_multi_aff pw_aff::flat_range_product(const isl::pw_multi_aff &pma2) const
+{
+ return isl::pw_multi_aff(*this).flat_range_product(pma2);
}
-__isl_give isl_pw_aff_list *pw_aff_list::copy() const & {
- return isl_pw_aff_list_copy(ptr);
+isl::union_pw_multi_aff pw_aff::flat_range_product(const isl::union_pw_multi_aff &upma2) const
+{
+ return isl::union_pw_aff(*this).flat_range_product(upma2);
}
-__isl_keep isl_pw_aff_list *pw_aff_list::get() const {
- return ptr;
+isl::pw_aff pw_aff::floor() const
+{
+ auto res = isl_pw_aff_floor(copy());
+ return manage(res);
}
-__isl_give isl_pw_aff_list *pw_aff_list::release() {
- isl_pw_aff_list *tmp = ptr;
- ptr = nullptr;
- return tmp;
+stat pw_aff::foreach_piece(const std::function<stat(isl::set, isl::aff)> &fn) const
+{
+ struct fn_data {
+ std::function<stat(isl::set, isl::aff)> func;
+ } fn_data = { fn };
+ auto fn_lambda = [](isl_set *arg_0, isl_aff *arg_1, void *arg_2) -> isl_stat {
+ auto *data = static_cast<struct fn_data *>(arg_2);
+ auto ret = (data->func)(manage(arg_0), manage(arg_1));
+ return ret.release();
+ };
+ auto res = isl_pw_aff_foreach_piece(get(), fn_lambda, &fn_data);
+ return manage(res);
}
-bool pw_aff_list::is_null() const {
- return ptr == nullptr;
+stat pw_aff::foreach_piece(const std::function<stat(isl::set, isl::multi_aff)> &fn) const
+{
+ return isl::pw_multi_aff(*this).foreach_piece(fn);
}
-
-isl::ctx pw_aff_list::ctx() const {
- return isl::ctx(isl_pw_aff_list_get_ctx(ptr));
+stat pw_aff::foreach_pw_aff(const std::function<stat(isl::pw_aff)> &fn) const
+{
+ return isl::union_pw_aff(*this).foreach_pw_aff(fn);
}
-void pw_aff_list::dump() const {
- isl_pw_aff_list_dump(get());
+isl::set pw_aff::ge_set(isl::pw_aff pwaff2) const
+{
+ auto res = isl_pw_aff_ge_set(copy(), pwaff2.release());
+ return manage(res);
}
-
-isl::pw_aff_list pw_aff_list::add(isl::pw_aff el) const
+isl::pw_aff pw_aff::gist(isl::set context) const
{
- auto res = isl_pw_aff_list_add(copy(), el.release());
+ auto res = isl_pw_aff_gist(copy(), context.release());
return manage(res);
}
-isl::pw_aff_list pw_aff_list::alloc(isl::ctx ctx, int n)
+isl::union_pw_aff pw_aff::gist(const isl::union_set &context) const
{
- auto res = isl_pw_aff_list_alloc(ctx.release(), n);
- return manage(res);
+ return isl::union_pw_aff(*this).gist(context);
}
-isl::pw_aff_list pw_aff_list::clear() const
+isl::pw_aff pw_aff::gist(const isl::basic_set &context) const
{
- auto res = isl_pw_aff_list_clear(copy());
- return manage(res);
+ return this->gist(isl::set(context));
}
-isl::pw_aff_list pw_aff_list::concat(isl::pw_aff_list list2) const
+isl::pw_aff pw_aff::gist(const isl::point &context) const
{
- auto res = isl_pw_aff_list_concat(copy(), list2.release());
+ return this->gist(isl::set(context));
+}
+
+isl::set pw_aff::gt_set(isl::pw_aff pwaff2) const
+{
+ auto res = isl_pw_aff_gt_set(copy(), pwaff2.release());
return manage(res);
}
-isl::pw_aff_list pw_aff_list::drop(unsigned int first, unsigned int n) const
+boolean pw_aff::has_range_tuple_id() const
{
- auto res = isl_pw_aff_list_drop(copy(), first, n);
- return manage(res);
+ return isl::pw_multi_aff(*this).has_range_tuple_id();
}
-isl::set pw_aff_list::eq_set(isl::pw_aff_list list2) const
+isl::multi_pw_aff pw_aff::identity() const
{
- auto res = isl_pw_aff_list_eq_set(copy(), list2.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).identity();
}
-stat pw_aff_list::foreach(const std::function<stat(pw_aff)> &fn) const
+isl::pw_aff pw_aff::insert_domain(isl::space domain) const
{
- struct fn_data {
- const std::function<stat(pw_aff)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_pw_aff *arg_0, void *arg_1) -> isl_stat {
- auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
- return ret.release();
- };
- auto res = isl_pw_aff_list_foreach(get(), fn_lambda, &fn_data);
+ auto res = isl_pw_aff_insert_domain(copy(), domain.release());
return manage(res);
}
-isl::pw_aff_list pw_aff_list::from_pw_aff(isl::pw_aff el)
+isl::pw_aff pw_aff::intersect_domain(isl::set set) const
{
- auto res = isl_pw_aff_list_from_pw_aff(el.release());
+ auto res = isl_pw_aff_intersect_domain(copy(), set.release());
return manage(res);
}
-isl::set pw_aff_list::ge_set(isl::pw_aff_list list2) const
+isl::union_pw_aff pw_aff::intersect_domain(const isl::space &space) const
{
- auto res = isl_pw_aff_list_ge_set(copy(), list2.release());
- return manage(res);
+ return isl::union_pw_aff(*this).intersect_domain(space);
}
-isl::pw_aff pw_aff_list::get_at(int index) const
+isl::union_pw_aff pw_aff::intersect_domain(const isl::union_set &uset) const
{
- auto res = isl_pw_aff_list_get_at(get(), index);
- return manage(res);
+ return isl::union_pw_aff(*this).intersect_domain(uset);
}
-isl::pw_aff pw_aff_list::get_pw_aff(int index) const
+isl::pw_aff pw_aff::intersect_domain(const isl::basic_set &set) const
{
- auto res = isl_pw_aff_list_get_pw_aff(get(), index);
- return manage(res);
+ return this->intersect_domain(isl::set(set));
}
-isl::set pw_aff_list::gt_set(isl::pw_aff_list list2) const
+isl::pw_aff pw_aff::intersect_domain(const isl::point &set) const
{
- auto res = isl_pw_aff_list_gt_set(copy(), list2.release());
- return manage(res);
+ return this->intersect_domain(isl::set(set));
}
-isl::pw_aff_list pw_aff_list::insert(unsigned int pos, isl::pw_aff el) const
+isl::union_pw_aff pw_aff::intersect_domain_wrapped_domain(const isl::union_set &uset) const
{
- auto res = isl_pw_aff_list_insert(copy(), pos, el.release());
- return manage(res);
+ return isl::union_pw_aff(*this).intersect_domain_wrapped_domain(uset);
}
-isl::set pw_aff_list::le_set(isl::pw_aff_list list2) const
+isl::union_pw_aff pw_aff::intersect_domain_wrapped_range(const isl::union_set &uset) const
{
- auto res = isl_pw_aff_list_le_set(copy(), list2.release());
- return manage(res);
+ return isl::union_pw_aff(*this).intersect_domain_wrapped_range(uset);
}
-isl::set pw_aff_list::lt_set(isl::pw_aff_list list2) const
+isl::pw_aff pw_aff::intersect_params(isl::set set) const
{
- auto res = isl_pw_aff_list_lt_set(copy(), list2.release());
+ auto res = isl_pw_aff_intersect_params(copy(), set.release());
return manage(res);
}
-isl::pw_aff pw_aff_list::max() const
+boolean pw_aff::involves_locals() const
{
- auto res = isl_pw_aff_list_max(copy());
- return manage(res);
+ return isl::pw_multi_aff(*this).involves_locals();
}
-isl::pw_aff pw_aff_list::min() const
+boolean pw_aff::involves_nan() const
{
- auto res = isl_pw_aff_list_min(copy());
- return manage(res);
+ return isl::multi_pw_aff(*this).involves_nan();
}
-isl_size pw_aff_list::n_pw_aff() const
+boolean pw_aff::involves_param(const isl::id &id) const
{
- auto res = isl_pw_aff_list_n_pw_aff(get());
- return res;
+ return isl::pw_multi_aff(*this).involves_param(id);
}
-isl::set pw_aff_list::ne_set(isl::pw_aff_list list2) const
+boolean pw_aff::involves_param(const std::string &id) const
{
- auto res = isl_pw_aff_list_ne_set(copy(), list2.release());
- return manage(res);
+ return this->involves_param(isl::id(ctx(), id));
}
-isl::pw_aff_list pw_aff_list::reverse() const
+boolean pw_aff::involves_param(const isl::id_list &list) const
{
- auto res = isl_pw_aff_list_reverse(copy());
- return manage(res);
+ return isl::pw_multi_aff(*this).involves_param(list);
}
-isl::pw_aff_list pw_aff_list::set_pw_aff(int index, isl::pw_aff el) const
+boolean pw_aff::is_cst() const
{
- auto res = isl_pw_aff_list_set_pw_aff(copy(), index, el.release());
+ auto res = isl_pw_aff_is_cst(get());
return manage(res);
}
-isl_size pw_aff_list::size() const
+boolean pw_aff::is_equal(const isl::pw_aff &pa2) const
{
- auto res = isl_pw_aff_list_size(get());
- return res;
+ auto res = isl_pw_aff_is_equal(get(), pa2.get());
+ return manage(res);
}
-isl::pw_aff_list pw_aff_list::swap(unsigned int pos1, unsigned int pos2) const
+boolean pw_aff::isa_aff() const
{
- auto res = isl_pw_aff_list_swap(copy(), pos1, pos2);
+ auto res = isl_pw_aff_isa_aff(get());
return manage(res);
}
-// implementations for isl::pw_multi_aff
-pw_multi_aff manage(__isl_take isl_pw_multi_aff *ptr) {
- return pw_multi_aff(ptr);
-}
-pw_multi_aff manage_copy(__isl_keep isl_pw_multi_aff *ptr) {
- ptr = isl_pw_multi_aff_copy(ptr);
- return pw_multi_aff(ptr);
-}
-
-pw_multi_aff::pw_multi_aff()
- : ptr(nullptr) {}
-
-pw_multi_aff::pw_multi_aff(const pw_multi_aff &obj)
- : ptr(nullptr)
+boolean pw_aff::isa_multi_aff() const
{
- ptr = obj.copy();
+ return isl::pw_multi_aff(*this).isa_multi_aff();
}
-
-pw_multi_aff::pw_multi_aff(__isl_take isl_pw_multi_aff *ptr)
- : ptr(ptr) {}
-
-pw_multi_aff::pw_multi_aff(isl::multi_aff ma)
+boolean pw_aff::isa_pw_multi_aff() const
{
- auto res = isl_pw_multi_aff_from_multi_aff(ma.release());
- ptr = res;
+ return isl::union_pw_aff(*this).isa_pw_multi_aff();
}
-pw_multi_aff::pw_multi_aff(isl::pw_aff pa)
+
+isl::set pw_aff::le_set(isl::pw_aff pwaff2) const
{
- auto res = isl_pw_multi_aff_from_pw_aff(pa.release());
- ptr = res;
+ auto res = isl_pw_aff_le_set(copy(), pwaff2.release());
+ return manage(res);
}
-pw_multi_aff::pw_multi_aff(isl::ctx ctx, const std::string &str)
+
+isl::pw_aff_list pw_aff::list() const
{
- auto res = isl_pw_multi_aff_read_from_str(ctx.release(), str.c_str());
- ptr = res;
+ return isl::multi_pw_aff(*this).list();
}
-pw_multi_aff &pw_multi_aff::operator=(pw_multi_aff obj) {
- std::swap(this->ptr, obj.ptr);
- return *this;
+isl::set pw_aff::lt_set(isl::pw_aff pwaff2) const
+{
+ auto res = isl_pw_aff_lt_set(copy(), pwaff2.release());
+ return manage(res);
}
-pw_multi_aff::~pw_multi_aff() {
- if (ptr)
- isl_pw_multi_aff_free(ptr);
+isl::multi_pw_aff pw_aff::max(const isl::multi_pw_aff &multi2) const
+{
+ return isl::pw_multi_aff(*this).max(multi2);
}
-__isl_give isl_pw_multi_aff *pw_multi_aff::copy() const & {
- return isl_pw_multi_aff_copy(ptr);
+isl::pw_aff pw_aff::max(isl::pw_aff pwaff2) const
+{
+ auto res = isl_pw_aff_max(copy(), pwaff2.release());
+ return manage(res);
}
-__isl_keep isl_pw_multi_aff *pw_multi_aff::get() const {
- return ptr;
+isl::pw_aff pw_aff::max(const isl::aff &pwaff2) const
+{
+ return this->max(isl::pw_aff(pwaff2));
}
-__isl_give isl_pw_multi_aff *pw_multi_aff::release() {
- isl_pw_multi_aff *tmp = ptr;
- ptr = nullptr;
- return tmp;
+isl::multi_val pw_aff::max_multi_val() const
+{
+ return isl::pw_multi_aff(*this).max_multi_val();
}
-bool pw_multi_aff::is_null() const {
- return ptr == nullptr;
+isl::multi_pw_aff pw_aff::min(const isl::multi_pw_aff &multi2) const
+{
+ return isl::pw_multi_aff(*this).min(multi2);
}
-
-isl::ctx pw_multi_aff::ctx() const {
- return isl::ctx(isl_pw_multi_aff_get_ctx(ptr));
+isl::pw_aff pw_aff::min(isl::pw_aff pwaff2) const
+{
+ auto res = isl_pw_aff_min(copy(), pwaff2.release());
+ return manage(res);
}
-void pw_multi_aff::dump() const {
- isl_pw_multi_aff_dump(get());
+isl::pw_aff pw_aff::min(const isl::aff &pwaff2) const
+{
+ return this->min(isl::pw_aff(pwaff2));
}
-
-isl::pw_multi_aff pw_multi_aff::add(isl::pw_multi_aff pma2) const
+isl::multi_val pw_aff::min_multi_val() const
{
- auto res = isl_pw_multi_aff_add(copy(), pma2.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).min_multi_val();
}
-isl::pw_multi_aff pw_multi_aff::add_constant(isl::multi_val mv) const
+isl::pw_aff pw_aff::mod(isl::val mod) const
{
- auto res = isl_pw_multi_aff_add_constant_multi_val(copy(), mv.release());
+ auto res = isl_pw_aff_mod_val(copy(), mod.release());
return manage(res);
}
-isl::pw_multi_aff pw_multi_aff::add_constant(isl::val v) const
+isl::pw_aff pw_aff::mod(long mod) const
{
- auto res = isl_pw_multi_aff_add_constant_val(copy(), v.release());
- return manage(res);
+ return this->mod(isl::val(ctx(), mod));
}
-isl::pw_multi_aff pw_multi_aff::align_params(isl::space model) const
+isl::pw_aff pw_aff::mul(isl::pw_aff pwaff2) const
{
- auto res = isl_pw_multi_aff_align_params(copy(), model.release());
+ auto res = isl_pw_aff_mul(copy(), pwaff2.release());
return manage(res);
}
-isl::pw_multi_aff pw_multi_aff::alloc(isl::set set, isl::multi_aff maff)
+class size pw_aff::n_piece() const
{
- auto res = isl_pw_multi_aff_alloc(set.release(), maff.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).n_piece();
}
-isl::multi_aff pw_multi_aff::as_multi_aff() const
+isl::set pw_aff::ne_set(isl::pw_aff pwaff2) const
{
- auto res = isl_pw_multi_aff_as_multi_aff(copy());
+ auto res = isl_pw_aff_ne_set(copy(), pwaff2.release());
return manage(res);
}
-isl::pw_multi_aff pw_multi_aff::bind_domain(isl::multi_id tuple) const
+isl::pw_aff pw_aff::neg() const
{
- auto res = isl_pw_multi_aff_bind_domain(copy(), tuple.release());
+ auto res = isl_pw_aff_neg(copy());
return manage(res);
}
-isl::pw_multi_aff pw_multi_aff::bind_domain_wrapped_domain(isl::multi_id tuple) const
+isl::pw_aff pw_aff::param_on_domain(isl::set domain, isl::id id)
{
- auto res = isl_pw_multi_aff_bind_domain_wrapped_domain(copy(), tuple.release());
+ auto res = isl_pw_aff_param_on_domain_id(domain.release(), id.release());
return manage(res);
}
-isl::pw_multi_aff pw_multi_aff::coalesce() const
+boolean pw_aff::plain_is_empty() const
{
- auto res = isl_pw_multi_aff_coalesce(copy());
- return manage(res);
+ return isl::union_pw_aff(*this).plain_is_empty();
}
-isl_size pw_multi_aff::dim(isl::dim type) const
+boolean pw_aff::plain_is_equal(const isl::multi_pw_aff &multi2) const
{
- auto res = isl_pw_multi_aff_dim(get(), static_cast<enum isl_dim_type>(type));
- return res;
+ return isl::pw_multi_aff(*this).plain_is_equal(multi2);
}
-isl::set pw_multi_aff::domain() const
+boolean pw_aff::plain_is_equal(const isl::multi_union_pw_aff &multi2) const
{
- auto res = isl_pw_multi_aff_domain(copy());
- return manage(res);
+ return isl::union_pw_aff(*this).plain_is_equal(multi2);
}
-isl::pw_multi_aff pw_multi_aff::domain_map(isl::space space)
+isl::pw_multi_aff pw_aff::preimage_domain_wrapped_domain(const isl::pw_multi_aff &pma2) const
{
- auto res = isl_pw_multi_aff_domain_map(space.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).preimage_domain_wrapped_domain(pma2);
}
-isl::pw_multi_aff pw_multi_aff::drop_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::union_pw_multi_aff pw_aff::preimage_domain_wrapped_domain(const isl::union_pw_multi_aff &upma2) const
{
- auto res = isl_pw_multi_aff_drop_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::union_pw_aff(*this).preimage_domain_wrapped_domain(upma2);
}
-isl::pw_multi_aff pw_multi_aff::drop_unused_params() const
+isl::multi_pw_aff pw_aff::product(const isl::multi_pw_aff &multi2) const
{
- auto res = isl_pw_multi_aff_drop_unused_params(copy());
- return manage(res);
+ return isl::pw_multi_aff(*this).product(multi2);
}
-isl::pw_multi_aff pw_multi_aff::empty(isl::space space)
+isl::pw_multi_aff pw_aff::product(const isl::pw_multi_aff &pma2) const
{
- auto res = isl_pw_multi_aff_empty(space.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).product(pma2);
}
-int pw_multi_aff::find_dim_by_name(isl::dim type, const std::string &name) const
+isl::pw_aff pw_aff::pullback(isl::multi_aff ma) const
{
- auto res = isl_pw_multi_aff_find_dim_by_name(get(), static_cast<enum isl_dim_type>(type), name.c_str());
- return res;
+ auto res = isl_pw_aff_pullback_multi_aff(copy(), ma.release());
+ return manage(res);
}
-isl::pw_multi_aff pw_multi_aff::fix_si(isl::dim type, unsigned int pos, int value) const
+isl::pw_aff pw_aff::pullback(isl::multi_pw_aff mpa) const
{
- auto res = isl_pw_multi_aff_fix_si(copy(), static_cast<enum isl_dim_type>(type), pos, value);
+ auto res = isl_pw_aff_pullback_multi_pw_aff(copy(), mpa.release());
return manage(res);
}
-isl::pw_multi_aff pw_multi_aff::flat_range_product(isl::pw_multi_aff pma2) const
+isl::pw_aff pw_aff::pullback(isl::pw_multi_aff pma) const
{
- auto res = isl_pw_multi_aff_flat_range_product(copy(), pma2.release());
+ auto res = isl_pw_aff_pullback_pw_multi_aff(copy(), pma.release());
return manage(res);
}
-stat pw_multi_aff::foreach_piece(const std::function<stat(set, multi_aff)> &fn) const
+isl::union_pw_aff pw_aff::pullback(const isl::union_pw_multi_aff &upma) const
{
- struct fn_data {
- const std::function<stat(set, multi_aff)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_set *arg_0, isl_multi_aff *arg_1, void *arg_2) -> isl_stat {
- auto *data = static_cast<struct fn_data *>(arg_2);
- stat ret = (*data->func)(manage(arg_0), manage(arg_1));
- return ret.release();
- };
- auto res = isl_pw_multi_aff_foreach_piece(get(), fn_lambda, &fn_data);
- return manage(res);
+ return isl::union_pw_aff(*this).pullback(upma);
}
-isl::pw_multi_aff pw_multi_aff::from_domain(isl::set set)
+isl::pw_multi_aff_list pw_aff::pw_multi_aff_list() const
{
- auto res = isl_pw_multi_aff_from_domain(set.release());
- return manage(res);
+ return isl::union_pw_aff(*this).pw_multi_aff_list();
}
-isl::pw_multi_aff pw_multi_aff::from_map(isl::map map)
+isl::pw_multi_aff pw_aff::range_factor_domain() const
{
- auto res = isl_pw_multi_aff_from_map(map.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).range_factor_domain();
}
-isl::pw_multi_aff pw_multi_aff::from_multi_pw_aff(isl::multi_pw_aff mpa)
+isl::pw_multi_aff pw_aff::range_factor_range() const
{
- auto res = isl_pw_multi_aff_from_multi_pw_aff(mpa.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).range_factor_range();
}
-isl::pw_multi_aff pw_multi_aff::from_set(isl::set set)
+isl::multi_pw_aff pw_aff::range_product(const isl::multi_pw_aff &multi2) const
{
- auto res = isl_pw_multi_aff_from_set(set.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).range_product(multi2);
}
-isl::id pw_multi_aff::get_dim_id(isl::dim type, unsigned int pos) const
+isl::multi_union_pw_aff pw_aff::range_product(const isl::multi_union_pw_aff &multi2) const
{
- auto res = isl_pw_multi_aff_get_dim_id(get(), static_cast<enum isl_dim_type>(type), pos);
- return manage(res);
+ return isl::union_pw_aff(*this).range_product(multi2);
}
-std::string pw_multi_aff::get_dim_name(isl::dim type, unsigned int pos) const
+isl::pw_multi_aff pw_aff::range_product(const isl::pw_multi_aff &pma2) const
{
- auto res = isl_pw_multi_aff_get_dim_name(get(), static_cast<enum isl_dim_type>(type), pos);
- std::string tmp(res);
- return tmp;
+ return isl::pw_multi_aff(*this).range_product(pma2);
}
-isl::space pw_multi_aff::get_domain_space() const
+isl::union_pw_multi_aff pw_aff::range_product(const isl::union_pw_multi_aff &upma2) const
{
- auto res = isl_pw_multi_aff_get_domain_space(get());
- return manage(res);
+ return isl::union_pw_aff(*this).range_product(upma2);
}
-isl::pw_aff pw_multi_aff::get_pw_aff(int pos) const
+isl::id pw_aff::range_tuple_id() const
{
- auto res = isl_pw_multi_aff_get_pw_aff(get(), pos);
- return manage(res);
+ return isl::pw_multi_aff(*this).range_tuple_id();
}
-isl::space pw_multi_aff::get_space() const
+isl::multi_pw_aff pw_aff::reset_range_tuple_id() const
{
- auto res = isl_pw_multi_aff_get_space(get());
- return manage(res);
+ return isl::multi_pw_aff(*this).reset_range_tuple_id();
}
-isl::id pw_multi_aff::get_tuple_id(isl::dim type) const
+isl::multi_pw_aff pw_aff::reset_tuple_id(isl::dim type) const
{
- auto res = isl_pw_multi_aff_get_tuple_id(get(), static_cast<enum isl_dim_type>(type));
- return manage(res);
+ return isl::multi_pw_aff(*this).reset_tuple_id(type);
}
-std::string pw_multi_aff::get_tuple_name(isl::dim type) const
+isl::multi_pw_aff pw_aff::scale(const isl::multi_val &mv) const
{
- auto res = isl_pw_multi_aff_get_tuple_name(get(), static_cast<enum isl_dim_type>(type));
- std::string tmp(res);
- return tmp;
+ return isl::multi_pw_aff(*this).scale(mv);
}
-isl::pw_multi_aff pw_multi_aff::gist(isl::set set) const
+isl::pw_aff pw_aff::scale(isl::val v) const
{
- auto res = isl_pw_multi_aff_gist(copy(), set.release());
+ auto res = isl_pw_aff_scale_val(copy(), v.release());
return manage(res);
}
-isl::pw_multi_aff pw_multi_aff::gist_params(isl::set set) const
+isl::pw_aff pw_aff::scale(long v) const
{
- auto res = isl_pw_multi_aff_gist_params(copy(), set.release());
- return manage(res);
+ return this->scale(isl::val(ctx(), v));
}
-boolean pw_multi_aff::has_tuple_id(isl::dim type) const
+isl::multi_pw_aff pw_aff::scale_down(const isl::multi_val &mv) const
{
- auto res = isl_pw_multi_aff_has_tuple_id(get(), static_cast<enum isl_dim_type>(type));
- return manage(res);
+ return isl::multi_pw_aff(*this).scale_down(mv);
}
-boolean pw_multi_aff::has_tuple_name(isl::dim type) const
+isl::pw_aff pw_aff::scale_down(isl::val f) const
{
- auto res = isl_pw_multi_aff_has_tuple_name(get(), static_cast<enum isl_dim_type>(type));
+ auto res = isl_pw_aff_scale_down_val(copy(), f.release());
return manage(res);
}
-isl::pw_multi_aff pw_multi_aff::identity(isl::space space)
+isl::pw_aff pw_aff::scale_down(long f) const
{
- auto res = isl_pw_multi_aff_identity(space.release());
- return manage(res);
+ return this->scale_down(isl::val(ctx(), f));
}
-isl::pw_multi_aff pw_multi_aff::identity_on_domain(isl::space space)
+isl::multi_pw_aff pw_aff::set_at(int pos, const isl::pw_aff &el) const
{
- auto res = isl_pw_multi_aff_identity_on_domain_space(space.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).set_at(pos, el);
}
-isl::pw_multi_aff pw_multi_aff::insert_domain(isl::space domain) const
+isl::multi_union_pw_aff pw_aff::set_at(int pos, const isl::union_pw_aff &el) const
{
- auto res = isl_pw_multi_aff_insert_domain(copy(), domain.release());
- return manage(res);
+ return isl::union_pw_aff(*this).set_at(pos, el);
}
-isl::pw_multi_aff pw_multi_aff::intersect_domain(isl::set set) const
+isl::multi_pw_aff pw_aff::set_pw_aff(int pos, const isl::pw_aff &el) const
{
- auto res = isl_pw_multi_aff_intersect_domain(copy(), set.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).set_pw_aff(pos, el);
}
-isl::pw_multi_aff pw_multi_aff::intersect_domain_wrapped_domain(isl::set set) const
+isl::pw_multi_aff pw_aff::set_pw_aff(unsigned int pos, const isl::pw_aff &pa) const
{
- auto res = isl_pw_multi_aff_intersect_domain_wrapped_domain(copy(), set.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).set_pw_aff(pos, pa);
}
-isl::pw_multi_aff pw_multi_aff::intersect_domain_wrapped_range(isl::set set) const
+isl::pw_multi_aff pw_aff::set_range_tuple(const isl::id &id) const
{
- auto res = isl_pw_multi_aff_intersect_domain_wrapped_range(copy(), set.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).set_range_tuple(id);
}
-isl::pw_multi_aff pw_multi_aff::intersect_params(isl::set set) const
+isl::pw_multi_aff pw_aff::set_range_tuple(const std::string &id) const
{
- auto res = isl_pw_multi_aff_intersect_params(copy(), set.release());
- return manage(res);
+ return this->set_range_tuple(isl::id(ctx(), id));
}
-boolean pw_multi_aff::involves_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::pw_aff pw_aff::set_tuple_id(isl::dim type, isl::id id) const
{
- auto res = isl_pw_multi_aff_involves_dims(get(), static_cast<enum isl_dim_type>(type), first, n);
+ auto res = isl_pw_aff_set_tuple_id(copy(), static_cast<enum isl_dim_type>(type), id.release());
return manage(res);
}
-boolean pw_multi_aff::involves_locals() const
+isl::pw_aff pw_aff::set_tuple_id(isl::dim type, const std::string &id) const
{
- auto res = isl_pw_multi_aff_involves_locals(get());
- return manage(res);
+ return this->set_tuple_id(type, isl::id(ctx(), id));
}
-boolean pw_multi_aff::involves_nan() const
+isl::multi_union_pw_aff pw_aff::set_union_pw_aff(int pos, const isl::union_pw_aff &el) const
{
- auto res = isl_pw_multi_aff_involves_nan(get());
- return manage(res);
+ return isl::union_pw_aff(*this).set_union_pw_aff(pos, el);
}
-boolean pw_multi_aff::involves_param_id(const isl::id &id) const
+class size pw_aff::size() const
{
- auto res = isl_pw_multi_aff_involves_param_id(get(), id.get());
- return manage(res);
+ return isl::multi_pw_aff(*this).size();
}
-boolean pw_multi_aff::is_equal(const isl::pw_multi_aff &pma2) const
+isl::space pw_aff::space() const
{
- auto res = isl_pw_multi_aff_is_equal(get(), pma2.get());
+ auto res = isl_pw_aff_get_space(get());
return manage(res);
}
-boolean pw_multi_aff::isa_multi_aff() const
+isl::space pw_aff::get_space() const
{
- auto res = isl_pw_multi_aff_isa_multi_aff(get());
- return manage(res);
+ return space();
}
-isl::multi_val pw_multi_aff::max_multi_val() const
+isl::multi_pw_aff pw_aff::sub(const isl::multi_pw_aff &multi2) const
{
- auto res = isl_pw_multi_aff_max_multi_val(copy());
- return manage(res);
+ return isl::pw_multi_aff(*this).sub(multi2);
}
-isl::multi_val pw_multi_aff::min_multi_val() const
+isl::multi_union_pw_aff pw_aff::sub(const isl::multi_union_pw_aff &multi2) const
{
- auto res = isl_pw_multi_aff_min_multi_val(copy());
- return manage(res);
+ return isl::union_pw_aff(*this).sub(multi2);
}
-isl::pw_multi_aff pw_multi_aff::multi_val_on_domain(isl::set domain, isl::multi_val mv)
+isl::pw_aff pw_aff::sub(isl::pw_aff pwaff2) const
{
- auto res = isl_pw_multi_aff_multi_val_on_domain(domain.release(), mv.release());
+ auto res = isl_pw_aff_sub(copy(), pwaff2.release());
return manage(res);
}
-isl_size pw_multi_aff::n_piece() const
+isl::pw_multi_aff pw_aff::sub(const isl::pw_multi_aff &pma2) const
{
- auto res = isl_pw_multi_aff_n_piece(get());
- return res;
+ return isl::pw_multi_aff(*this).sub(pma2);
}
-isl::pw_multi_aff pw_multi_aff::neg() const
+isl::union_pw_aff pw_aff::sub(const isl::union_pw_aff &upa2) const
{
- auto res = isl_pw_multi_aff_neg(copy());
- return manage(res);
+ return isl::union_pw_aff(*this).sub(upa2);
}
-boolean pw_multi_aff::plain_is_equal(const isl::pw_multi_aff &pma2) const
+isl::union_pw_multi_aff pw_aff::sub(const isl::union_pw_multi_aff &upma2) const
{
- auto res = isl_pw_multi_aff_plain_is_equal(get(), pma2.get());
- return manage(res);
+ return isl::union_pw_aff(*this).sub(upma2);
}
-isl::pw_multi_aff pw_multi_aff::preimage_domain_wrapped_domain(isl::pw_multi_aff pma2) const
+isl::pw_aff pw_aff::sub(const isl::aff &pwaff2) const
{
- auto res = isl_pw_multi_aff_preimage_domain_wrapped_domain_pw_multi_aff(copy(), pma2.release());
- return manage(res);
+ return this->sub(isl::pw_aff(pwaff2));
}
-isl::pw_multi_aff pw_multi_aff::product(isl::pw_multi_aff pma2) const
+isl::pw_aff pw_aff::subtract_domain(isl::set set) const
{
- auto res = isl_pw_multi_aff_product(copy(), pma2.release());
+ auto res = isl_pw_aff_subtract_domain(copy(), set.release());
return manage(res);
}
-isl::pw_multi_aff pw_multi_aff::project_domain_on_params() const
+isl::union_pw_aff pw_aff::subtract_domain(const isl::space &space) const
{
- auto res = isl_pw_multi_aff_project_domain_on_params(copy());
- return manage(res);
+ return isl::union_pw_aff(*this).subtract_domain(space);
}
-isl::pw_multi_aff pw_multi_aff::project_out_map(isl::space space, isl::dim type, unsigned int first, unsigned int n)
+isl::union_pw_aff pw_aff::subtract_domain(const isl::union_set &uset) const
{
- auto res = isl_pw_multi_aff_project_out_map(space.release(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::union_pw_aff(*this).subtract_domain(uset);
}
-isl::pw_multi_aff pw_multi_aff::pullback(isl::multi_aff ma) const
+isl::pw_aff pw_aff::subtract_domain(const isl::basic_set &set) const
{
- auto res = isl_pw_multi_aff_pullback_multi_aff(copy(), ma.release());
- return manage(res);
+ return this->subtract_domain(isl::set(set));
}
-isl::pw_multi_aff pw_multi_aff::pullback(isl::pw_multi_aff pma2) const
+isl::pw_aff pw_aff::subtract_domain(const isl::point &set) const
{
- auto res = isl_pw_multi_aff_pullback_pw_multi_aff(copy(), pma2.release());
- return manage(res);
+ return this->subtract_domain(isl::set(set));
}
-isl::pw_multi_aff pw_multi_aff::range_factor_domain() const
+isl::pw_aff pw_aff::tdiv_q(isl::pw_aff pa2) const
{
- auto res = isl_pw_multi_aff_range_factor_domain(copy());
+ auto res = isl_pw_aff_tdiv_q(copy(), pa2.release());
return manage(res);
}
-isl::pw_multi_aff pw_multi_aff::range_factor_range() const
+isl::pw_aff pw_aff::tdiv_r(isl::pw_aff pa2) const
{
- auto res = isl_pw_multi_aff_range_factor_range(copy());
+ auto res = isl_pw_aff_tdiv_r(copy(), pa2.release());
return manage(res);
}
-isl::pw_multi_aff pw_multi_aff::range_map(isl::space space)
+isl::pw_aff_list pw_aff::to_list() const
{
- auto res = isl_pw_multi_aff_range_map(space.release());
+ auto res = isl_pw_aff_to_list(copy());
return manage(res);
}
-isl::pw_multi_aff pw_multi_aff::range_product(isl::pw_multi_aff pma2) const
+isl::multi_pw_aff pw_aff::to_multi_pw_aff() const
{
- auto res = isl_pw_multi_aff_range_product(copy(), pma2.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).to_multi_pw_aff();
}
-isl::pw_multi_aff pw_multi_aff::reset_tuple_id(isl::dim type) const
+isl::union_pw_aff pw_aff::to_union_pw_aff() const
{
- auto res = isl_pw_multi_aff_reset_tuple_id(copy(), static_cast<enum isl_dim_type>(type));
+ auto res = isl_pw_aff_to_union_pw_aff(copy());
return manage(res);
}
-isl::pw_multi_aff pw_multi_aff::reset_user() const
+isl::union_pw_multi_aff pw_aff::to_union_pw_multi_aff() const
{
- auto res = isl_pw_multi_aff_reset_user(copy());
- return manage(res);
+ return isl::pw_multi_aff(*this).to_union_pw_multi_aff();
}
-isl::pw_multi_aff pw_multi_aff::scale(isl::val v) const
+isl::id pw_aff::tuple_id(isl::dim type) const
{
- auto res = isl_pw_multi_aff_scale_val(copy(), v.release());
+ auto res = isl_pw_aff_get_tuple_id(get(), static_cast<enum isl_dim_type>(type));
return manage(res);
}
-isl::pw_multi_aff pw_multi_aff::scale_down(isl::val v) const
+isl::id pw_aff::get_tuple_id(isl::dim type) const
{
- auto res = isl_pw_multi_aff_scale_down_val(copy(), v.release());
- return manage(res);
+ return tuple_id(type);
}
-isl::pw_multi_aff pw_multi_aff::scale_multi_val(isl::multi_val mv) const
+isl::multi_pw_aff pw_aff::unbind_params_insert_domain(const isl::multi_id &domain) const
{
- auto res = isl_pw_multi_aff_scale_multi_val(copy(), mv.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).unbind_params_insert_domain(domain);
}
-isl::pw_multi_aff pw_multi_aff::set_dim_id(isl::dim type, unsigned int pos, isl::id id) const
+isl::multi_pw_aff pw_aff::union_add(const isl::multi_pw_aff &mpa2) const
{
- auto res = isl_pw_multi_aff_set_dim_id(copy(), static_cast<enum isl_dim_type>(type), pos, id.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).union_add(mpa2);
}
-isl::pw_multi_aff pw_multi_aff::set_pw_aff(unsigned int pos, isl::pw_aff pa) const
+isl::multi_union_pw_aff pw_aff::union_add(const isl::multi_union_pw_aff &mupa2) const
{
- auto res = isl_pw_multi_aff_set_pw_aff(copy(), pos, pa.release());
- return manage(res);
+ return isl::union_pw_aff(*this).union_add(mupa2);
}
-isl::pw_multi_aff pw_multi_aff::set_tuple_id(isl::dim type, isl::id id) const
+isl::pw_aff pw_aff::union_add(isl::pw_aff pwaff2) const
{
- auto res = isl_pw_multi_aff_set_tuple_id(copy(), static_cast<enum isl_dim_type>(type), id.release());
+ auto res = isl_pw_aff_union_add(copy(), pwaff2.release());
return manage(res);
}
-isl::pw_multi_aff pw_multi_aff::sub(isl::pw_multi_aff pma2) const
+isl::pw_multi_aff pw_aff::union_add(const isl::pw_multi_aff &pma2) const
{
- auto res = isl_pw_multi_aff_sub(copy(), pma2.release());
- return manage(res);
+ return isl::pw_multi_aff(*this).union_add(pma2);
}
-isl::pw_multi_aff pw_multi_aff::subtract_domain(isl::set set) const
+isl::union_pw_aff pw_aff::union_add(const isl::union_pw_aff &upa2) const
{
- auto res = isl_pw_multi_aff_subtract_domain(copy(), set.release());
- return manage(res);
+ return isl::union_pw_aff(*this).union_add(upa2);
}
-isl::pw_multi_aff pw_multi_aff::union_add(isl::pw_multi_aff pma2) const
+isl::union_pw_multi_aff pw_aff::union_add(const isl::union_pw_multi_aff &upma2) const
{
- auto res = isl_pw_multi_aff_union_add(copy(), pma2.release());
- return manage(res);
+ return isl::union_pw_aff(*this).union_add(upma2);
}
-isl::pw_multi_aff pw_multi_aff::union_lexmax(isl::pw_multi_aff pma2) const
+isl::pw_aff pw_aff::union_add(const isl::aff &pwaff2) const
{
- auto res = isl_pw_multi_aff_union_lexmax(copy(), pma2.release());
- return manage(res);
+ return this->union_add(isl::pw_aff(pwaff2));
}
-isl::pw_multi_aff pw_multi_aff::union_lexmin(isl::pw_multi_aff pma2) const
+isl::pw_aff pw_aff::var_on_domain(isl::local_space ls, isl::dim type, unsigned int pos)
{
- auto res = isl_pw_multi_aff_union_lexmin(copy(), pma2.release());
+ auto res = isl_pw_aff_var_on_domain(ls.release(), static_cast<enum isl_dim_type>(type), pos);
return manage(res);
}
-isl::pw_multi_aff pw_multi_aff::zero(isl::space space)
+inline std::ostream &operator<<(std::ostream &os, const pw_aff &obj)
{
- auto res = isl_pw_multi_aff_zero(space.release());
- return manage(res);
+ char *str = isl_pw_aff_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-// implementations for isl::pw_multi_aff_list
-pw_multi_aff_list manage(__isl_take isl_pw_multi_aff_list *ptr) {
- return pw_multi_aff_list(ptr);
+// implementations for isl::pw_aff_list
+pw_aff_list manage(__isl_take isl_pw_aff_list *ptr) {
+ return pw_aff_list(ptr);
}
-pw_multi_aff_list manage_copy(__isl_keep isl_pw_multi_aff_list *ptr) {
- ptr = isl_pw_multi_aff_list_copy(ptr);
- return pw_multi_aff_list(ptr);
+pw_aff_list manage_copy(__isl_keep isl_pw_aff_list *ptr) {
+ ptr = isl_pw_aff_list_copy(ptr);
+ return pw_aff_list(ptr);
}
-pw_multi_aff_list::pw_multi_aff_list()
+pw_aff_list::pw_aff_list()
: ptr(nullptr) {}
-pw_multi_aff_list::pw_multi_aff_list(const pw_multi_aff_list &obj)
+pw_aff_list::pw_aff_list(const pw_aff_list &obj)
: ptr(nullptr)
{
ptr = obj.copy();
}
-
-pw_multi_aff_list::pw_multi_aff_list(__isl_take isl_pw_multi_aff_list *ptr)
+pw_aff_list::pw_aff_list(__isl_take isl_pw_aff_list *ptr)
: ptr(ptr) {}
+pw_aff_list::pw_aff_list(isl::ctx ctx, int n)
+{
+ auto res = isl_pw_aff_list_alloc(ctx.release(), n);
+ ptr = res;
+}
+
+pw_aff_list::pw_aff_list(isl::pw_aff el)
+{
+ auto res = isl_pw_aff_list_from_pw_aff(el.release());
+ ptr = res;
+}
+
+pw_aff_list::pw_aff_list(isl::ctx ctx, const std::string &str)
+{
+ auto res = isl_pw_aff_list_read_from_str(ctx.release(), str.c_str());
+ ptr = res;
+}
-pw_multi_aff_list &pw_multi_aff_list::operator=(pw_multi_aff_list obj) {
+pw_aff_list &pw_aff_list::operator=(pw_aff_list obj) {
std::swap(this->ptr, obj.ptr);
return *this;
}
-pw_multi_aff_list::~pw_multi_aff_list() {
+pw_aff_list::~pw_aff_list() {
if (ptr)
- isl_pw_multi_aff_list_free(ptr);
+ isl_pw_aff_list_free(ptr);
}
-__isl_give isl_pw_multi_aff_list *pw_multi_aff_list::copy() const & {
- return isl_pw_multi_aff_list_copy(ptr);
+__isl_give isl_pw_aff_list *pw_aff_list::copy() const & {
+ return isl_pw_aff_list_copy(ptr);
}
-__isl_keep isl_pw_multi_aff_list *pw_multi_aff_list::get() const {
+__isl_keep isl_pw_aff_list *pw_aff_list::get() const {
return ptr;
}
-__isl_give isl_pw_multi_aff_list *pw_multi_aff_list::release() {
- isl_pw_multi_aff_list *tmp = ptr;
+__isl_give isl_pw_aff_list *pw_aff_list::release() {
+ isl_pw_aff_list *tmp = ptr;
ptr = nullptr;
return tmp;
}
-bool pw_multi_aff_list::is_null() const {
+bool pw_aff_list::is_null() const {
return ptr == nullptr;
}
-
-isl::ctx pw_multi_aff_list::ctx() const {
- return isl::ctx(isl_pw_multi_aff_list_get_ctx(ptr));
+isl::ctx pw_aff_list::ctx() const {
+ return isl::ctx(isl_pw_aff_list_get_ctx(ptr));
}
-void pw_multi_aff_list::dump() const {
- isl_pw_multi_aff_list_dump(get());
+isl::pw_aff_list pw_aff_list::add(isl::pw_aff el) const
+{
+ auto res = isl_pw_aff_list_add(copy(), el.release());
+ return manage(res);
}
-
-isl::pw_multi_aff_list pw_multi_aff_list::add(isl::pw_multi_aff el) const
+isl::pw_aff pw_aff_list::at(int index) const
{
- auto res = isl_pw_multi_aff_list_add(copy(), el.release());
+ auto res = isl_pw_aff_list_get_at(get(), index);
return manage(res);
}
-isl::pw_multi_aff_list pw_multi_aff_list::alloc(isl::ctx ctx, int n)
+isl::pw_aff pw_aff_list::get_at(int index) const
{
- auto res = isl_pw_multi_aff_list_alloc(ctx.release(), n);
- return manage(res);
+ return at(index);
}
-isl::pw_multi_aff_list pw_multi_aff_list::clear() const
+isl::pw_aff_list pw_aff_list::clear() const
{
- auto res = isl_pw_multi_aff_list_clear(copy());
+ auto res = isl_pw_aff_list_clear(copy());
return manage(res);
}
-isl::pw_multi_aff_list pw_multi_aff_list::concat(isl::pw_multi_aff_list list2) const
+isl::pw_aff_list pw_aff_list::concat(isl::pw_aff_list list2) const
{
- auto res = isl_pw_multi_aff_list_concat(copy(), list2.release());
+ auto res = isl_pw_aff_list_concat(copy(), list2.release());
return manage(res);
}
-isl::pw_multi_aff_list pw_multi_aff_list::drop(unsigned int first, unsigned int n) const
+isl::pw_aff_list pw_aff_list::drop(unsigned int first, unsigned int n) const
{
- auto res = isl_pw_multi_aff_list_drop(copy(), first, n);
+ auto res = isl_pw_aff_list_drop(copy(), first, n);
return manage(res);
}
-stat pw_multi_aff_list::foreach(const std::function<stat(pw_multi_aff)> &fn) const
+stat pw_aff_list::foreach(const std::function<stat(isl::pw_aff)> &fn) const
{
struct fn_data {
- const std::function<stat(pw_multi_aff)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_pw_multi_aff *arg_0, void *arg_1) -> isl_stat {
+ std::function<stat(isl::pw_aff)> func;
+ } fn_data = { fn };
+ auto fn_lambda = [](isl_pw_aff *arg_0, void *arg_1) -> isl_stat {
auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
+ auto ret = (data->func)(manage(arg_0));
return ret.release();
};
- auto res = isl_pw_multi_aff_list_foreach(get(), fn_lambda, &fn_data);
+ auto res = isl_pw_aff_list_foreach(get(), fn_lambda, &fn_data);
return manage(res);
}
-isl::pw_multi_aff_list pw_multi_aff_list::from_pw_multi_aff(isl::pw_multi_aff el)
+isl::pw_aff_list pw_aff_list::insert(unsigned int pos, isl::pw_aff el) const
{
- auto res = isl_pw_multi_aff_list_from_pw_multi_aff(el.release());
+ auto res = isl_pw_aff_list_insert(copy(), pos, el.release());
return manage(res);
}
-isl::pw_multi_aff pw_multi_aff_list::get_at(int index) const
+class size pw_aff_list::size() const
{
- auto res = isl_pw_multi_aff_list_get_at(get(), index);
+ auto res = isl_pw_aff_list_size(get());
return manage(res);
}
-isl::pw_multi_aff pw_multi_aff_list::get_pw_multi_aff(int index) const
+inline std::ostream &operator<<(std::ostream &os, const pw_aff_list &obj)
{
- auto res = isl_pw_multi_aff_list_get_pw_multi_aff(get(), index);
- return manage(res);
+ char *str = isl_pw_aff_list_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::pw_multi_aff_list pw_multi_aff_list::insert(unsigned int pos, isl::pw_multi_aff el) const
-{
- auto res = isl_pw_multi_aff_list_insert(copy(), pos, el.release());
- return manage(res);
+// implementations for isl::pw_multi_aff
+pw_multi_aff manage(__isl_take isl_pw_multi_aff *ptr) {
+ return pw_multi_aff(ptr);
}
-
-isl_size pw_multi_aff_list::n_pw_multi_aff() const
-{
- auto res = isl_pw_multi_aff_list_n_pw_multi_aff(get());
- return res;
+pw_multi_aff manage_copy(__isl_keep isl_pw_multi_aff *ptr) {
+ ptr = isl_pw_multi_aff_copy(ptr);
+ return pw_multi_aff(ptr);
}
-isl::pw_multi_aff_list pw_multi_aff_list::reverse() const
-{
- auto res = isl_pw_multi_aff_list_reverse(copy());
- return manage(res);
-}
+pw_multi_aff::pw_multi_aff()
+ : ptr(nullptr) {}
-isl::pw_multi_aff_list pw_multi_aff_list::set_pw_multi_aff(int index, isl::pw_multi_aff el) const
+pw_multi_aff::pw_multi_aff(const pw_multi_aff &obj)
+ : ptr(nullptr)
{
- auto res = isl_pw_multi_aff_list_set_pw_multi_aff(copy(), index, el.release());
- return manage(res);
+ ptr = obj.copy();
}
-isl_size pw_multi_aff_list::size() const
-{
- auto res = isl_pw_multi_aff_list_size(get());
- return res;
-}
+pw_multi_aff::pw_multi_aff(__isl_take isl_pw_multi_aff *ptr)
+ : ptr(ptr) {}
-isl::pw_multi_aff_list pw_multi_aff_list::swap(unsigned int pos1, unsigned int pos2) const
+pw_multi_aff::pw_multi_aff(isl::multi_aff ma)
{
- auto res = isl_pw_multi_aff_list_swap(copy(), pos1, pos2);
- return manage(res);
-}
-
-// implementations for isl::pw_qpolynomial
-pw_qpolynomial manage(__isl_take isl_pw_qpolynomial *ptr) {
- return pw_qpolynomial(ptr);
-}
-pw_qpolynomial manage_copy(__isl_keep isl_pw_qpolynomial *ptr) {
- ptr = isl_pw_qpolynomial_copy(ptr);
- return pw_qpolynomial(ptr);
+ auto res = isl_pw_multi_aff_from_multi_aff(ma.release());
+ ptr = res;
}
-pw_qpolynomial::pw_qpolynomial()
- : ptr(nullptr) {}
-
-pw_qpolynomial::pw_qpolynomial(const pw_qpolynomial &obj)
- : ptr(nullptr)
+pw_multi_aff::pw_multi_aff(isl::pw_aff pa)
{
- ptr = obj.copy();
+ auto res = isl_pw_multi_aff_from_pw_aff(pa.release());
+ ptr = res;
}
-
-pw_qpolynomial::pw_qpolynomial(__isl_take isl_pw_qpolynomial *ptr)
- : ptr(ptr) {}
-
-pw_qpolynomial::pw_qpolynomial(isl::ctx ctx, const std::string &str)
+pw_multi_aff::pw_multi_aff(isl::ctx ctx, const std::string &str)
{
- auto res = isl_pw_qpolynomial_read_from_str(ctx.release(), str.c_str());
+ auto res = isl_pw_multi_aff_read_from_str(ctx.release(), str.c_str());
ptr = res;
}
-pw_qpolynomial &pw_qpolynomial::operator=(pw_qpolynomial obj) {
+pw_multi_aff &pw_multi_aff::operator=(pw_multi_aff obj) {
std::swap(this->ptr, obj.ptr);
return *this;
}
-pw_qpolynomial::~pw_qpolynomial() {
+pw_multi_aff::~pw_multi_aff() {
if (ptr)
- isl_pw_qpolynomial_free(ptr);
+ isl_pw_multi_aff_free(ptr);
}
-__isl_give isl_pw_qpolynomial *pw_qpolynomial::copy() const & {
- return isl_pw_qpolynomial_copy(ptr);
+__isl_give isl_pw_multi_aff *pw_multi_aff::copy() const & {
+ return isl_pw_multi_aff_copy(ptr);
}
-__isl_keep isl_pw_qpolynomial *pw_qpolynomial::get() const {
+__isl_keep isl_pw_multi_aff *pw_multi_aff::get() const {
return ptr;
}
-__isl_give isl_pw_qpolynomial *pw_qpolynomial::release() {
- isl_pw_qpolynomial *tmp = ptr;
+__isl_give isl_pw_multi_aff *pw_multi_aff::release() {
+ isl_pw_multi_aff *tmp = ptr;
ptr = nullptr;
return tmp;
}
-bool pw_qpolynomial::is_null() const {
+bool pw_multi_aff::is_null() const {
return ptr == nullptr;
}
-
-isl::ctx pw_qpolynomial::ctx() const {
- return isl::ctx(isl_pw_qpolynomial_get_ctx(ptr));
+isl::ctx pw_multi_aff::ctx() const {
+ return isl::ctx(isl_pw_multi_aff_get_ctx(ptr));
}
-void pw_qpolynomial::dump() const {
- isl_pw_qpolynomial_dump(get());
+isl::multi_pw_aff pw_multi_aff::add(const isl::multi_pw_aff &multi2) const
+{
+ return isl::multi_pw_aff(*this).add(multi2);
}
+isl::multi_union_pw_aff pw_multi_aff::add(const isl::multi_union_pw_aff &multi2) const
+{
+ return isl::multi_pw_aff(*this).add(multi2);
+}
-isl::pw_qpolynomial pw_qpolynomial::add(isl::pw_qpolynomial pwqp2) const
+isl::pw_multi_aff pw_multi_aff::add(isl::pw_multi_aff pma2) const
{
- auto res = isl_pw_qpolynomial_add(copy(), pwqp2.release());
+ auto res = isl_pw_multi_aff_add(copy(), pma2.release());
return manage(res);
}
-isl::pw_qpolynomial pw_qpolynomial::add_dims(isl::dim type, unsigned int n) const
+isl::union_pw_multi_aff pw_multi_aff::add(const isl::union_pw_multi_aff &upma2) const
{
- auto res = isl_pw_qpolynomial_add_dims(copy(), static_cast<enum isl_dim_type>(type), n);
- return manage(res);
+ return isl::union_pw_multi_aff(*this).add(upma2);
}
-isl::pw_qpolynomial pw_qpolynomial::alloc(isl::set set, isl::qpolynomial qp)
+isl::pw_multi_aff pw_multi_aff::add(const isl::multi_aff &pma2) const
{
- auto res = isl_pw_qpolynomial_alloc(set.release(), qp.release());
- return manage(res);
+ return this->add(isl::pw_multi_aff(pma2));
}
-isl::qpolynomial pw_qpolynomial::as_qpolynomial() const
+isl::pw_multi_aff pw_multi_aff::add(const isl::pw_aff &pma2) const
{
- auto res = isl_pw_qpolynomial_as_qpolynomial(copy());
+ return this->add(isl::pw_multi_aff(pma2));
+}
+
+isl::pw_multi_aff pw_multi_aff::add_constant(isl::multi_val mv) const
+{
+ auto res = isl_pw_multi_aff_add_constant_multi_val(copy(), mv.release());
return manage(res);
}
-isl::pw_qpolynomial pw_qpolynomial::coalesce() const
+isl::pw_multi_aff pw_multi_aff::add_constant(isl::val v) const
{
- auto res = isl_pw_qpolynomial_coalesce(copy());
+ auto res = isl_pw_multi_aff_add_constant_val(copy(), v.release());
return manage(res);
}
-isl_size pw_qpolynomial::dim(isl::dim type) const
+isl::pw_multi_aff pw_multi_aff::add_constant(long v) const
{
- auto res = isl_pw_qpolynomial_dim(get(), static_cast<enum isl_dim_type>(type));
- return res;
+ return this->add_constant(isl::val(ctx(), v));
}
-isl::set pw_qpolynomial::domain() const
+isl::union_pw_multi_aff pw_multi_aff::add_pw_multi_aff(const isl::pw_multi_aff &pma) const
{
- auto res = isl_pw_qpolynomial_domain(copy());
- return manage(res);
+ return isl::union_pw_multi_aff(*this).add_pw_multi_aff(pma);
}
-isl::pw_qpolynomial pw_qpolynomial::drop_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::union_pw_multi_aff pw_multi_aff::apply(const isl::union_pw_multi_aff &upma2) const
{
- auto res = isl_pw_qpolynomial_drop_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::union_pw_multi_aff(*this).apply(upma2);
}
-isl::pw_qpolynomial pw_qpolynomial::drop_unused_params() const
+isl::map pw_multi_aff::as_map() const
{
- auto res = isl_pw_qpolynomial_drop_unused_params(copy());
+ auto res = isl_pw_multi_aff_as_map(copy());
return manage(res);
}
-isl::val pw_qpolynomial::eval(isl::point pnt) const
+isl::multi_aff pw_multi_aff::as_multi_aff() const
{
- auto res = isl_pw_qpolynomial_eval(copy(), pnt.release());
+ auto res = isl_pw_multi_aff_as_multi_aff(copy());
return manage(res);
}
-int pw_qpolynomial::find_dim_by_name(isl::dim type, const std::string &name) const
+isl::multi_union_pw_aff pw_multi_aff::as_multi_union_pw_aff() const
{
- auto res = isl_pw_qpolynomial_find_dim_by_name(get(), static_cast<enum isl_dim_type>(type), name.c_str());
- return res;
+ return isl::union_pw_multi_aff(*this).as_multi_union_pw_aff();
}
-isl::pw_qpolynomial pw_qpolynomial::fix_val(isl::dim type, unsigned int n, isl::val v) const
+isl::pw_multi_aff pw_multi_aff::as_pw_multi_aff() const
{
- auto res = isl_pw_qpolynomial_fix_val(copy(), static_cast<enum isl_dim_type>(type), n, v.release());
- return manage(res);
+ return isl::union_pw_multi_aff(*this).as_pw_multi_aff();
}
-stat pw_qpolynomial::foreach_piece(const std::function<stat(set, qpolynomial)> &fn) const
+isl::set pw_multi_aff::as_set() const
{
- struct fn_data {
- const std::function<stat(set, qpolynomial)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_set *arg_0, isl_qpolynomial *arg_1, void *arg_2) -> isl_stat {
- auto *data = static_cast<struct fn_data *>(arg_2);
- stat ret = (*data->func)(manage(arg_0), manage(arg_1));
- return ret.release();
- };
- auto res = isl_pw_qpolynomial_foreach_piece(get(), fn_lambda, &fn_data);
+ auto res = isl_pw_multi_aff_as_set(copy());
return manage(res);
}
-isl::pw_qpolynomial pw_qpolynomial::from_pw_aff(isl::pw_aff pwaff)
+isl::union_map pw_multi_aff::as_union_map() const
{
- auto res = isl_pw_qpolynomial_from_pw_aff(pwaff.release());
- return manage(res);
+ return isl::union_pw_multi_aff(*this).as_union_map();
}
-isl::pw_qpolynomial pw_qpolynomial::from_qpolynomial(isl::qpolynomial qp)
+isl::pw_aff pw_multi_aff::at(int pos) const
{
- auto res = isl_pw_qpolynomial_from_qpolynomial(qp.release());
+ auto res = isl_pw_multi_aff_get_at(get(), pos);
return manage(res);
}
-isl::pw_qpolynomial pw_qpolynomial::from_range() const
+isl::pw_aff pw_multi_aff::get_at(int pos) const
{
- auto res = isl_pw_qpolynomial_from_range(copy());
- return manage(res);
+ return at(pos);
}
-isl::space pw_qpolynomial::get_domain_space() const
+isl::set pw_multi_aff::bind(const isl::multi_id &tuple) const
{
- auto res = isl_pw_qpolynomial_get_domain_space(get());
- return manage(res);
+ return isl::multi_pw_aff(*this).bind(tuple);
}
-isl::space pw_qpolynomial::get_space() const
+isl::pw_multi_aff pw_multi_aff::bind_domain(isl::multi_id tuple) const
{
- auto res = isl_pw_qpolynomial_get_space(get());
+ auto res = isl_pw_multi_aff_bind_domain(copy(), tuple.release());
return manage(res);
}
-isl::pw_qpolynomial pw_qpolynomial::gist(isl::set context) const
+isl::pw_multi_aff pw_multi_aff::bind_domain_wrapped_domain(isl::multi_id tuple) const
{
- auto res = isl_pw_qpolynomial_gist(copy(), context.release());
+ auto res = isl_pw_multi_aff_bind_domain_wrapped_domain(copy(), tuple.release());
return manage(res);
}
-isl::pw_qpolynomial pw_qpolynomial::gist_params(isl::set context) const
+isl::pw_multi_aff pw_multi_aff::coalesce() const
{
- auto res = isl_pw_qpolynomial_gist_params(copy(), context.release());
+ auto res = isl_pw_multi_aff_coalesce(copy());
return manage(res);
}
-boolean pw_qpolynomial::has_equal_space(const isl::pw_qpolynomial &pwqp2) const
+class size pw_multi_aff::dim(isl::dim type) const
{
- auto res = isl_pw_qpolynomial_has_equal_space(get(), pwqp2.get());
+ auto res = isl_pw_multi_aff_dim(get(), static_cast<enum isl_dim_type>(type));
return manage(res);
}
-isl::pw_qpolynomial pw_qpolynomial::insert_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::set pw_multi_aff::domain() const
{
- auto res = isl_pw_qpolynomial_insert_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
+ auto res = isl_pw_multi_aff_domain(copy());
return manage(res);
}
-isl::pw_qpolynomial pw_qpolynomial::intersect_domain(isl::set set) const
+isl::pw_multi_aff pw_multi_aff::domain_map(isl::space space)
{
- auto res = isl_pw_qpolynomial_intersect_domain(copy(), set.release());
+ auto res = isl_pw_multi_aff_domain_map(space.release());
return manage(res);
}
-isl::pw_qpolynomial pw_qpolynomial::intersect_domain_wrapped_domain(isl::set set) const
+isl::pw_multi_aff pw_multi_aff::drop_dims(isl::dim type, unsigned int first, unsigned int n) const
{
- auto res = isl_pw_qpolynomial_intersect_domain_wrapped_domain(copy(), set.release());
+ auto res = isl_pw_multi_aff_drop_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
return manage(res);
}
-isl::pw_qpolynomial pw_qpolynomial::intersect_domain_wrapped_range(isl::set set) const
+isl::pw_multi_aff pw_multi_aff::extract_pw_multi_aff(const isl::space &space) const
{
- auto res = isl_pw_qpolynomial_intersect_domain_wrapped_range(copy(), set.release());
- return manage(res);
+ return isl::union_pw_multi_aff(*this).extract_pw_multi_aff(space);
}
-isl::pw_qpolynomial pw_qpolynomial::intersect_params(isl::set set) const
+isl::multi_pw_aff pw_multi_aff::flat_range_product(const isl::multi_pw_aff &multi2) const
{
- auto res = isl_pw_qpolynomial_intersect_params(copy(), set.release());
- return manage(res);
+ return isl::multi_pw_aff(*this).flat_range_product(multi2);
}
-boolean pw_qpolynomial::involves_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::multi_union_pw_aff pw_multi_aff::flat_range_product(const isl::multi_union_pw_aff &multi2) const
{
- auto res = isl_pw_qpolynomial_involves_dims(get(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::multi_pw_aff(*this).flat_range_product(multi2);
}
-boolean pw_qpolynomial::involves_nan() const
+isl::pw_multi_aff pw_multi_aff::flat_range_product(isl::pw_multi_aff pma2) const
{
- auto res = isl_pw_qpolynomial_involves_nan(get());
+ auto res = isl_pw_multi_aff_flat_range_product(copy(), pma2.release());
return manage(res);
}
-boolean pw_qpolynomial::involves_param_id(const isl::id &id) const
+isl::union_pw_multi_aff pw_multi_aff::flat_range_product(const isl::union_pw_multi_aff &upma2) const
{
- auto res = isl_pw_qpolynomial_involves_param_id(get(), id.get());
- return manage(res);
+ return isl::union_pw_multi_aff(*this).flat_range_product(upma2);
}
-boolean pw_qpolynomial::is_zero() const
+isl::pw_multi_aff pw_multi_aff::flat_range_product(const isl::multi_aff &pma2) const
{
- auto res = isl_pw_qpolynomial_is_zero(get());
- return manage(res);
+ return this->flat_range_product(isl::pw_multi_aff(pma2));
}
-boolean pw_qpolynomial::isa_qpolynomial() const
+isl::pw_multi_aff pw_multi_aff::flat_range_product(const isl::pw_aff &pma2) const
{
- auto res = isl_pw_qpolynomial_isa_qpolynomial(get());
- return manage(res);
+ return this->flat_range_product(isl::pw_multi_aff(pma2));
}
-isl::val pw_qpolynomial::max() const
+stat pw_multi_aff::foreach_piece(const std::function<stat(isl::set, isl::multi_aff)> &fn) const
{
- auto res = isl_pw_qpolynomial_max(copy());
+ struct fn_data {
+ std::function<stat(isl::set, isl::multi_aff)> func;
+ } fn_data = { fn };
+ auto fn_lambda = [](isl_set *arg_0, isl_multi_aff *arg_1, void *arg_2) -> isl_stat {
+ auto *data = static_cast<struct fn_data *>(arg_2);
+ auto ret = (data->func)(manage(arg_0), manage(arg_1));
+ return ret.release();
+ };
+ auto res = isl_pw_multi_aff_foreach_piece(get(), fn_lambda, &fn_data);
return manage(res);
}
-isl::val pw_qpolynomial::min() const
+isl::pw_multi_aff pw_multi_aff::from_map(isl::map map)
{
- auto res = isl_pw_qpolynomial_min(copy());
+ auto res = isl_pw_multi_aff_from_map(map.release());
return manage(res);
}
-isl::pw_qpolynomial pw_qpolynomial::move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const
+isl::pw_multi_aff pw_multi_aff::gist(isl::set set) const
{
- auto res = isl_pw_qpolynomial_move_dims(copy(), static_cast<enum isl_dim_type>(dst_type), dst_pos, static_cast<enum isl_dim_type>(src_type), src_pos, n);
+ auto res = isl_pw_multi_aff_gist(copy(), set.release());
return manage(res);
}
-isl::pw_qpolynomial pw_qpolynomial::mul(isl::pw_qpolynomial pwqp2) const
+isl::union_pw_multi_aff pw_multi_aff::gist(const isl::union_set &context) const
{
- auto res = isl_pw_qpolynomial_mul(copy(), pwqp2.release());
- return manage(res);
+ return isl::union_pw_multi_aff(*this).gist(context);
}
-isl_size pw_qpolynomial::n_piece() const
+isl::pw_multi_aff pw_multi_aff::gist(const isl::basic_set &set) const
{
- auto res = isl_pw_qpolynomial_n_piece(get());
- return res;
+ return this->gist(isl::set(set));
}
-isl::pw_qpolynomial pw_qpolynomial::neg() const
+isl::pw_multi_aff pw_multi_aff::gist(const isl::point &set) const
{
- auto res = isl_pw_qpolynomial_neg(copy());
- return manage(res);
+ return this->gist(isl::set(set));
}
-boolean pw_qpolynomial::plain_is_equal(const isl::pw_qpolynomial &pwqp2) const
+boolean pw_multi_aff::has_range_tuple_id() const
{
- auto res = isl_pw_qpolynomial_plain_is_equal(get(), pwqp2.get());
+ auto res = isl_pw_multi_aff_has_range_tuple_id(get());
return manage(res);
}
-isl::pw_qpolynomial pw_qpolynomial::pow(unsigned int exponent) const
+isl::multi_pw_aff pw_multi_aff::identity() const
{
- auto res = isl_pw_qpolynomial_pow(copy(), exponent);
- return manage(res);
+ return isl::multi_pw_aff(*this).identity();
}
-isl::pw_qpolynomial pw_qpolynomial::project_domain_on_params() const
+isl::pw_multi_aff pw_multi_aff::identity_on_domain(isl::space space)
{
- auto res = isl_pw_qpolynomial_project_domain_on_params(copy());
+ auto res = isl_pw_multi_aff_identity_on_domain_space(space.release());
return manage(res);
}
-isl::pw_qpolynomial pw_qpolynomial::reset_domain_space(isl::space space) const
+isl::pw_multi_aff pw_multi_aff::insert_domain(isl::space domain) const
{
- auto res = isl_pw_qpolynomial_reset_domain_space(copy(), space.release());
+ auto res = isl_pw_multi_aff_insert_domain(copy(), domain.release());
return manage(res);
}
-isl::pw_qpolynomial pw_qpolynomial::reset_user() const
+isl::pw_multi_aff pw_multi_aff::intersect_domain(isl::set set) const
{
- auto res = isl_pw_qpolynomial_reset_user(copy());
+ auto res = isl_pw_multi_aff_intersect_domain(copy(), set.release());
return manage(res);
}
-isl::pw_qpolynomial pw_qpolynomial::scale_down_val(isl::val v) const
+isl::union_pw_multi_aff pw_multi_aff::intersect_domain(const isl::space &space) const
{
- auto res = isl_pw_qpolynomial_scale_down_val(copy(), v.release());
- return manage(res);
+ return isl::union_pw_multi_aff(*this).intersect_domain(space);
}
-isl::pw_qpolynomial pw_qpolynomial::scale_val(isl::val v) const
+isl::union_pw_multi_aff pw_multi_aff::intersect_domain(const isl::union_set &uset) const
{
- auto res = isl_pw_qpolynomial_scale_val(copy(), v.release());
- return manage(res);
+ return isl::union_pw_multi_aff(*this).intersect_domain(uset);
}
-isl::pw_qpolynomial pw_qpolynomial::split_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::pw_multi_aff pw_multi_aff::intersect_domain(const isl::basic_set &set) const
{
- auto res = isl_pw_qpolynomial_split_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return this->intersect_domain(isl::set(set));
}
-isl::pw_qpolynomial pw_qpolynomial::split_periods(int max_periods) const
+isl::pw_multi_aff pw_multi_aff::intersect_domain(const isl::point &set) const
{
- auto res = isl_pw_qpolynomial_split_periods(copy(), max_periods);
- return manage(res);
+ return this->intersect_domain(isl::set(set));
}
-isl::pw_qpolynomial pw_qpolynomial::sub(isl::pw_qpolynomial pwqp2) const
+isl::union_pw_multi_aff pw_multi_aff::intersect_domain_wrapped_domain(const isl::union_set &uset) const
{
- auto res = isl_pw_qpolynomial_sub(copy(), pwqp2.release());
- return manage(res);
+ return isl::union_pw_multi_aff(*this).intersect_domain_wrapped_domain(uset);
}
-isl::pw_qpolynomial pw_qpolynomial::subtract_domain(isl::set set) const
+isl::union_pw_multi_aff pw_multi_aff::intersect_domain_wrapped_range(const isl::union_set &uset) const
{
- auto res = isl_pw_qpolynomial_subtract_domain(copy(), set.release());
- return manage(res);
+ return isl::union_pw_multi_aff(*this).intersect_domain_wrapped_range(uset);
}
-isl::pw_qpolynomial pw_qpolynomial::to_polynomial(int sign) const
+isl::pw_multi_aff pw_multi_aff::intersect_params(isl::set set) const
{
- auto res = isl_pw_qpolynomial_to_polynomial(copy(), sign);
+ auto res = isl_pw_multi_aff_intersect_params(copy(), set.release());
return manage(res);
}
-isl::pw_qpolynomial pw_qpolynomial::zero(isl::space space)
+boolean pw_multi_aff::involves_locals() const
{
- auto res = isl_pw_qpolynomial_zero(space.release());
+ auto res = isl_pw_multi_aff_involves_locals(get());
return manage(res);
}
-// implementations for isl::pw_qpolynomial_fold_list
-pw_qpolynomial_fold_list manage(__isl_take isl_pw_qpolynomial_fold_list *ptr) {
- return pw_qpolynomial_fold_list(ptr);
-}
-pw_qpolynomial_fold_list manage_copy(__isl_keep isl_pw_qpolynomial_fold_list *ptr) {
- ptr = isl_pw_qpolynomial_fold_list_copy(ptr);
- return pw_qpolynomial_fold_list(ptr);
+boolean pw_multi_aff::involves_nan() const
+{
+ return isl::multi_pw_aff(*this).involves_nan();
}
-pw_qpolynomial_fold_list::pw_qpolynomial_fold_list()
- : ptr(nullptr) {}
-
-pw_qpolynomial_fold_list::pw_qpolynomial_fold_list(const pw_qpolynomial_fold_list &obj)
- : ptr(nullptr)
+boolean pw_multi_aff::involves_param(const isl::id &id) const
{
- ptr = obj.copy();
+ return isl::multi_pw_aff(*this).involves_param(id);
}
-
-pw_qpolynomial_fold_list::pw_qpolynomial_fold_list(__isl_take isl_pw_qpolynomial_fold_list *ptr)
- : ptr(ptr) {}
-
-
-pw_qpolynomial_fold_list &pw_qpolynomial_fold_list::operator=(pw_qpolynomial_fold_list obj) {
- std::swap(this->ptr, obj.ptr);
- return *this;
+boolean pw_multi_aff::involves_param(const std::string &id) const
+{
+ return this->involves_param(isl::id(ctx(), id));
}
-pw_qpolynomial_fold_list::~pw_qpolynomial_fold_list() {
- if (ptr)
- isl_pw_qpolynomial_fold_list_free(ptr);
+boolean pw_multi_aff::involves_param(const isl::id_list &list) const
+{
+ return isl::multi_pw_aff(*this).involves_param(list);
}
-__isl_give isl_pw_qpolynomial_fold_list *pw_qpolynomial_fold_list::copy() const & {
- return isl_pw_qpolynomial_fold_list_copy(ptr);
+boolean pw_multi_aff::isa_multi_aff() const
+{
+ auto res = isl_pw_multi_aff_isa_multi_aff(get());
+ return manage(res);
}
-__isl_keep isl_pw_qpolynomial_fold_list *pw_qpolynomial_fold_list::get() const {
- return ptr;
+boolean pw_multi_aff::isa_pw_multi_aff() const
+{
+ return isl::union_pw_multi_aff(*this).isa_pw_multi_aff();
}
-__isl_give isl_pw_qpolynomial_fold_list *pw_qpolynomial_fold_list::release() {
- isl_pw_qpolynomial_fold_list *tmp = ptr;
- ptr = nullptr;
- return tmp;
+isl::pw_aff_list pw_multi_aff::list() const
+{
+ return isl::multi_pw_aff(*this).list();
}
-bool pw_qpolynomial_fold_list::is_null() const {
- return ptr == nullptr;
+isl::multi_pw_aff pw_multi_aff::max(const isl::multi_pw_aff &multi2) const
+{
+ return isl::multi_pw_aff(*this).max(multi2);
}
-
-isl::ctx pw_qpolynomial_fold_list::ctx() const {
- return isl::ctx(isl_pw_qpolynomial_fold_list_get_ctx(ptr));
+isl::multi_val pw_multi_aff::max_multi_val() const
+{
+ auto res = isl_pw_multi_aff_max_multi_val(copy());
+ return manage(res);
}
-void pw_qpolynomial_fold_list::dump() const {
- isl_pw_qpolynomial_fold_list_dump(get());
+isl::multi_pw_aff pw_multi_aff::min(const isl::multi_pw_aff &multi2) const
+{
+ return isl::multi_pw_aff(*this).min(multi2);
}
-
-
-// implementations for isl::pw_qpolynomial_list
-pw_qpolynomial_list manage(__isl_take isl_pw_qpolynomial_list *ptr) {
- return pw_qpolynomial_list(ptr);
-}
-pw_qpolynomial_list manage_copy(__isl_keep isl_pw_qpolynomial_list *ptr) {
- ptr = isl_pw_qpolynomial_list_copy(ptr);
- return pw_qpolynomial_list(ptr);
+isl::multi_val pw_multi_aff::min_multi_val() const
+{
+ auto res = isl_pw_multi_aff_min_multi_val(copy());
+ return manage(res);
}
-pw_qpolynomial_list::pw_qpolynomial_list()
- : ptr(nullptr) {}
-
-pw_qpolynomial_list::pw_qpolynomial_list(const pw_qpolynomial_list &obj)
- : ptr(nullptr)
+isl::pw_multi_aff pw_multi_aff::multi_val_on_domain(isl::set domain, isl::multi_val mv)
{
- ptr = obj.copy();
+ auto res = isl_pw_multi_aff_multi_val_on_domain(domain.release(), mv.release());
+ return manage(res);
}
-
-pw_qpolynomial_list::pw_qpolynomial_list(__isl_take isl_pw_qpolynomial_list *ptr)
- : ptr(ptr) {}
-
-
-pw_qpolynomial_list &pw_qpolynomial_list::operator=(pw_qpolynomial_list obj) {
- std::swap(this->ptr, obj.ptr);
- return *this;
+class size pw_multi_aff::n_piece() const
+{
+ auto res = isl_pw_multi_aff_n_piece(get());
+ return manage(res);
}
-pw_qpolynomial_list::~pw_qpolynomial_list() {
- if (ptr)
- isl_pw_qpolynomial_list_free(ptr);
+isl::multi_pw_aff pw_multi_aff::neg() const
+{
+ return isl::multi_pw_aff(*this).neg();
}
-__isl_give isl_pw_qpolynomial_list *pw_qpolynomial_list::copy() const & {
- return isl_pw_qpolynomial_list_copy(ptr);
+boolean pw_multi_aff::plain_is_empty() const
+{
+ return isl::union_pw_multi_aff(*this).plain_is_empty();
}
-__isl_keep isl_pw_qpolynomial_list *pw_qpolynomial_list::get() const {
- return ptr;
+boolean pw_multi_aff::plain_is_equal(const isl::multi_pw_aff &multi2) const
+{
+ return isl::multi_pw_aff(*this).plain_is_equal(multi2);
}
-__isl_give isl_pw_qpolynomial_list *pw_qpolynomial_list::release() {
- isl_pw_qpolynomial_list *tmp = ptr;
- ptr = nullptr;
- return tmp;
+boolean pw_multi_aff::plain_is_equal(const isl::multi_union_pw_aff &multi2) const
+{
+ return isl::multi_pw_aff(*this).plain_is_equal(multi2);
}
-bool pw_qpolynomial_list::is_null() const {
- return ptr == nullptr;
+isl::pw_multi_aff pw_multi_aff::preimage_domain_wrapped_domain(isl::pw_multi_aff pma2) const
+{
+ auto res = isl_pw_multi_aff_preimage_domain_wrapped_domain_pw_multi_aff(copy(), pma2.release());
+ return manage(res);
}
-
-isl::ctx pw_qpolynomial_list::ctx() const {
- return isl::ctx(isl_pw_qpolynomial_list_get_ctx(ptr));
+isl::union_pw_multi_aff pw_multi_aff::preimage_domain_wrapped_domain(const isl::union_pw_multi_aff &upma2) const
+{
+ return isl::union_pw_multi_aff(*this).preimage_domain_wrapped_domain(upma2);
}
-void pw_qpolynomial_list::dump() const {
- isl_pw_qpolynomial_list_dump(get());
+isl::pw_multi_aff pw_multi_aff::preimage_domain_wrapped_domain(const isl::multi_aff &pma2) const
+{
+ return this->preimage_domain_wrapped_domain(isl::pw_multi_aff(pma2));
}
-
-isl::pw_qpolynomial_list pw_qpolynomial_list::add(isl::pw_qpolynomial el) const
+isl::pw_multi_aff pw_multi_aff::preimage_domain_wrapped_domain(const isl::pw_aff &pma2) const
{
- auto res = isl_pw_qpolynomial_list_add(copy(), el.release());
- return manage(res);
+ return this->preimage_domain_wrapped_domain(isl::pw_multi_aff(pma2));
}
-isl::pw_qpolynomial_list pw_qpolynomial_list::alloc(isl::ctx ctx, int n)
+isl::multi_pw_aff pw_multi_aff::product(const isl::multi_pw_aff &multi2) const
{
- auto res = isl_pw_qpolynomial_list_alloc(ctx.release(), n);
- return manage(res);
+ return isl::multi_pw_aff(*this).product(multi2);
}
-isl::pw_qpolynomial_list pw_qpolynomial_list::clear() const
+isl::pw_multi_aff pw_multi_aff::product(isl::pw_multi_aff pma2) const
{
- auto res = isl_pw_qpolynomial_list_clear(copy());
+ auto res = isl_pw_multi_aff_product(copy(), pma2.release());
return manage(res);
}
-isl::pw_qpolynomial_list pw_qpolynomial_list::concat(isl::pw_qpolynomial_list list2) const
+isl::pw_multi_aff pw_multi_aff::product(const isl::multi_aff &pma2) const
{
- auto res = isl_pw_qpolynomial_list_concat(copy(), list2.release());
- return manage(res);
+ return this->product(isl::pw_multi_aff(pma2));
}
-isl::pw_qpolynomial_list pw_qpolynomial_list::drop(unsigned int first, unsigned int n) const
+isl::pw_multi_aff pw_multi_aff::product(const isl::pw_aff &pma2) const
{
- auto res = isl_pw_qpolynomial_list_drop(copy(), first, n);
- return manage(res);
+ return this->product(isl::pw_multi_aff(pma2));
}
-stat pw_qpolynomial_list::foreach(const std::function<stat(pw_qpolynomial)> &fn) const
+isl::pw_multi_aff pw_multi_aff::project_out_map(isl::space space, isl::dim type, unsigned int first, unsigned int n)
{
- struct fn_data {
- const std::function<stat(pw_qpolynomial)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_pw_qpolynomial *arg_0, void *arg_1) -> isl_stat {
- auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
- return ret.release();
- };
- auto res = isl_pw_qpolynomial_list_foreach(get(), fn_lambda, &fn_data);
+ auto res = isl_pw_multi_aff_project_out_map(space.release(), static_cast<enum isl_dim_type>(type), first, n);
return manage(res);
}
-isl::pw_qpolynomial_list pw_qpolynomial_list::from_pw_qpolynomial(isl::pw_qpolynomial el)
+isl::multi_pw_aff pw_multi_aff::pullback(const isl::multi_pw_aff &mpa2) const
{
- auto res = isl_pw_qpolynomial_list_from_pw_qpolynomial(el.release());
- return manage(res);
+ return isl::multi_pw_aff(*this).pullback(mpa2);
}
-isl::pw_qpolynomial pw_qpolynomial_list::get_at(int index) const
+isl::pw_multi_aff pw_multi_aff::pullback(isl::multi_aff ma) const
{
- auto res = isl_pw_qpolynomial_list_get_at(get(), index);
+ auto res = isl_pw_multi_aff_pullback_multi_aff(copy(), ma.release());
return manage(res);
}
-isl::pw_qpolynomial pw_qpolynomial_list::get_pw_qpolynomial(int index) const
+isl::pw_multi_aff pw_multi_aff::pullback(isl::pw_multi_aff pma2) const
{
- auto res = isl_pw_qpolynomial_list_get_pw_qpolynomial(get(), index);
+ auto res = isl_pw_multi_aff_pullback_pw_multi_aff(copy(), pma2.release());
return manage(res);
}
-isl::pw_qpolynomial_list pw_qpolynomial_list::insert(unsigned int pos, isl::pw_qpolynomial el) const
+isl::union_pw_multi_aff pw_multi_aff::pullback(const isl::union_pw_multi_aff &upma2) const
{
- auto res = isl_pw_qpolynomial_list_insert(copy(), pos, el.release());
- return manage(res);
+ return isl::union_pw_multi_aff(*this).pullback(upma2);
}
-isl_size pw_qpolynomial_list::n_pw_qpolynomial() const
+isl::pw_multi_aff_list pw_multi_aff::pw_multi_aff_list() const
{
- auto res = isl_pw_qpolynomial_list_n_pw_qpolynomial(get());
- return res;
+ return isl::union_pw_multi_aff(*this).pw_multi_aff_list();
}
-isl::pw_qpolynomial_list pw_qpolynomial_list::reverse() const
+isl::pw_multi_aff pw_multi_aff::range_factor_domain() const
{
- auto res = isl_pw_qpolynomial_list_reverse(copy());
+ auto res = isl_pw_multi_aff_range_factor_domain(copy());
return manage(res);
}
-isl::pw_qpolynomial_list pw_qpolynomial_list::set_pw_qpolynomial(int index, isl::pw_qpolynomial el) const
+isl::pw_multi_aff pw_multi_aff::range_factor_range() const
{
- auto res = isl_pw_qpolynomial_list_set_pw_qpolynomial(copy(), index, el.release());
+ auto res = isl_pw_multi_aff_range_factor_range(copy());
return manage(res);
}
-isl_size pw_qpolynomial_list::size() const
+isl::pw_multi_aff pw_multi_aff::range_map(isl::space space)
{
- auto res = isl_pw_qpolynomial_list_size(get());
- return res;
+ auto res = isl_pw_multi_aff_range_map(space.release());
+ return manage(res);
}
-isl::pw_qpolynomial_list pw_qpolynomial_list::swap(unsigned int pos1, unsigned int pos2) const
+isl::multi_pw_aff pw_multi_aff::range_product(const isl::multi_pw_aff &multi2) const
{
- auto res = isl_pw_qpolynomial_list_swap(copy(), pos1, pos2);
- return manage(res);
+ return isl::multi_pw_aff(*this).range_product(multi2);
}
-// implementations for isl::qpolynomial
-qpolynomial manage(__isl_take isl_qpolynomial *ptr) {
- return qpolynomial(ptr);
-}
-qpolynomial manage_copy(__isl_keep isl_qpolynomial *ptr) {
- ptr = isl_qpolynomial_copy(ptr);
- return qpolynomial(ptr);
+isl::multi_union_pw_aff pw_multi_aff::range_product(const isl::multi_union_pw_aff &multi2) const
+{
+ return isl::multi_pw_aff(*this).range_product(multi2);
}
-qpolynomial::qpolynomial()
- : ptr(nullptr) {}
-
-qpolynomial::qpolynomial(const qpolynomial &obj)
- : ptr(nullptr)
+isl::pw_multi_aff pw_multi_aff::range_product(isl::pw_multi_aff pma2) const
{
- ptr = obj.copy();
+ auto res = isl_pw_multi_aff_range_product(copy(), pma2.release());
+ return manage(res);
}
-
-qpolynomial::qpolynomial(__isl_take isl_qpolynomial *ptr)
- : ptr(ptr) {}
-
-
-qpolynomial &qpolynomial::operator=(qpolynomial obj) {
- std::swap(this->ptr, obj.ptr);
- return *this;
+isl::union_pw_multi_aff pw_multi_aff::range_product(const isl::union_pw_multi_aff &upma2) const
+{
+ return isl::union_pw_multi_aff(*this).range_product(upma2);
}
-qpolynomial::~qpolynomial() {
- if (ptr)
- isl_qpolynomial_free(ptr);
+isl::pw_multi_aff pw_multi_aff::range_product(const isl::multi_aff &pma2) const
+{
+ return this->range_product(isl::pw_multi_aff(pma2));
}
-__isl_give isl_qpolynomial *qpolynomial::copy() const & {
- return isl_qpolynomial_copy(ptr);
+isl::pw_multi_aff pw_multi_aff::range_product(const isl::pw_aff &pma2) const
+{
+ return this->range_product(isl::pw_multi_aff(pma2));
}
-__isl_keep isl_qpolynomial *qpolynomial::get() const {
- return ptr;
+isl::id pw_multi_aff::range_tuple_id() const
+{
+ auto res = isl_pw_multi_aff_get_range_tuple_id(get());
+ return manage(res);
}
-__isl_give isl_qpolynomial *qpolynomial::release() {
- isl_qpolynomial *tmp = ptr;
- ptr = nullptr;
- return tmp;
+isl::id pw_multi_aff::get_range_tuple_id() const
+{
+ return range_tuple_id();
}
-bool qpolynomial::is_null() const {
- return ptr == nullptr;
+isl::multi_pw_aff pw_multi_aff::reset_range_tuple_id() const
+{
+ return isl::multi_pw_aff(*this).reset_range_tuple_id();
}
-
-isl::ctx qpolynomial::ctx() const {
- return isl::ctx(isl_qpolynomial_get_ctx(ptr));
+isl::multi_pw_aff pw_multi_aff::reset_tuple_id(isl::dim type) const
+{
+ return isl::multi_pw_aff(*this).reset_tuple_id(type);
}
-void qpolynomial::dump() const {
- isl_qpolynomial_dump(get());
+isl::multi_pw_aff pw_multi_aff::scale(const isl::multi_val &mv) const
+{
+ return isl::multi_pw_aff(*this).scale(mv);
}
-
-isl::qpolynomial qpolynomial::add(isl::qpolynomial qp2) const
+isl::pw_multi_aff pw_multi_aff::scale(isl::val v) const
{
- auto res = isl_qpolynomial_add(copy(), qp2.release());
+ auto res = isl_pw_multi_aff_scale_val(copy(), v.release());
return manage(res);
}
-isl::qpolynomial qpolynomial::add_dims(isl::dim type, unsigned int n) const
+isl::pw_multi_aff pw_multi_aff::scale(long v) const
{
- auto res = isl_qpolynomial_add_dims(copy(), static_cast<enum isl_dim_type>(type), n);
- return manage(res);
+ return this->scale(isl::val(ctx(), v));
}
-isl::qpolynomial qpolynomial::align_params(isl::space model) const
+isl::multi_pw_aff pw_multi_aff::scale_down(const isl::multi_val &mv) const
{
- auto res = isl_qpolynomial_align_params(copy(), model.release());
- return manage(res);
+ return isl::multi_pw_aff(*this).scale_down(mv);
}
-stat qpolynomial::as_polynomial_on_domain(const isl::basic_set &bset, const std::function<stat(basic_set, qpolynomial)> &fn) const
+isl::pw_multi_aff pw_multi_aff::scale_down(isl::val v) const
{
- struct fn_data {
- const std::function<stat(basic_set, qpolynomial)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_basic_set *arg_0, isl_qpolynomial *arg_1, void *arg_2) -> isl_stat {
- auto *data = static_cast<struct fn_data *>(arg_2);
- stat ret = (*data->func)(manage(arg_0), manage(arg_1));
- return ret.release();
- };
- auto res = isl_qpolynomial_as_polynomial_on_domain(get(), bset.get(), fn_lambda, &fn_data);
+ auto res = isl_pw_multi_aff_scale_down_val(copy(), v.release());
return manage(res);
}
-isl_size qpolynomial::dim(isl::dim type) const
+isl::pw_multi_aff pw_multi_aff::scale_down(long v) const
{
- auto res = isl_qpolynomial_dim(get(), static_cast<enum isl_dim_type>(type));
- return res;
+ return this->scale_down(isl::val(ctx(), v));
}
-isl::qpolynomial qpolynomial::drop_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::multi_pw_aff pw_multi_aff::set_at(int pos, const isl::pw_aff &el) const
{
- auto res = isl_qpolynomial_drop_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::multi_pw_aff(*this).set_at(pos, el);
}
-isl::val qpolynomial::eval(isl::point pnt) const
+isl::multi_union_pw_aff pw_multi_aff::set_at(int pos, const isl::union_pw_aff &el) const
{
- auto res = isl_qpolynomial_eval(copy(), pnt.release());
- return manage(res);
+ return isl::multi_pw_aff(*this).set_at(pos, el);
}
-stat qpolynomial::foreach_term(const std::function<stat(term)> &fn) const
+isl::multi_pw_aff pw_multi_aff::set_pw_aff(int pos, const isl::pw_aff &el) const
{
- struct fn_data {
- const std::function<stat(term)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_term *arg_0, void *arg_1) -> isl_stat {
- auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
- return ret.release();
- };
- auto res = isl_qpolynomial_foreach_term(get(), fn_lambda, &fn_data);
- return manage(res);
+ return isl::multi_pw_aff(*this).set_pw_aff(pos, el);
}
-isl::qpolynomial qpolynomial::from_aff(isl::aff aff)
+isl::pw_multi_aff pw_multi_aff::set_pw_aff(unsigned int pos, isl::pw_aff pa) const
{
- auto res = isl_qpolynomial_from_aff(aff.release());
+ auto res = isl_pw_multi_aff_set_pw_aff(copy(), pos, pa.release());
return manage(res);
}
-isl::qpolynomial qpolynomial::from_constraint(isl::constraint c, isl::dim type, unsigned int pos)
+isl::pw_multi_aff pw_multi_aff::set_range_tuple(isl::id id) const
{
- auto res = isl_qpolynomial_from_constraint(c.release(), static_cast<enum isl_dim_type>(type), pos);
+ auto res = isl_pw_multi_aff_set_range_tuple_id(copy(), id.release());
return manage(res);
}
-isl::qpolynomial qpolynomial::from_term(isl::term term)
+isl::pw_multi_aff pw_multi_aff::set_range_tuple(const std::string &id) const
{
- auto res = isl_qpolynomial_from_term(term.release());
- return manage(res);
+ return this->set_range_tuple(isl::id(ctx(), id));
}
-isl::val qpolynomial::get_constant_val() const
+isl::multi_union_pw_aff pw_multi_aff::set_union_pw_aff(int pos, const isl::union_pw_aff &el) const
{
- auto res = isl_qpolynomial_get_constant_val(get());
- return manage(res);
+ return isl::multi_pw_aff(*this).set_union_pw_aff(pos, el);
}
-isl::space qpolynomial::get_domain_space() const
+class size pw_multi_aff::size() const
{
- auto res = isl_qpolynomial_get_domain_space(get());
- return manage(res);
+ return isl::multi_pw_aff(*this).size();
}
-isl::space qpolynomial::get_space() const
+isl::space pw_multi_aff::space() const
{
- auto res = isl_qpolynomial_get_space(get());
+ auto res = isl_pw_multi_aff_get_space(get());
return manage(res);
}
-isl::qpolynomial qpolynomial::gist(isl::set context) const
+isl::space pw_multi_aff::get_space() const
{
- auto res = isl_qpolynomial_gist(copy(), context.release());
- return manage(res);
+ return space();
}
-isl::qpolynomial qpolynomial::gist_params(isl::set context) const
+isl::multi_pw_aff pw_multi_aff::sub(const isl::multi_pw_aff &multi2) const
{
- auto res = isl_qpolynomial_gist_params(copy(), context.release());
- return manage(res);
+ return isl::multi_pw_aff(*this).sub(multi2);
}
-isl::qpolynomial qpolynomial::homogenize() const
+isl::multi_union_pw_aff pw_multi_aff::sub(const isl::multi_union_pw_aff &multi2) const
{
- auto res = isl_qpolynomial_homogenize(copy());
- return manage(res);
+ return isl::multi_pw_aff(*this).sub(multi2);
}
-isl::qpolynomial qpolynomial::infty_on_domain(isl::space domain)
+isl::pw_multi_aff pw_multi_aff::sub(isl::pw_multi_aff pma2) const
{
- auto res = isl_qpolynomial_infty_on_domain(domain.release());
+ auto res = isl_pw_multi_aff_sub(copy(), pma2.release());
return manage(res);
}
-isl::qpolynomial qpolynomial::insert_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::union_pw_multi_aff pw_multi_aff::sub(const isl::union_pw_multi_aff &upma2) const
{
- auto res = isl_qpolynomial_insert_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::union_pw_multi_aff(*this).sub(upma2);
}
-boolean qpolynomial::involves_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::pw_multi_aff pw_multi_aff::sub(const isl::multi_aff &pma2) const
{
- auto res = isl_qpolynomial_involves_dims(get(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return this->sub(isl::pw_multi_aff(pma2));
}
-boolean qpolynomial::is_infty() const
+isl::pw_multi_aff pw_multi_aff::sub(const isl::pw_aff &pma2) const
{
- auto res = isl_qpolynomial_is_infty(get());
- return manage(res);
+ return this->sub(isl::pw_multi_aff(pma2));
}
-boolean qpolynomial::is_nan() const
+isl::pw_multi_aff pw_multi_aff::subtract_domain(isl::set set) const
{
- auto res = isl_qpolynomial_is_nan(get());
+ auto res = isl_pw_multi_aff_subtract_domain(copy(), set.release());
return manage(res);
}
-boolean qpolynomial::is_neginfty() const
+isl::union_pw_multi_aff pw_multi_aff::subtract_domain(const isl::space &space) const
{
- auto res = isl_qpolynomial_is_neginfty(get());
- return manage(res);
+ return isl::union_pw_multi_aff(*this).subtract_domain(space);
}
-boolean qpolynomial::is_zero() const
+isl::union_pw_multi_aff pw_multi_aff::subtract_domain(const isl::union_set &uset) const
{
- auto res = isl_qpolynomial_is_zero(get());
- return manage(res);
+ return isl::union_pw_multi_aff(*this).subtract_domain(uset);
}
-isl::qpolynomial qpolynomial::move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const
+isl::pw_multi_aff pw_multi_aff::subtract_domain(const isl::basic_set &set) const
{
- auto res = isl_qpolynomial_move_dims(copy(), static_cast<enum isl_dim_type>(dst_type), dst_pos, static_cast<enum isl_dim_type>(src_type), src_pos, n);
- return manage(res);
+ return this->subtract_domain(isl::set(set));
}
-isl::qpolynomial qpolynomial::mul(isl::qpolynomial qp2) const
+isl::pw_multi_aff pw_multi_aff::subtract_domain(const isl::point &set) const
{
- auto res = isl_qpolynomial_mul(copy(), qp2.release());
- return manage(res);
+ return this->subtract_domain(isl::set(set));
}
-isl::qpolynomial qpolynomial::nan_on_domain(isl::space domain)
+isl::pw_multi_aff_list pw_multi_aff::to_list() const
{
- auto res = isl_qpolynomial_nan_on_domain(domain.release());
+ auto res = isl_pw_multi_aff_to_list(copy());
return manage(res);
}
-isl::qpolynomial qpolynomial::neg() const
+isl::multi_pw_aff pw_multi_aff::to_multi_pw_aff() const
{
- auto res = isl_qpolynomial_neg(copy());
+ auto res = isl_pw_multi_aff_to_multi_pw_aff(copy());
return manage(res);
}
-isl::qpolynomial qpolynomial::neginfty_on_domain(isl::space domain)
+isl::union_pw_multi_aff pw_multi_aff::to_union_pw_multi_aff() const
{
- auto res = isl_qpolynomial_neginfty_on_domain(domain.release());
+ auto res = isl_pw_multi_aff_to_union_pw_multi_aff(copy());
return manage(res);
}
-isl::qpolynomial qpolynomial::one_on_domain(isl::space domain)
+isl::id pw_multi_aff::tuple_id(isl::dim type) const
{
- auto res = isl_qpolynomial_one_on_domain(domain.release());
+ auto res = isl_pw_multi_aff_get_tuple_id(get(), static_cast<enum isl_dim_type>(type));
return manage(res);
}
-boolean qpolynomial::plain_is_equal(const isl::qpolynomial &qp2) const
+isl::id pw_multi_aff::get_tuple_id(isl::dim type) const
{
- auto res = isl_qpolynomial_plain_is_equal(get(), qp2.get());
- return manage(res);
+ return tuple_id(type);
}
-isl::qpolynomial qpolynomial::pow(unsigned int power) const
+isl::multi_pw_aff pw_multi_aff::unbind_params_insert_domain(const isl::multi_id &domain) const
{
- auto res = isl_qpolynomial_pow(copy(), power);
- return manage(res);
+ return isl::multi_pw_aff(*this).unbind_params_insert_domain(domain);
}
-isl::qpolynomial qpolynomial::project_domain_on_params() const
+isl::multi_pw_aff pw_multi_aff::union_add(const isl::multi_pw_aff &mpa2) const
{
- auto res = isl_qpolynomial_project_domain_on_params(copy());
- return manage(res);
+ return isl::multi_pw_aff(*this).union_add(mpa2);
}
-isl::qpolynomial qpolynomial::scale_down_val(isl::val v) const
+isl::multi_union_pw_aff pw_multi_aff::union_add(const isl::multi_union_pw_aff &mupa2) const
{
- auto res = isl_qpolynomial_scale_down_val(copy(), v.release());
- return manage(res);
+ return isl::multi_pw_aff(*this).union_add(mupa2);
}
-isl::qpolynomial qpolynomial::scale_val(isl::val v) const
+isl::pw_multi_aff pw_multi_aff::union_add(isl::pw_multi_aff pma2) const
{
- auto res = isl_qpolynomial_scale_val(copy(), v.release());
+ auto res = isl_pw_multi_aff_union_add(copy(), pma2.release());
return manage(res);
}
-int qpolynomial::sgn() const
+isl::union_pw_multi_aff pw_multi_aff::union_add(const isl::union_pw_multi_aff &upma2) const
{
- auto res = isl_qpolynomial_sgn(get());
- return res;
+ return isl::union_pw_multi_aff(*this).union_add(upma2);
}
-isl::qpolynomial qpolynomial::sub(isl::qpolynomial qp2) const
+isl::pw_multi_aff pw_multi_aff::union_add(const isl::multi_aff &pma2) const
{
- auto res = isl_qpolynomial_sub(copy(), qp2.release());
- return manage(res);
+ return this->union_add(isl::pw_multi_aff(pma2));
}
-isl::qpolynomial qpolynomial::val_on_domain(isl::space space, isl::val val)
+isl::pw_multi_aff pw_multi_aff::union_add(const isl::pw_aff &pma2) const
{
- auto res = isl_qpolynomial_val_on_domain(space.release(), val.release());
- return manage(res);
+ return this->union_add(isl::pw_multi_aff(pma2));
}
-isl::qpolynomial qpolynomial::var_on_domain(isl::space domain, isl::dim type, unsigned int pos)
+isl::pw_multi_aff pw_multi_aff::zero(isl::space space)
{
- auto res = isl_qpolynomial_var_on_domain(domain.release(), static_cast<enum isl_dim_type>(type), pos);
+ auto res = isl_pw_multi_aff_zero(space.release());
return manage(res);
}
-isl::qpolynomial qpolynomial::zero_on_domain(isl::space domain)
+inline std::ostream &operator<<(std::ostream &os, const pw_multi_aff &obj)
{
- auto res = isl_qpolynomial_zero_on_domain(domain.release());
- return manage(res);
+ char *str = isl_pw_multi_aff_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-// implementations for isl::qpolynomial_list
-qpolynomial_list manage(__isl_take isl_qpolynomial_list *ptr) {
- return qpolynomial_list(ptr);
+// implementations for isl::pw_multi_aff_list
+pw_multi_aff_list manage(__isl_take isl_pw_multi_aff_list *ptr) {
+ return pw_multi_aff_list(ptr);
}
-qpolynomial_list manage_copy(__isl_keep isl_qpolynomial_list *ptr) {
- ptr = isl_qpolynomial_list_copy(ptr);
- return qpolynomial_list(ptr);
+pw_multi_aff_list manage_copy(__isl_keep isl_pw_multi_aff_list *ptr) {
+ ptr = isl_pw_multi_aff_list_copy(ptr);
+ return pw_multi_aff_list(ptr);
}
-qpolynomial_list::qpolynomial_list()
+pw_multi_aff_list::pw_multi_aff_list()
: ptr(nullptr) {}
-qpolynomial_list::qpolynomial_list(const qpolynomial_list &obj)
+pw_multi_aff_list::pw_multi_aff_list(const pw_multi_aff_list &obj)
: ptr(nullptr)
{
ptr = obj.copy();
}
-
-qpolynomial_list::qpolynomial_list(__isl_take isl_qpolynomial_list *ptr)
+pw_multi_aff_list::pw_multi_aff_list(__isl_take isl_pw_multi_aff_list *ptr)
: ptr(ptr) {}
+pw_multi_aff_list::pw_multi_aff_list(isl::ctx ctx, int n)
+{
+ auto res = isl_pw_multi_aff_list_alloc(ctx.release(), n);
+ ptr = res;
+}
+
+pw_multi_aff_list::pw_multi_aff_list(isl::pw_multi_aff el)
+{
+ auto res = isl_pw_multi_aff_list_from_pw_multi_aff(el.release());
+ ptr = res;
+}
+
+pw_multi_aff_list::pw_multi_aff_list(isl::ctx ctx, const std::string &str)
+{
+ auto res = isl_pw_multi_aff_list_read_from_str(ctx.release(), str.c_str());
+ ptr = res;
+}
-qpolynomial_list &qpolynomial_list::operator=(qpolynomial_list obj) {
+pw_multi_aff_list &pw_multi_aff_list::operator=(pw_multi_aff_list obj) {
std::swap(this->ptr, obj.ptr);
return *this;
}
-qpolynomial_list::~qpolynomial_list() {
+pw_multi_aff_list::~pw_multi_aff_list() {
if (ptr)
- isl_qpolynomial_list_free(ptr);
+ isl_pw_multi_aff_list_free(ptr);
}
-__isl_give isl_qpolynomial_list *qpolynomial_list::copy() const & {
- return isl_qpolynomial_list_copy(ptr);
+__isl_give isl_pw_multi_aff_list *pw_multi_aff_list::copy() const & {
+ return isl_pw_multi_aff_list_copy(ptr);
}
-__isl_keep isl_qpolynomial_list *qpolynomial_list::get() const {
+__isl_keep isl_pw_multi_aff_list *pw_multi_aff_list::get() const {
return ptr;
}
-__isl_give isl_qpolynomial_list *qpolynomial_list::release() {
- isl_qpolynomial_list *tmp = ptr;
+__isl_give isl_pw_multi_aff_list *pw_multi_aff_list::release() {
+ isl_pw_multi_aff_list *tmp = ptr;
ptr = nullptr;
return tmp;
}
-bool qpolynomial_list::is_null() const {
+bool pw_multi_aff_list::is_null() const {
return ptr == nullptr;
}
-
-isl::ctx qpolynomial_list::ctx() const {
- return isl::ctx(isl_qpolynomial_list_get_ctx(ptr));
-}
-
-void qpolynomial_list::dump() const {
- isl_qpolynomial_list_dump(get());
-}
-
-
-isl::qpolynomial_list qpolynomial_list::add(isl::qpolynomial el) const
-{
- auto res = isl_qpolynomial_list_add(copy(), el.release());
- return manage(res);
-}
-
-isl::qpolynomial_list qpolynomial_list::alloc(isl::ctx ctx, int n)
-{
- auto res = isl_qpolynomial_list_alloc(ctx.release(), n);
- return manage(res);
-}
-
-isl::qpolynomial_list qpolynomial_list::clear() const
-{
- auto res = isl_qpolynomial_list_clear(copy());
- return manage(res);
-}
-
-isl::qpolynomial_list qpolynomial_list::concat(isl::qpolynomial_list list2) const
-{
- auto res = isl_qpolynomial_list_concat(copy(), list2.release());
- return manage(res);
+isl::ctx pw_multi_aff_list::ctx() const {
+ return isl::ctx(isl_pw_multi_aff_list_get_ctx(ptr));
}
-isl::qpolynomial_list qpolynomial_list::drop(unsigned int first, unsigned int n) const
+isl::pw_multi_aff_list pw_multi_aff_list::add(isl::pw_multi_aff el) const
{
- auto res = isl_qpolynomial_list_drop(copy(), first, n);
+ auto res = isl_pw_multi_aff_list_add(copy(), el.release());
return manage(res);
}
-stat qpolynomial_list::foreach(const std::function<stat(qpolynomial)> &fn) const
+isl::pw_multi_aff pw_multi_aff_list::at(int index) const
{
- struct fn_data {
- const std::function<stat(qpolynomial)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_qpolynomial *arg_0, void *arg_1) -> isl_stat {
- auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
- return ret.release();
- };
- auto res = isl_qpolynomial_list_foreach(get(), fn_lambda, &fn_data);
+ auto res = isl_pw_multi_aff_list_get_at(get(), index);
return manage(res);
}
-isl::qpolynomial_list qpolynomial_list::from_qpolynomial(isl::qpolynomial el)
+isl::pw_multi_aff pw_multi_aff_list::get_at(int index) const
{
- auto res = isl_qpolynomial_list_from_qpolynomial(el.release());
- return manage(res);
+ return at(index);
}
-isl::qpolynomial qpolynomial_list::get_at(int index) const
+isl::pw_multi_aff_list pw_multi_aff_list::clear() const
{
- auto res = isl_qpolynomial_list_get_at(get(), index);
+ auto res = isl_pw_multi_aff_list_clear(copy());
return manage(res);
}
-isl::qpolynomial qpolynomial_list::get_qpolynomial(int index) const
+isl::pw_multi_aff_list pw_multi_aff_list::concat(isl::pw_multi_aff_list list2) const
{
- auto res = isl_qpolynomial_list_get_qpolynomial(get(), index);
+ auto res = isl_pw_multi_aff_list_concat(copy(), list2.release());
return manage(res);
}
-isl::qpolynomial_list qpolynomial_list::insert(unsigned int pos, isl::qpolynomial el) const
+isl::pw_multi_aff_list pw_multi_aff_list::drop(unsigned int first, unsigned int n) const
{
- auto res = isl_qpolynomial_list_insert(copy(), pos, el.release());
+ auto res = isl_pw_multi_aff_list_drop(copy(), first, n);
return manage(res);
}
-isl_size qpolynomial_list::n_qpolynomial() const
-{
- auto res = isl_qpolynomial_list_n_qpolynomial(get());
- return res;
-}
-
-isl::qpolynomial_list qpolynomial_list::reverse() const
+stat pw_multi_aff_list::foreach(const std::function<stat(isl::pw_multi_aff)> &fn) const
{
- auto res = isl_qpolynomial_list_reverse(copy());
+ struct fn_data {
+ std::function<stat(isl::pw_multi_aff)> func;
+ } fn_data = { fn };
+ auto fn_lambda = [](isl_pw_multi_aff *arg_0, void *arg_1) -> isl_stat {
+ auto *data = static_cast<struct fn_data *>(arg_1);
+ auto ret = (data->func)(manage(arg_0));
+ return ret.release();
+ };
+ auto res = isl_pw_multi_aff_list_foreach(get(), fn_lambda, &fn_data);
return manage(res);
}
-isl::qpolynomial_list qpolynomial_list::set_qpolynomial(int index, isl::qpolynomial el) const
+isl::pw_multi_aff_list pw_multi_aff_list::insert(unsigned int pos, isl::pw_multi_aff el) const
{
- auto res = isl_qpolynomial_list_set_qpolynomial(copy(), index, el.release());
+ auto res = isl_pw_multi_aff_list_insert(copy(), pos, el.release());
return manage(res);
}
-isl_size qpolynomial_list::size() const
+class size pw_multi_aff_list::size() const
{
- auto res = isl_qpolynomial_list_size(get());
- return res;
+ auto res = isl_pw_multi_aff_list_size(get());
+ return manage(res);
}
-isl::qpolynomial_list qpolynomial_list::swap(unsigned int pos1, unsigned int pos2) const
+inline std::ostream &operator<<(std::ostream &os, const pw_multi_aff_list &obj)
{
- auto res = isl_qpolynomial_list_swap(copy(), pos1, pos2);
- return manage(res);
+ char *str = isl_pw_multi_aff_list_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
// implementations for isl::schedule
ptr = obj.copy();
}
-
schedule::schedule(__isl_take isl_schedule *ptr)
: ptr(ptr) {}
return ptr == nullptr;
}
-
isl::ctx schedule::ctx() const {
return isl::ctx(isl_schedule_get_ctx(ptr));
}
-void schedule::dump() const {
- isl_schedule_dump(get());
-}
-
-
isl::schedule schedule::align_params(isl::space space) const
{
auto res = isl_schedule_align_params(copy(), space.release());
return manage(res);
}
-isl::schedule schedule::empty(isl::space space)
-{
- auto res = isl_schedule_empty(space.release());
- return manage(res);
-}
-
-isl::schedule schedule::from_domain(isl::union_set domain)
-{
- auto res = isl_schedule_from_domain(domain.release());
- return manage(res);
-}
-
-isl::union_set schedule::get_domain() const
+isl::union_set schedule::domain() const
{
auto res = isl_schedule_get_domain(get());
return manage(res);
}
-isl::union_map schedule::get_map() const
+isl::union_set schedule::get_domain() const
{
- auto res = isl_schedule_get_map(get());
- return manage(res);
+ return domain();
}
-isl::schedule_node schedule::get_root() const
+isl::schedule schedule::from_domain(isl::union_set domain)
{
- auto res = isl_schedule_get_root(get());
+ auto res = isl_schedule_from_domain(domain.release());
return manage(res);
}
return manage(res);
}
-isl::schedule schedule::insert_context(isl::set context) const
-{
- auto res = isl_schedule_insert_context(copy(), context.release());
- return manage(res);
-}
-
-isl::schedule schedule::insert_guard(isl::set guard) const
-{
- auto res = isl_schedule_insert_guard(copy(), guard.release());
- return manage(res);
-}
-
isl::schedule schedule::insert_partial_schedule(isl::multi_union_pw_aff partial) const
{
auto res = isl_schedule_insert_partial_schedule(copy(), partial.release());
return manage(res);
}
-boolean schedule::plain_is_equal(const isl::schedule &schedule2) const
+isl::union_map schedule::map() const
{
- auto res = isl_schedule_plain_is_equal(get(), schedule2.get());
+ auto res = isl_schedule_get_map(get());
return manage(res);
}
+isl::union_map schedule::get_map() const
+{
+ return map();
+}
+
isl::schedule schedule::pullback(isl::union_pw_multi_aff upma) const
{
auto res = isl_schedule_pullback_union_pw_multi_aff(copy(), upma.release());
return manage(res);
}
-isl::schedule schedule::reset_user() const
+isl::schedule_node schedule::root() const
{
- auto res = isl_schedule_reset_user(copy());
+ auto res = isl_schedule_get_root(get());
return manage(res);
}
+isl::schedule_node schedule::get_root() const
+{
+ return root();
+}
+
isl::schedule schedule::sequence(isl::schedule schedule2) const
{
auto res = isl_schedule_sequence(copy(), schedule2.release());
return manage(res);
}
+inline std::ostream &operator<<(std::ostream &os, const schedule &obj)
+{
+ char *str = isl_schedule_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
+}
+
// implementations for isl::schedule_constraints
schedule_constraints manage(__isl_take isl_schedule_constraints *ptr) {
return schedule_constraints(ptr);
ptr = obj.copy();
}
-
schedule_constraints::schedule_constraints(__isl_take isl_schedule_constraints *ptr)
: ptr(ptr) {}
return ptr == nullptr;
}
-
isl::ctx schedule_constraints::ctx() const {
return isl::ctx(isl_schedule_constraints_get_ctx(ptr));
}
-void schedule_constraints::dump() const {
- isl_schedule_constraints_dump(get());
+isl::union_map schedule_constraints::coincidence() const
+{
+ auto res = isl_schedule_constraints_get_coincidence(get());
+ return manage(res);
}
-
-isl::schedule_constraints schedule_constraints::apply(isl::union_map umap) const
+isl::union_map schedule_constraints::get_coincidence() const
{
- auto res = isl_schedule_constraints_apply(copy(), umap.release());
- return manage(res);
+ return coincidence();
}
isl::schedule schedule_constraints::compute_schedule() const
return manage(res);
}
-isl::union_map schedule_constraints::get_coincidence() const
+isl::union_map schedule_constraints::conditional_validity() const
{
- auto res = isl_schedule_constraints_get_coincidence(get());
+ auto res = isl_schedule_constraints_get_conditional_validity(get());
return manage(res);
}
isl::union_map schedule_constraints::get_conditional_validity() const
{
- auto res = isl_schedule_constraints_get_conditional_validity(get());
- return manage(res);
+ return conditional_validity();
}
-isl::union_map schedule_constraints::get_conditional_validity_condition() const
+isl::union_map schedule_constraints::conditional_validity_condition() const
{
auto res = isl_schedule_constraints_get_conditional_validity_condition(get());
return manage(res);
}
-isl::set schedule_constraints::get_context() const
+isl::union_map schedule_constraints::get_conditional_validity_condition() const
+{
+ return conditional_validity_condition();
+}
+
+isl::set schedule_constraints::context() const
{
auto res = isl_schedule_constraints_get_context(get());
return manage(res);
}
-isl::union_set schedule_constraints::get_domain() const
+isl::set schedule_constraints::get_context() const
{
- auto res = isl_schedule_constraints_get_domain(get());
- return manage(res);
+ return context();
}
-isl::union_map schedule_constraints::get_proximity() const
+isl::union_set schedule_constraints::domain() const
{
- auto res = isl_schedule_constraints_get_proximity(get());
+ auto res = isl_schedule_constraints_get_domain(get());
return manage(res);
}
-isl::union_map schedule_constraints::get_validity() const
+isl::union_set schedule_constraints::get_domain() const
{
- auto res = isl_schedule_constraints_get_validity(get());
- return manage(res);
+ return domain();
}
isl::schedule_constraints schedule_constraints::on_domain(isl::union_set domain)
return manage(res);
}
+isl::union_map schedule_constraints::proximity() const
+{
+ auto res = isl_schedule_constraints_get_proximity(get());
+ return manage(res);
+}
+
+isl::union_map schedule_constraints::get_proximity() const
+{
+ return proximity();
+}
+
isl::schedule_constraints schedule_constraints::set_coincidence(isl::union_map coincidence) const
{
auto res = isl_schedule_constraints_set_coincidence(copy(), coincidence.release());
return manage(res);
}
+isl::union_map schedule_constraints::validity() const
+{
+ auto res = isl_schedule_constraints_get_validity(get());
+ return manage(res);
+}
+
+isl::union_map schedule_constraints::get_validity() const
+{
+ return validity();
+}
+
+inline std::ostream &operator<<(std::ostream &os, const schedule_constraints &obj)
+{
+ char *str = isl_schedule_constraints_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
+}
+
// implementations for isl::schedule_node
schedule_node manage(__isl_take isl_schedule_node *ptr) {
return schedule_node(ptr);
ptr = obj.copy();
}
-
schedule_node::schedule_node(__isl_take isl_schedule_node *ptr)
: ptr(ptr) {}
-
schedule_node &schedule_node::operator=(schedule_node obj) {
std::swap(this->ptr, obj.ptr);
return *this;
return ptr == nullptr;
}
-
-isl::ctx schedule_node::ctx() const {
- return isl::ctx(isl_schedule_node_get_ctx(ptr));
-}
-
-void schedule_node::dump() const {
- isl_schedule_node_dump(get());
-}
-
-
-isl::schedule_node schedule_node::align_params(isl::space space) const
+template <typename T, typename>
+boolean schedule_node::isa_type(T subtype) const
{
- auto res = isl_schedule_node_align_params(copy(), space.release());
- return manage(res);
+ if (is_null())
+ return boolean();
+ return isl_schedule_node_get_type(get()) == subtype;
}
-
-isl::schedule_node schedule_node::ancestor(int generation) const
+template <class T>
+boolean schedule_node::isa() const
{
- auto res = isl_schedule_node_ancestor(copy(), generation);
- return manage(res);
+ return isa_type<decltype(T::type)>(T::type);
}
-
-boolean schedule_node::band_member_get_coincident(int pos) const
+template <class T>
+T schedule_node::as() const
{
- auto res = isl_schedule_node_band_member_get_coincident(get(), pos);
- return manage(res);
+ if (isa<T>().is_false())
+ isl_die(ctx().get(), isl_error_invalid, "not an object of the requested subtype", return T());
+ return T(copy());
}
-isl::schedule_node schedule_node::band_member_set_coincident(int pos, int coincident) const
-{
- auto res = isl_schedule_node_band_member_set_coincident(copy(), pos, coincident);
- return manage(res);
+isl::ctx schedule_node::ctx() const {
+ return isl::ctx(isl_schedule_node_get_ctx(ptr));
}
-isl::schedule_node schedule_node::band_set_ast_build_options(isl::union_set options) const
+isl::schedule_node schedule_node::ancestor(int generation) const
{
- auto res = isl_schedule_node_band_set_ast_build_options(copy(), options.release());
+ auto res = isl_schedule_node_ancestor(copy(), generation);
return manage(res);
}
-isl::schedule_node schedule_node::child(int pos) const
+class size schedule_node::ancestor_child_position(const isl::schedule_node &ancestor) const
{
- auto res = isl_schedule_node_child(copy(), pos);
+ auto res = isl_schedule_node_get_ancestor_child_position(get(), ancestor.get());
return manage(res);
}
-isl::set schedule_node::context_get_context() const
+class size schedule_node::get_ancestor_child_position(const isl::schedule_node &ancestor) const
{
- auto res = isl_schedule_node_context_get_context(get());
- return manage(res);
+ return ancestor_child_position(ancestor);
}
-isl::schedule_node schedule_node::cut() const
+isl::schedule_node schedule_node::child(int pos) const
{
- auto res = isl_schedule_node_cut(copy());
+ auto res = isl_schedule_node_child(copy(), pos);
return manage(res);
}
-isl::union_set schedule_node::domain_get_domain() const
+class size schedule_node::child_position() const
{
- auto res = isl_schedule_node_domain_get_domain(get());
+ auto res = isl_schedule_node_get_child_position(get());
return manage(res);
}
-isl::union_pw_multi_aff schedule_node::expansion_get_contraction() const
+class size schedule_node::get_child_position() const
{
- auto res = isl_schedule_node_expansion_get_contraction(get());
- return manage(res);
+ return child_position();
}
-isl::union_map schedule_node::expansion_get_expansion() const
+isl::union_set schedule_node::domain() const
{
- auto res = isl_schedule_node_expansion_get_expansion(get());
+ auto res = isl_schedule_node_get_domain(get());
return manage(res);
}
-isl::union_map schedule_node::extension_get_extension() const
+isl::union_set schedule_node::get_domain() const
{
- auto res = isl_schedule_node_extension_get_extension(get());
- return manage(res);
+ return domain();
}
-isl::union_set schedule_node::filter_get_filter() const
+boolean schedule_node::every_descendant(const std::function<boolean(isl::schedule_node)> &test) const
{
- auto res = isl_schedule_node_filter_get_filter(get());
+ struct test_data {
+ std::function<boolean(isl::schedule_node)> func;
+ } test_data = { test };
+ auto test_lambda = [](isl_schedule_node *arg_0, void *arg_1) -> isl_bool {
+ auto *data = static_cast<struct test_data *>(arg_1);
+ auto ret = (data->func)(manage_copy(arg_0));
+ return ret.release();
+ };
+ auto res = isl_schedule_node_every_descendant(get(), test_lambda, &test_data);
return manage(res);
}
return manage(res);
}
-stat schedule_node::foreach_ancestor_top_down(const std::function<stat(schedule_node)> &fn) const
+stat schedule_node::foreach_ancestor_top_down(const std::function<stat(isl::schedule_node)> &fn) const
{
struct fn_data {
- const std::function<stat(schedule_node)> *func;
- } fn_data = { &fn };
+ std::function<stat(isl::schedule_node)> func;
+ } fn_data = { fn };
auto fn_lambda = [](isl_schedule_node *arg_0, void *arg_1) -> isl_stat {
auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage_copy(arg_0));
+ auto ret = (data->func)(manage_copy(arg_0));
return ret.release();
};
auto res = isl_schedule_node_foreach_ancestor_top_down(get(), fn_lambda, &fn_data);
return manage(res);
}
-isl::schedule_node schedule_node::from_domain(isl::union_set domain)
-{
- auto res = isl_schedule_node_from_domain(domain.release());
- return manage(res);
-}
-
-isl::schedule_node schedule_node::from_extension(isl::union_map extension)
-{
- auto res = isl_schedule_node_from_extension(extension.release());
- return manage(res);
-}
-
-isl_size schedule_node::get_ancestor_child_position(const isl::schedule_node &ancestor) const
-{
- auto res = isl_schedule_node_get_ancestor_child_position(get(), ancestor.get());
- return res;
-}
-
-isl::schedule_node schedule_node::get_child(int pos) const
-{
- auto res = isl_schedule_node_get_child(get(), pos);
- return manage(res);
-}
-
-isl_size schedule_node::get_child_position() const
-{
- auto res = isl_schedule_node_get_child_position(get());
- return res;
-}
-
-isl::union_set schedule_node::get_domain() const
-{
- auto res = isl_schedule_node_get_domain(get());
- return manage(res);
-}
-
-isl::multi_union_pw_aff schedule_node::get_prefix_schedule_multi_union_pw_aff() const
-{
- auto res = isl_schedule_node_get_prefix_schedule_multi_union_pw_aff(get());
- return manage(res);
-}
-
-isl::union_map schedule_node::get_prefix_schedule_relation() const
-{
- auto res = isl_schedule_node_get_prefix_schedule_relation(get());
- return manage(res);
-}
-
-isl::union_map schedule_node::get_prefix_schedule_union_map() const
-{
- auto res = isl_schedule_node_get_prefix_schedule_union_map(get());
- return manage(res);
-}
-
-isl::union_pw_multi_aff schedule_node::get_prefix_schedule_union_pw_multi_aff() const
-{
- auto res = isl_schedule_node_get_prefix_schedule_union_pw_multi_aff(get());
- return manage(res);
-}
-
-isl::schedule schedule_node::get_schedule() const
-{
- auto res = isl_schedule_node_get_schedule(get());
- return manage(res);
-}
-
-isl_size schedule_node::get_schedule_depth() const
-{
- auto res = isl_schedule_node_get_schedule_depth(get());
- return res;
-}
-
-isl::schedule_node schedule_node::get_shared_ancestor(const isl::schedule_node &node2) const
-{
- auto res = isl_schedule_node_get_shared_ancestor(get(), node2.get());
- return manage(res);
-}
-
-isl::union_pw_multi_aff schedule_node::get_subtree_contraction() const
+stat schedule_node::foreach_descendant_top_down(const std::function<boolean(isl::schedule_node)> &fn) const
{
- auto res = isl_schedule_node_get_subtree_contraction(get());
- return manage(res);
-}
-
-isl::union_map schedule_node::get_subtree_expansion() const
-{
- auto res = isl_schedule_node_get_subtree_expansion(get());
+ struct fn_data {
+ std::function<boolean(isl::schedule_node)> func;
+ } fn_data = { fn };
+ auto fn_lambda = [](isl_schedule_node *arg_0, void *arg_1) -> isl_bool {
+ auto *data = static_cast<struct fn_data *>(arg_1);
+ auto ret = (data->func)(manage_copy(arg_0));
+ return ret.release();
+ };
+ auto res = isl_schedule_node_foreach_descendant_top_down(get(), fn_lambda, &fn_data);
return manage(res);
}
-isl::union_map schedule_node::get_subtree_schedule_union_map() const
+isl::schedule_node schedule_node::from_domain(isl::union_set domain)
{
- auto res = isl_schedule_node_get_subtree_schedule_union_map(get());
+ auto res = isl_schedule_node_from_domain(domain.release());
return manage(res);
}
-isl_size schedule_node::get_tree_depth() const
-{
- auto res = isl_schedule_node_get_tree_depth(get());
- return res;
-}
-
-isl::union_set schedule_node::get_universe_domain() const
+isl::schedule_node schedule_node::from_extension(isl::union_map extension)
{
- auto res = isl_schedule_node_get_universe_domain(get());
+ auto res = isl_schedule_node_from_extension(extension.release());
return manage(res);
}
return manage(res);
}
-isl::schedule_node schedule_node::group(isl::id group_id) const
-{
- auto res = isl_schedule_node_group(copy(), group_id.release());
- return manage(res);
-}
-
-isl::set schedule_node::guard_get_guard() const
-{
- auto res = isl_schedule_node_guard_get_guard(get());
- return manage(res);
-}
-
boolean schedule_node::has_children() const
{
auto res = isl_schedule_node_has_children(get());
return manage(res);
}
+isl::schedule_node schedule_node::insert_mark(const std::string &mark) const
+{
+ return this->insert_mark(isl::id(ctx(), mark));
+}
+
isl::schedule_node schedule_node::insert_partial_schedule(isl::multi_union_pw_aff schedule) const
{
auto res = isl_schedule_node_insert_partial_schedule(copy(), schedule.release());
return manage(res);
}
-isl::id schedule_node::mark_get_id() const
+isl::schedule_node schedule_node::map_descendant_bottom_up(const std::function<isl::schedule_node(isl::schedule_node)> &fn) const
{
- auto res = isl_schedule_node_mark_get_id(get());
+ struct fn_data {
+ std::function<isl::schedule_node(isl::schedule_node)> func;
+ } fn_data = { fn };
+ auto fn_lambda = [](isl_schedule_node *arg_0, void *arg_1) -> isl_schedule_node * {
+ auto *data = static_cast<struct fn_data *>(arg_1);
+ auto ret = (data->func)(manage(arg_0));
+ return ret.release();
+ };
+ auto res = isl_schedule_node_map_descendant_bottom_up(copy(), fn_lambda, &fn_data);
return manage(res);
}
-isl_size schedule_node::n_children() const
+class size schedule_node::n_children() const
{
auto res = isl_schedule_node_n_children(get());
- return res;
+ return manage(res);
}
isl::schedule_node schedule_node::next_sibling() const
return manage(res);
}
-isl::schedule_node schedule_node::previous_sibling() const
+isl::multi_union_pw_aff schedule_node::prefix_schedule_multi_union_pw_aff() const
{
- auto res = isl_schedule_node_previous_sibling(copy());
+ auto res = isl_schedule_node_get_prefix_schedule_multi_union_pw_aff(get());
return manage(res);
}
-isl::schedule_node schedule_node::reset_user() const
+isl::multi_union_pw_aff schedule_node::get_prefix_schedule_multi_union_pw_aff() const
{
- auto res = isl_schedule_node_reset_user(copy());
- return manage(res);
+ return prefix_schedule_multi_union_pw_aff();
}
-isl::schedule_node schedule_node::root() const
+isl::union_map schedule_node::prefix_schedule_relation() const
{
- auto res = isl_schedule_node_root(copy());
+ auto res = isl_schedule_node_get_prefix_schedule_relation(get());
return manage(res);
}
-isl::schedule_node schedule_node::sequence_splice_child(int pos) const
+isl::union_map schedule_node::get_prefix_schedule_relation() const
{
- auto res = isl_schedule_node_sequence_splice_child(copy(), pos);
- return manage(res);
-}
-
-// implementations for isl::set
-set manage(__isl_take isl_set *ptr) {
- return set(ptr);
-}
-set manage_copy(__isl_keep isl_set *ptr) {
- ptr = isl_set_copy(ptr);
- return set(ptr);
+ return prefix_schedule_relation();
}
-set::set()
- : ptr(nullptr) {}
-
-set::set(const set &obj)
- : ptr(nullptr)
+isl::union_map schedule_node::prefix_schedule_union_map() const
{
- ptr = obj.copy();
+ auto res = isl_schedule_node_get_prefix_schedule_union_map(get());
+ return manage(res);
}
-
-set::set(__isl_take isl_set *ptr)
- : ptr(ptr) {}
-
-set::set(isl::basic_set bset)
-{
- auto res = isl_set_from_basic_set(bset.release());
- ptr = res;
-}
-set::set(isl::point pnt)
+isl::union_map schedule_node::get_prefix_schedule_union_map() const
{
- auto res = isl_set_from_point(pnt.release());
- ptr = res;
+ return prefix_schedule_union_map();
}
-set::set(isl::union_set uset)
+
+isl::union_pw_multi_aff schedule_node::prefix_schedule_union_pw_multi_aff() const
{
- auto res = isl_set_from_union_set(uset.release());
- ptr = res;
+ auto res = isl_schedule_node_get_prefix_schedule_union_pw_multi_aff(get());
+ return manage(res);
}
-set::set(isl::ctx ctx, const std::string &str)
+
+isl::union_pw_multi_aff schedule_node::get_prefix_schedule_union_pw_multi_aff() const
{
- auto res = isl_set_read_from_str(ctx.release(), str.c_str());
- ptr = res;
+ return prefix_schedule_union_pw_multi_aff();
}
-set &set::operator=(set obj) {
- std::swap(this->ptr, obj.ptr);
- return *this;
+isl::schedule_node schedule_node::previous_sibling() const
+{
+ auto res = isl_schedule_node_previous_sibling(copy());
+ return manage(res);
}
-set::~set() {
- if (ptr)
- isl_set_free(ptr);
+isl::schedule_node schedule_node::root() const
+{
+ auto res = isl_schedule_node_root(copy());
+ return manage(res);
}
-__isl_give isl_set *set::copy() const & {
- return isl_set_copy(ptr);
+isl::schedule schedule_node::schedule() const
+{
+ auto res = isl_schedule_node_get_schedule(get());
+ return manage(res);
}
-__isl_keep isl_set *set::get() const {
- return ptr;
+isl::schedule schedule_node::get_schedule() const
+{
+ return schedule();
}
-__isl_give isl_set *set::release() {
- isl_set *tmp = ptr;
- ptr = nullptr;
- return tmp;
+class size schedule_node::schedule_depth() const
+{
+ auto res = isl_schedule_node_get_schedule_depth(get());
+ return manage(res);
}
-bool set::is_null() const {
- return ptr == nullptr;
+class size schedule_node::get_schedule_depth() const
+{
+ return schedule_depth();
}
-
-isl::ctx set::ctx() const {
- return isl::ctx(isl_set_get_ctx(ptr));
+isl::schedule_node schedule_node::shared_ancestor(const isl::schedule_node &node2) const
+{
+ auto res = isl_schedule_node_get_shared_ancestor(get(), node2.get());
+ return manage(res);
}
-void set::dump() const {
- isl_set_dump(get());
+isl::schedule_node schedule_node::get_shared_ancestor(const isl::schedule_node &node2) const
+{
+ return shared_ancestor(node2);
}
-
-isl::set set::add_constraint(isl::constraint constraint) const
+class size schedule_node::tree_depth() const
{
- auto res = isl_set_add_constraint(copy(), constraint.release());
+ auto res = isl_schedule_node_get_tree_depth(get());
return manage(res);
}
-isl::set set::add_dims(isl::dim type, unsigned int n) const
+class size schedule_node::get_tree_depth() const
{
- auto res = isl_set_add_dims(copy(), static_cast<enum isl_dim_type>(type), n);
- return manage(res);
+ return tree_depth();
}
-isl::basic_set set::affine_hull() const
+isl::union_set schedule_node::universe_domain() const
{
- auto res = isl_set_affine_hull(copy());
+ auto res = isl_schedule_node_get_universe_domain(get());
return manage(res);
}
-isl::set set::align_params(isl::space model) const
+isl::union_set schedule_node::get_universe_domain() const
{
- auto res = isl_set_align_params(copy(), model.release());
- return manage(res);
+ return universe_domain();
}
-isl::set set::apply(isl::map map) const
+inline std::ostream &operator<<(std::ostream &os, const schedule_node &obj)
{
- auto res = isl_set_apply(copy(), map.release());
- return manage(res);
+ char *str = isl_schedule_node_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::set set::bind(isl::multi_id tuple) const
+// implementations for isl::schedule_node_band
+schedule_node_band::schedule_node_band()
+ : schedule_node() {}
+
+schedule_node_band::schedule_node_band(const schedule_node_band &obj)
+ : schedule_node(obj)
{
- auto res = isl_set_bind(copy(), tuple.release());
- return manage(res);
}
-isl::basic_set set::bounded_simple_hull() const
-{
- auto res = isl_set_bounded_simple_hull(copy());
- return manage(res);
+schedule_node_band::schedule_node_band(__isl_take isl_schedule_node *ptr)
+ : schedule_node(ptr) {}
+
+schedule_node_band &schedule_node_band::operator=(schedule_node_band obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-isl::set set::box_from_points(isl::point pnt1, isl::point pnt2)
-{
- auto res = isl_set_box_from_points(pnt1.release(), pnt2.release());
- return manage(res);
+isl::ctx schedule_node_band::ctx() const {
+ return isl::ctx(isl_schedule_node_get_ctx(ptr));
}
-isl::set set::coalesce() const
+isl::union_set schedule_node_band::ast_build_options() const
{
- auto res = isl_set_coalesce(copy());
+ auto res = isl_schedule_node_band_get_ast_build_options(get());
return manage(res);
}
-isl::basic_set set::coefficients() const
+isl::union_set schedule_node_band::get_ast_build_options() const
{
- auto res = isl_set_coefficients(copy());
- return manage(res);
+ return ast_build_options();
}
-isl::set set::complement() const
+isl::set schedule_node_band::ast_isolate_option() const
{
- auto res = isl_set_complement(copy());
+ auto res = isl_schedule_node_band_get_ast_isolate_option(get());
return manage(res);
}
-isl::basic_set set::convex_hull() const
+isl::set schedule_node_band::get_ast_isolate_option() const
{
- auto res = isl_set_convex_hull(copy());
- return manage(res);
+ return ast_isolate_option();
}
-isl::val set::count_val() const
+boolean schedule_node_band::member_get_coincident(int pos) const
{
- auto res = isl_set_count_val(get());
+ auto res = isl_schedule_node_band_member_get_coincident(get(), pos);
return manage(res);
}
-isl::set set::detect_equalities() const
+schedule_node_band schedule_node_band::member_set_coincident(int pos, int coincident) const
{
- auto res = isl_set_detect_equalities(copy());
- return manage(res);
+ auto res = isl_schedule_node_band_member_set_coincident(copy(), pos, coincident);
+ return manage(res).as<schedule_node_band>();
}
-isl_size set::dim(isl::dim type) const
+schedule_node_band schedule_node_band::mod(isl::multi_val mv) const
{
- auto res = isl_set_dim(get(), static_cast<enum isl_dim_type>(type));
- return res;
+ auto res = isl_schedule_node_band_mod(copy(), mv.release());
+ return manage(res).as<schedule_node_band>();
}
-boolean set::dim_has_any_lower_bound(isl::dim type, unsigned int pos) const
+class size schedule_node_band::n_member() const
{
- auto res = isl_set_dim_has_any_lower_bound(get(), static_cast<enum isl_dim_type>(type), pos);
+ auto res = isl_schedule_node_band_n_member(get());
return manage(res);
}
-boolean set::dim_has_any_upper_bound(isl::dim type, unsigned int pos) const
+isl::multi_union_pw_aff schedule_node_band::partial_schedule() const
{
- auto res = isl_set_dim_has_any_upper_bound(get(), static_cast<enum isl_dim_type>(type), pos);
+ auto res = isl_schedule_node_band_get_partial_schedule(get());
return manage(res);
}
-boolean set::dim_has_lower_bound(isl::dim type, unsigned int pos) const
+isl::multi_union_pw_aff schedule_node_band::get_partial_schedule() const
{
- auto res = isl_set_dim_has_lower_bound(get(), static_cast<enum isl_dim_type>(type), pos);
- return manage(res);
+ return partial_schedule();
}
-boolean set::dim_has_upper_bound(isl::dim type, unsigned int pos) const
+boolean schedule_node_band::permutable() const
{
- auto res = isl_set_dim_has_upper_bound(get(), static_cast<enum isl_dim_type>(type), pos);
+ auto res = isl_schedule_node_band_get_permutable(get());
return manage(res);
}
-boolean set::dim_is_bounded(isl::dim type, unsigned int pos) const
+boolean schedule_node_band::get_permutable() const
{
- auto res = isl_set_dim_is_bounded(get(), static_cast<enum isl_dim_type>(type), pos);
- return manage(res);
+ return permutable();
}
-isl::pw_aff set::dim_max(int pos) const
+schedule_node_band schedule_node_band::scale(isl::multi_val mv) const
{
- auto res = isl_set_dim_max(copy(), pos);
- return manage(res);
+ auto res = isl_schedule_node_band_scale(copy(), mv.release());
+ return manage(res).as<schedule_node_band>();
}
-isl::val set::dim_max_val(int pos) const
+schedule_node_band schedule_node_band::scale_down(isl::multi_val mv) const
{
- auto res = isl_set_dim_max_val(copy(), pos);
- return manage(res);
+ auto res = isl_schedule_node_band_scale_down(copy(), mv.release());
+ return manage(res).as<schedule_node_band>();
}
-isl::pw_aff set::dim_min(int pos) const
+schedule_node_band schedule_node_band::set_ast_build_options(isl::union_set options) const
{
- auto res = isl_set_dim_min(copy(), pos);
- return manage(res);
+ auto res = isl_schedule_node_band_set_ast_build_options(copy(), options.release());
+ return manage(res).as<schedule_node_band>();
}
-isl::val set::dim_min_val(int pos) const
+schedule_node_band schedule_node_band::set_permutable(int permutable) const
{
- auto res = isl_set_dim_min_val(copy(), pos);
- return manage(res);
+ auto res = isl_schedule_node_band_set_permutable(copy(), permutable);
+ return manage(res).as<schedule_node_band>();
}
-isl::set set::drop_constraints_involving_dims(isl::dim type, unsigned int first, unsigned int n) const
+schedule_node_band schedule_node_band::shift(isl::multi_union_pw_aff shift) const
{
- auto res = isl_set_drop_constraints_involving_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ auto res = isl_schedule_node_band_shift(copy(), shift.release());
+ return manage(res).as<schedule_node_band>();
}
-isl::set set::drop_constraints_not_involving_dims(isl::dim type, unsigned int first, unsigned int n) const
+schedule_node_band schedule_node_band::split(int pos) const
{
- auto res = isl_set_drop_constraints_not_involving_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ auto res = isl_schedule_node_band_split(copy(), pos);
+ return manage(res).as<schedule_node_band>();
}
-isl::set set::drop_unused_params() const
+schedule_node_band schedule_node_band::tile(isl::multi_val sizes) const
{
- auto res = isl_set_drop_unused_params(copy());
- return manage(res);
+ auto res = isl_schedule_node_band_tile(copy(), sizes.release());
+ return manage(res).as<schedule_node_band>();
}
-isl::set set::eliminate(isl::dim type, unsigned int first, unsigned int n) const
+schedule_node_band schedule_node_band::member_set_ast_loop_default(int pos) const
{
- auto res = isl_set_eliminate(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ auto res = isl_schedule_node_band_member_set_ast_loop_type(copy(), pos, isl_ast_loop_default);
+ return manage(res).as<schedule_node_band>();
}
-isl::set set::empty(isl::space space)
+schedule_node_band schedule_node_band::member_set_ast_loop_atomic(int pos) const
{
- auto res = isl_set_empty(space.release());
- return manage(res);
+ auto res = isl_schedule_node_band_member_set_ast_loop_type(copy(), pos, isl_ast_loop_atomic);
+ return manage(res).as<schedule_node_band>();
}
-isl::set set::equate(isl::dim type1, int pos1, isl::dim type2, int pos2) const
+schedule_node_band schedule_node_band::member_set_ast_loop_unroll(int pos) const
{
- auto res = isl_set_equate(copy(), static_cast<enum isl_dim_type>(type1), pos1, static_cast<enum isl_dim_type>(type2), pos2);
- return manage(res);
+ auto res = isl_schedule_node_band_member_set_ast_loop_type(copy(), pos, isl_ast_loop_unroll);
+ return manage(res).as<schedule_node_band>();
}
-int set::find_dim_by_id(isl::dim type, const isl::id &id) const
+schedule_node_band schedule_node_band::member_set_ast_loop_separate(int pos) const
{
- auto res = isl_set_find_dim_by_id(get(), static_cast<enum isl_dim_type>(type), id.get());
- return res;
+ auto res = isl_schedule_node_band_member_set_ast_loop_type(copy(), pos, isl_ast_loop_separate);
+ return manage(res).as<schedule_node_band>();
}
-int set::find_dim_by_name(isl::dim type, const std::string &name) const
+inline std::ostream &operator<<(std::ostream &os, const schedule_node_band &obj)
{
- auto res = isl_set_find_dim_by_name(get(), static_cast<enum isl_dim_type>(type), name.c_str());
- return res;
+ char *str = isl_schedule_node_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::set set::fix_si(isl::dim type, unsigned int pos, int value) const
+// implementations for isl::schedule_node_context
+schedule_node_context::schedule_node_context()
+ : schedule_node() {}
+
+schedule_node_context::schedule_node_context(const schedule_node_context &obj)
+ : schedule_node(obj)
{
- auto res = isl_set_fix_si(copy(), static_cast<enum isl_dim_type>(type), pos, value);
- return manage(res);
}
-isl::set set::fix_val(isl::dim type, unsigned int pos, isl::val v) const
-{
- auto res = isl_set_fix_val(copy(), static_cast<enum isl_dim_type>(type), pos, v.release());
- return manage(res);
+schedule_node_context::schedule_node_context(__isl_take isl_schedule_node *ptr)
+ : schedule_node(ptr) {}
+
+schedule_node_context &schedule_node_context::operator=(schedule_node_context obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-isl::set set::flat_product(isl::set set2) const
-{
- auto res = isl_set_flat_product(copy(), set2.release());
- return manage(res);
+isl::ctx schedule_node_context::ctx() const {
+ return isl::ctx(isl_schedule_node_get_ctx(ptr));
}
-isl::set set::flatten() const
+isl::set schedule_node_context::context() const
{
- auto res = isl_set_flatten(copy());
+ auto res = isl_schedule_node_context_get_context(get());
return manage(res);
}
-isl::map set::flatten_map() const
+isl::set schedule_node_context::get_context() const
{
- auto res = isl_set_flatten_map(copy());
- return manage(res);
+ return context();
}
-int set::follows_at(const isl::set &set2, int pos) const
+inline std::ostream &operator<<(std::ostream &os, const schedule_node_context &obj)
{
- auto res = isl_set_follows_at(get(), set2.get(), pos);
- return res;
+ char *str = isl_schedule_node_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-stat set::foreach_basic_set(const std::function<stat(basic_set)> &fn) const
+// implementations for isl::schedule_node_domain
+schedule_node_domain::schedule_node_domain()
+ : schedule_node() {}
+
+schedule_node_domain::schedule_node_domain(const schedule_node_domain &obj)
+ : schedule_node(obj)
{
- struct fn_data {
- const std::function<stat(basic_set)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_basic_set *arg_0, void *arg_1) -> isl_stat {
- auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
- return ret.release();
- };
- auto res = isl_set_foreach_basic_set(get(), fn_lambda, &fn_data);
- return manage(res);
}
-stat set::foreach_point(const std::function<stat(point)> &fn) const
-{
- struct fn_data {
- const std::function<stat(point)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_point *arg_0, void *arg_1) -> isl_stat {
- auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
- return ret.release();
- };
- auto res = isl_set_foreach_point(get(), fn_lambda, &fn_data);
- return manage(res);
+schedule_node_domain::schedule_node_domain(__isl_take isl_schedule_node *ptr)
+ : schedule_node(ptr) {}
+
+schedule_node_domain &schedule_node_domain::operator=(schedule_node_domain obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-isl::set set::from_multi_aff(isl::multi_aff ma)
-{
- auto res = isl_set_from_multi_aff(ma.release());
- return manage(res);
+isl::ctx schedule_node_domain::ctx() const {
+ return isl::ctx(isl_schedule_node_get_ctx(ptr));
}
-isl::set set::from_multi_pw_aff(isl::multi_pw_aff mpa)
+isl::union_set schedule_node_domain::domain() const
{
- auto res = isl_set_from_multi_pw_aff(mpa.release());
+ auto res = isl_schedule_node_domain_get_domain(get());
return manage(res);
}
-isl::set set::from_params() const
+isl::union_set schedule_node_domain::get_domain() const
{
- auto res = isl_set_from_params(copy());
- return manage(res);
+ return domain();
}
-isl::set set::from_pw_aff(isl::pw_aff pwaff)
+inline std::ostream &operator<<(std::ostream &os, const schedule_node_domain &obj)
{
- auto res = isl_set_from_pw_aff(pwaff.release());
- return manage(res);
+ char *str = isl_schedule_node_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::set set::from_pw_multi_aff(isl::pw_multi_aff pma)
+// implementations for isl::schedule_node_expansion
+schedule_node_expansion::schedule_node_expansion()
+ : schedule_node() {}
+
+schedule_node_expansion::schedule_node_expansion(const schedule_node_expansion &obj)
+ : schedule_node(obj)
{
- auto res = isl_set_from_pw_multi_aff(pma.release());
- return manage(res);
}
-isl::basic_set_list set::get_basic_set_list() const
-{
- auto res = isl_set_get_basic_set_list(get());
- return manage(res);
+schedule_node_expansion::schedule_node_expansion(__isl_take isl_schedule_node *ptr)
+ : schedule_node(ptr) {}
+
+schedule_node_expansion &schedule_node_expansion::operator=(schedule_node_expansion obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
+}
+
+isl::ctx schedule_node_expansion::ctx() const {
+ return isl::ctx(isl_schedule_node_get_ctx(ptr));
}
-isl::id set::get_dim_id(isl::dim type, unsigned int pos) const
+isl::union_pw_multi_aff schedule_node_expansion::contraction() const
{
- auto res = isl_set_get_dim_id(get(), static_cast<enum isl_dim_type>(type), pos);
+ auto res = isl_schedule_node_expansion_get_contraction(get());
return manage(res);
}
-std::string set::get_dim_name(isl::dim type, unsigned int pos) const
+isl::union_pw_multi_aff schedule_node_expansion::get_contraction() const
{
- auto res = isl_set_get_dim_name(get(), static_cast<enum isl_dim_type>(type), pos);
- std::string tmp(res);
- return tmp;
+ return contraction();
}
-isl::multi_val set::get_plain_multi_val_if_fixed() const
+isl::union_map schedule_node_expansion::expansion() const
{
- auto res = isl_set_get_plain_multi_val_if_fixed(get());
+ auto res = isl_schedule_node_expansion_get_expansion(get());
return manage(res);
}
-isl::fixed_box set::get_simple_fixed_box_hull() const
+isl::union_map schedule_node_expansion::get_expansion() const
{
- auto res = isl_set_get_simple_fixed_box_hull(get());
- return manage(res);
+ return expansion();
}
-isl::space set::get_space() const
+inline std::ostream &operator<<(std::ostream &os, const schedule_node_expansion &obj)
{
- auto res = isl_set_get_space(get());
- return manage(res);
+ char *str = isl_schedule_node_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::val set::get_stride(int pos) const
-{
- auto res = isl_set_get_stride(get(), pos);
- return manage(res);
-}
+// implementations for isl::schedule_node_extension
+schedule_node_extension::schedule_node_extension()
+ : schedule_node() {}
-isl::id set::get_tuple_id() const
+schedule_node_extension::schedule_node_extension(const schedule_node_extension &obj)
+ : schedule_node(obj)
{
- auto res = isl_set_get_tuple_id(get());
- return manage(res);
}
-std::string set::get_tuple_name() const
-{
- auto res = isl_set_get_tuple_name(get());
- std::string tmp(res);
- return tmp;
+schedule_node_extension::schedule_node_extension(__isl_take isl_schedule_node *ptr)
+ : schedule_node(ptr) {}
+
+schedule_node_extension &schedule_node_extension::operator=(schedule_node_extension obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-isl::set set::gist(isl::set context) const
-{
- auto res = isl_set_gist(copy(), context.release());
- return manage(res);
+isl::ctx schedule_node_extension::ctx() const {
+ return isl::ctx(isl_schedule_node_get_ctx(ptr));
}
-isl::set set::gist_basic_set(isl::basic_set context) const
+isl::union_map schedule_node_extension::extension() const
{
- auto res = isl_set_gist_basic_set(copy(), context.release());
+ auto res = isl_schedule_node_extension_get_extension(get());
return manage(res);
}
-isl::set set::gist_params(isl::set context) const
+isl::union_map schedule_node_extension::get_extension() const
{
- auto res = isl_set_gist_params(copy(), context.release());
- return manage(res);
+ return extension();
}
-boolean set::has_dim_id(isl::dim type, unsigned int pos) const
+inline std::ostream &operator<<(std::ostream &os, const schedule_node_extension &obj)
{
- auto res = isl_set_has_dim_id(get(), static_cast<enum isl_dim_type>(type), pos);
- return manage(res);
+ char *str = isl_schedule_node_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-boolean set::has_dim_name(isl::dim type, unsigned int pos) const
+// implementations for isl::schedule_node_filter
+schedule_node_filter::schedule_node_filter()
+ : schedule_node() {}
+
+schedule_node_filter::schedule_node_filter(const schedule_node_filter &obj)
+ : schedule_node(obj)
{
- auto res = isl_set_has_dim_name(get(), static_cast<enum isl_dim_type>(type), pos);
- return manage(res);
}
-boolean set::has_equal_space(const isl::set &set2) const
-{
- auto res = isl_set_has_equal_space(get(), set2.get());
- return manage(res);
+schedule_node_filter::schedule_node_filter(__isl_take isl_schedule_node *ptr)
+ : schedule_node(ptr) {}
+
+schedule_node_filter &schedule_node_filter::operator=(schedule_node_filter obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-boolean set::has_tuple_id() const
-{
- auto res = isl_set_has_tuple_id(get());
- return manage(res);
+isl::ctx schedule_node_filter::ctx() const {
+ return isl::ctx(isl_schedule_node_get_ctx(ptr));
}
-boolean set::has_tuple_name() const
+isl::union_set schedule_node_filter::filter() const
{
- auto res = isl_set_has_tuple_name(get());
+ auto res = isl_schedule_node_filter_get_filter(get());
return manage(res);
}
-isl::map set::identity() const
+isl::union_set schedule_node_filter::get_filter() const
{
- auto res = isl_set_identity(copy());
- return manage(res);
+ return filter();
}
-isl::pw_aff set::indicator_function() const
+inline std::ostream &operator<<(std::ostream &os, const schedule_node_filter &obj)
{
- auto res = isl_set_indicator_function(copy());
- return manage(res);
+ char *str = isl_schedule_node_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::set set::insert_dims(isl::dim type, unsigned int pos, unsigned int n) const
+// implementations for isl::schedule_node_guard
+schedule_node_guard::schedule_node_guard()
+ : schedule_node() {}
+
+schedule_node_guard::schedule_node_guard(const schedule_node_guard &obj)
+ : schedule_node(obj)
{
- auto res = isl_set_insert_dims(copy(), static_cast<enum isl_dim_type>(type), pos, n);
- return manage(res);
}
-isl::map set::insert_domain(isl::space domain) const
-{
- auto res = isl_set_insert_domain(copy(), domain.release());
- return manage(res);
+schedule_node_guard::schedule_node_guard(__isl_take isl_schedule_node *ptr)
+ : schedule_node(ptr) {}
+
+schedule_node_guard &schedule_node_guard::operator=(schedule_node_guard obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-isl::set set::intersect(isl::set set2) const
-{
- auto res = isl_set_intersect(copy(), set2.release());
- return manage(res);
+isl::ctx schedule_node_guard::ctx() const {
+ return isl::ctx(isl_schedule_node_get_ctx(ptr));
}
-isl::set set::intersect_factor_domain(isl::set domain) const
+isl::set schedule_node_guard::guard() const
{
- auto res = isl_set_intersect_factor_domain(copy(), domain.release());
+ auto res = isl_schedule_node_guard_get_guard(get());
return manage(res);
}
-isl::set set::intersect_factor_range(isl::set range) const
+isl::set schedule_node_guard::get_guard() const
{
- auto res = isl_set_intersect_factor_range(copy(), range.release());
- return manage(res);
+ return guard();
}
-isl::set set::intersect_params(isl::set params) const
+inline std::ostream &operator<<(std::ostream &os, const schedule_node_guard &obj)
{
- auto res = isl_set_intersect_params(copy(), params.release());
- return manage(res);
+ char *str = isl_schedule_node_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-boolean set::involves_dims(isl::dim type, unsigned int first, unsigned int n) const
+// implementations for isl::schedule_node_leaf
+schedule_node_leaf::schedule_node_leaf()
+ : schedule_node() {}
+
+schedule_node_leaf::schedule_node_leaf(const schedule_node_leaf &obj)
+ : schedule_node(obj)
{
- auto res = isl_set_involves_dims(get(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
}
-boolean set::involves_locals() const
-{
- auto res = isl_set_involves_locals(get());
- return manage(res);
+schedule_node_leaf::schedule_node_leaf(__isl_take isl_schedule_node *ptr)
+ : schedule_node(ptr) {}
+
+schedule_node_leaf &schedule_node_leaf::operator=(schedule_node_leaf obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-boolean set::is_bounded() const
-{
- auto res = isl_set_is_bounded(get());
- return manage(res);
+isl::ctx schedule_node_leaf::ctx() const {
+ return isl::ctx(isl_schedule_node_get_ctx(ptr));
}
-boolean set::is_box() const
+inline std::ostream &operator<<(std::ostream &os, const schedule_node_leaf &obj)
{
- auto res = isl_set_is_box(get());
- return manage(res);
+ char *str = isl_schedule_node_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-boolean set::is_disjoint(const isl::set &set2) const
+// implementations for isl::schedule_node_mark
+schedule_node_mark::schedule_node_mark()
+ : schedule_node() {}
+
+schedule_node_mark::schedule_node_mark(const schedule_node_mark &obj)
+ : schedule_node(obj)
{
- auto res = isl_set_is_disjoint(get(), set2.get());
- return manage(res);
}
-boolean set::is_empty() const
-{
- auto res = isl_set_is_empty(get());
- return manage(res);
+schedule_node_mark::schedule_node_mark(__isl_take isl_schedule_node *ptr)
+ : schedule_node(ptr) {}
+
+schedule_node_mark &schedule_node_mark::operator=(schedule_node_mark obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-boolean set::is_equal(const isl::set &set2) const
-{
- auto res = isl_set_is_equal(get(), set2.get());
- return manage(res);
+isl::ctx schedule_node_mark::ctx() const {
+ return isl::ctx(isl_schedule_node_get_ctx(ptr));
}
-boolean set::is_params() const
+isl::id schedule_node_mark::id() const
{
- auto res = isl_set_is_params(get());
+ auto res = isl_schedule_node_mark_get_id(get());
return manage(res);
}
-boolean set::is_singleton() const
+isl::id schedule_node_mark::get_id() const
{
- auto res = isl_set_is_singleton(get());
- return manage(res);
+ return id();
}
-boolean set::is_strict_subset(const isl::set &set2) const
+inline std::ostream &operator<<(std::ostream &os, const schedule_node_mark &obj)
{
- auto res = isl_set_is_strict_subset(get(), set2.get());
- return manage(res);
+ char *str = isl_schedule_node_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-boolean set::is_subset(const isl::set &set2) const
+// implementations for isl::schedule_node_sequence
+schedule_node_sequence::schedule_node_sequence()
+ : schedule_node() {}
+
+schedule_node_sequence::schedule_node_sequence(const schedule_node_sequence &obj)
+ : schedule_node(obj)
{
- auto res = isl_set_is_subset(get(), set2.get());
- return manage(res);
}
-boolean set::is_wrapping() const
-{
- auto res = isl_set_is_wrapping(get());
- return manage(res);
+schedule_node_sequence::schedule_node_sequence(__isl_take isl_schedule_node *ptr)
+ : schedule_node(ptr) {}
+
+schedule_node_sequence &schedule_node_sequence::operator=(schedule_node_sequence obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-isl::map set::lex_ge_set(isl::set set2) const
-{
- auto res = isl_set_lex_ge_set(copy(), set2.release());
- return manage(res);
+isl::ctx schedule_node_sequence::ctx() const {
+ return isl::ctx(isl_schedule_node_get_ctx(ptr));
}
-isl::map set::lex_gt_set(isl::set set2) const
+inline std::ostream &operator<<(std::ostream &os, const schedule_node_sequence &obj)
{
- auto res = isl_set_lex_gt_set(copy(), set2.release());
- return manage(res);
+ char *str = isl_schedule_node_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::map set::lex_lt_set(isl::set set2) const
+// implementations for isl::schedule_node_set
+schedule_node_set::schedule_node_set()
+ : schedule_node() {}
+
+schedule_node_set::schedule_node_set(const schedule_node_set &obj)
+ : schedule_node(obj)
{
- auto res = isl_set_lex_lt_set(copy(), set2.release());
- return manage(res);
}
-isl::set set::lexmax() const
-{
- auto res = isl_set_lexmax(copy());
- return manage(res);
+schedule_node_set::schedule_node_set(__isl_take isl_schedule_node *ptr)
+ : schedule_node(ptr) {}
+
+schedule_node_set &schedule_node_set::operator=(schedule_node_set obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-isl::pw_multi_aff set::lexmax_pw_multi_aff() const
-{
- auto res = isl_set_lexmax_pw_multi_aff(copy());
- return manage(res);
+isl::ctx schedule_node_set::ctx() const {
+ return isl::ctx(isl_schedule_node_get_ctx(ptr));
}
-isl::set set::lexmin() const
+inline std::ostream &operator<<(std::ostream &os, const schedule_node_set &obj)
{
- auto res = isl_set_lexmin(copy());
- return manage(res);
+ char *str = isl_schedule_node_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::pw_multi_aff set::lexmin_pw_multi_aff() const
-{
- auto res = isl_set_lexmin_pw_multi_aff(copy());
- return manage(res);
+// implementations for isl::set
+set manage(__isl_take isl_set *ptr) {
+ return set(ptr);
+}
+set manage_copy(__isl_keep isl_set *ptr) {
+ ptr = isl_set_copy(ptr);
+ return set(ptr);
}
-isl::set set::lower_bound(isl::multi_pw_aff lower) const
+set::set()
+ : ptr(nullptr) {}
+
+set::set(const set &obj)
+ : ptr(nullptr)
{
- auto res = isl_set_lower_bound_multi_pw_aff(copy(), lower.release());
- return manage(res);
+ ptr = obj.copy();
}
-isl::set set::lower_bound(isl::multi_val lower) const
+set::set(__isl_take isl_set *ptr)
+ : ptr(ptr) {}
+
+set::set(isl::basic_set bset)
{
- auto res = isl_set_lower_bound_multi_val(copy(), lower.release());
- return manage(res);
+ auto res = isl_set_from_basic_set(bset.release());
+ ptr = res;
}
-isl::set set::lower_bound_si(isl::dim type, unsigned int pos, int value) const
+set::set(isl::point pnt)
{
- auto res = isl_set_lower_bound_si(copy(), static_cast<enum isl_dim_type>(type), pos, value);
- return manage(res);
+ auto res = isl_set_from_point(pnt.release());
+ ptr = res;
}
-isl::set set::lower_bound_val(isl::dim type, unsigned int pos, isl::val value) const
+set::set(isl::union_set uset)
{
- auto res = isl_set_lower_bound_val(copy(), static_cast<enum isl_dim_type>(type), pos, value.release());
- return manage(res);
+ auto res = isl_set_from_union_set(uset.release());
+ ptr = res;
}
-isl::multi_pw_aff set::max_multi_pw_aff() const
+set::set(isl::ctx ctx, const std::string &str)
{
- auto res = isl_set_max_multi_pw_aff(copy());
- return manage(res);
+ auto res = isl_set_read_from_str(ctx.release(), str.c_str());
+ ptr = res;
}
-isl::val set::max_val(const isl::aff &obj) const
-{
- auto res = isl_set_max_val(get(), obj.get());
- return manage(res);
+set &set::operator=(set obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-isl::multi_pw_aff set::min_multi_pw_aff() const
-{
- auto res = isl_set_min_multi_pw_aff(copy());
- return manage(res);
+set::~set() {
+ if (ptr)
+ isl_set_free(ptr);
}
-isl::val set::min_val(const isl::aff &obj) const
-{
- auto res = isl_set_min_val(get(), obj.get());
- return manage(res);
+__isl_give isl_set *set::copy() const & {
+ return isl_set_copy(ptr);
}
-isl::set set::move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const
-{
- auto res = isl_set_move_dims(copy(), static_cast<enum isl_dim_type>(dst_type), dst_pos, static_cast<enum isl_dim_type>(src_type), src_pos, n);
- return manage(res);
+__isl_keep isl_set *set::get() const {
+ return ptr;
}
-isl_size set::n_basic_set() const
-{
- auto res = isl_set_n_basic_set(get());
- return res;
+__isl_give isl_set *set::release() {
+ isl_set *tmp = ptr;
+ ptr = nullptr;
+ return tmp;
}
-isl_size set::n_dim() const
-{
- auto res = isl_set_n_dim(get());
- return res;
+bool set::is_null() const {
+ return ptr == nullptr;
}
-isl::set set::nat_universe(isl::space space)
-{
- auto res = isl_set_nat_universe(space.release());
- return manage(res);
+isl::ctx set::ctx() const {
+ return isl::ctx(isl_set_get_ctx(ptr));
}
-isl::set set::neg() const
+isl::set set::add_constraint(isl::constraint constraint) const
{
- auto res = isl_set_neg(copy());
+ auto res = isl_set_add_constraint(copy(), constraint.release());
return manage(res);
}
-isl::set set::params() const
+isl::set set::add_dims(isl::dim type, unsigned int n) const
{
- auto res = isl_set_params(copy());
+ auto res = isl_set_add_dims(copy(), static_cast<enum isl_dim_type>(type), n);
return manage(res);
}
-int set::plain_cmp(const isl::set &set2) const
+isl::basic_set set::affine_hull() const
{
- auto res = isl_set_plain_cmp(get(), set2.get());
- return res;
+ auto res = isl_set_affine_hull(copy());
+ return manage(res);
}
-isl::val set::plain_get_val_if_fixed(isl::dim type, unsigned int pos) const
+isl::set set::align_params(isl::space model) const
{
- auto res = isl_set_plain_get_val_if_fixed(get(), static_cast<enum isl_dim_type>(type), pos);
+ auto res = isl_set_align_params(copy(), model.release());
return manage(res);
}
-boolean set::plain_is_disjoint(const isl::set &set2) const
+isl::set set::apply(isl::map map) const
{
- auto res = isl_set_plain_is_disjoint(get(), set2.get());
+ auto res = isl_set_apply(copy(), map.release());
return manage(res);
}
-boolean set::plain_is_empty() const
+isl::union_set set::apply(const isl::union_map &umap) const
{
- auto res = isl_set_plain_is_empty(get());
- return manage(res);
+ return isl::union_set(*this).apply(umap);
}
-boolean set::plain_is_equal(const isl::set &set2) const
+isl::set set::apply(const isl::basic_map &map) const
{
- auto res = isl_set_plain_is_equal(get(), set2.get());
- return manage(res);
+ return this->apply(isl::map(map));
}
-boolean set::plain_is_universe() const
+isl::pw_multi_aff set::as_pw_multi_aff() const
{
- auto res = isl_set_plain_is_universe(get());
+ auto res = isl_set_as_pw_multi_aff(copy());
return manage(res);
}
-isl::basic_set set::plain_unshifted_simple_hull() const
+isl::set set::as_set() const
{
- auto res = isl_set_plain_unshifted_simple_hull(copy());
- return manage(res);
+ return isl::union_set(*this).as_set();
}
-isl::basic_set set::polyhedral_hull() const
+isl::basic_set_list set::basic_set_list() const
{
- auto res = isl_set_polyhedral_hull(copy());
+ auto res = isl_set_get_basic_set_list(get());
return manage(res);
}
-isl::set set::preimage(isl::multi_aff ma) const
+isl::basic_set_list set::get_basic_set_list() const
{
- auto res = isl_set_preimage_multi_aff(copy(), ma.release());
- return manage(res);
+ return basic_set_list();
}
-isl::set set::preimage(isl::multi_pw_aff mpa) const
+isl::set set::bind(isl::multi_id tuple) const
{
- auto res = isl_set_preimage_multi_pw_aff(copy(), mpa.release());
+ auto res = isl_set_bind(copy(), tuple.release());
return manage(res);
}
-isl::set set::preimage(isl::pw_multi_aff pma) const
+isl::set set::coalesce() const
{
- auto res = isl_set_preimage_pw_multi_aff(copy(), pma.release());
+ auto res = isl_set_coalesce(copy());
return manage(res);
}
-isl::set set::product(isl::set set2) const
+isl::set set::complement() const
{
- auto res = isl_set_product(copy(), set2.release());
+ auto res = isl_set_complement(copy());
return manage(res);
}
-isl::map set::project_onto_map(isl::dim type, unsigned int first, unsigned int n) const
+isl::union_set set::compute_divs() const
{
- auto res = isl_set_project_onto_map(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::union_set(*this).compute_divs();
}
-isl::set set::project_out(isl::dim type, unsigned int first, unsigned int n) const
+boolean set::contains(const isl::space &space) const
{
- auto res = isl_set_project_out(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::union_set(*this).contains(space);
}
-isl::set set::project_out_all_params() const
+isl::basic_set set::convex_hull() const
{
- auto res = isl_set_project_out_all_params(copy());
+ auto res = isl_set_convex_hull(copy());
return manage(res);
}
-isl::set set::project_out_param(isl::id id) const
+isl::set set::detect_equalities() const
{
- auto res = isl_set_project_out_param_id(copy(), id.release());
+ auto res = isl_set_detect_equalities(copy());
return manage(res);
}
-isl::set set::project_out_param(isl::id_list list) const
+class size set::dim(isl::dim type) const
{
- auto res = isl_set_project_out_param_id_list(copy(), list.release());
+ auto res = isl_set_dim(get(), static_cast<enum isl_dim_type>(type));
return manage(res);
}
-isl::set set::remove_dims(isl::dim type, unsigned int first, unsigned int n) const
+boolean set::dim_has_any_lower_bound(isl::dim type, unsigned int pos) const
{
- auto res = isl_set_remove_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
+ auto res = isl_set_dim_has_any_lower_bound(get(), static_cast<enum isl_dim_type>(type), pos);
return manage(res);
}
-isl::set set::remove_divs() const
+isl::id set::dim_id(isl::dim type, unsigned int pos) const
{
- auto res = isl_set_remove_divs(copy());
+ auto res = isl_set_get_dim_id(get(), static_cast<enum isl_dim_type>(type), pos);
return manage(res);
}
-isl::set set::remove_divs_involving_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::id set::get_dim_id(isl::dim type, unsigned int pos) const
{
- auto res = isl_set_remove_divs_involving_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return dim_id(type, pos);
}
-isl::set set::remove_redundancies() const
+isl::pw_aff set::dim_max(int pos) const
{
- auto res = isl_set_remove_redundancies(copy());
+ auto res = isl_set_dim_max(copy(), pos);
return manage(res);
}
-isl::set set::remove_unknown_divs() const
+isl::val set::dim_max_val(int pos) const
{
- auto res = isl_set_remove_unknown_divs(copy());
+ auto res = isl_set_dim_max_val(copy(), pos);
return manage(res);
}
-isl::set set::reset_space(isl::space space) const
+isl::pw_aff set::dim_min(int pos) const
{
- auto res = isl_set_reset_space(copy(), space.release());
+ auto res = isl_set_dim_min(copy(), pos);
return manage(res);
}
-isl::set set::reset_tuple_id() const
+isl::val set::dim_min_val(int pos) const
{
- auto res = isl_set_reset_tuple_id(copy());
+ auto res = isl_set_dim_min_val(copy(), pos);
return manage(res);
}
-isl::set set::reset_user() const
+std::string set::dim_name(isl::dim type, unsigned int pos) const
{
- auto res = isl_set_reset_user(copy());
- return manage(res);
+ auto res = isl_set_get_dim_name(get(), static_cast<enum isl_dim_type>(type), pos);
+ std::string tmp(res);
+ return tmp;
}
-isl::basic_set set::sample() const
+std::string set::get_dim_name(isl::dim type, unsigned int pos) const
{
- auto res = isl_set_sample(copy());
- return manage(res);
+ return dim_name(type, pos);
}
-isl::point set::sample_point() const
+isl::set set::drop_constraints_involving_dims(isl::dim type, unsigned int first, unsigned int n) const
{
- auto res = isl_set_sample_point(copy());
+ auto res = isl_set_drop_constraints_involving_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
return manage(res);
}
-isl::set set::set_dim_id(isl::dim type, unsigned int pos, isl::id id) const
+isl::set set::eliminate(isl::dim type, unsigned int first, unsigned int n) const
{
- auto res = isl_set_set_dim_id(copy(), static_cast<enum isl_dim_type>(type), pos, id.release());
+ auto res = isl_set_eliminate(copy(), static_cast<enum isl_dim_type>(type), first, n);
return manage(res);
}
-isl::set set::set_tuple_id(isl::id id) const
+isl::set set::empty(isl::space space)
{
- auto res = isl_set_set_tuple_id(copy(), id.release());
+ auto res = isl_set_empty(space.release());
return manage(res);
}
-isl::set set::set_tuple_name(const std::string &s) const
+boolean set::every_set(const std::function<boolean(isl::set)> &test) const
{
- auto res = isl_set_set_tuple_name(copy(), s.c_str());
- return manage(res);
+ return isl::union_set(*this).every_set(test);
}
-isl::basic_set set::simple_hull() const
+isl::set set::extract_set(const isl::space &space) const
{
- auto res = isl_set_simple_hull(copy());
- return manage(res);
+ return isl::union_set(*this).extract_set(space);
}
-int set::size() const
+int set::find_dim_by_id(isl::dim type, const isl::id &id) const
{
- auto res = isl_set_size(get());
+ auto res = isl_set_find_dim_by_id(get(), static_cast<enum isl_dim_type>(type), id.get());
return res;
}
-isl::basic_set set::solutions() const
+int set::find_dim_by_id(isl::dim type, const std::string &id) const
{
- auto res = isl_set_solutions(copy());
- return manage(res);
+ return this->find_dim_by_id(type, isl::id(ctx(), id));
}
-isl::set set::split_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::set set::fix_si(isl::dim type, unsigned int pos, int value) const
{
- auto res = isl_set_split_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
+ auto res = isl_set_fix_si(copy(), static_cast<enum isl_dim_type>(type), pos, value);
return manage(res);
}
-isl::set set::subtract(isl::set set2) const
+isl::set set::flatten() const
{
- auto res = isl_set_subtract(copy(), set2.release());
+ auto res = isl_set_flatten(copy());
return manage(res);
}
-isl::set set::sum(isl::set set2) const
+stat set::foreach_basic_set(const std::function<stat(isl::basic_set)> &fn) const
{
- auto res = isl_set_sum(copy(), set2.release());
+ struct fn_data {
+ std::function<stat(isl::basic_set)> func;
+ } fn_data = { fn };
+ auto fn_lambda = [](isl_basic_set *arg_0, void *arg_1) -> isl_stat {
+ auto *data = static_cast<struct fn_data *>(arg_1);
+ auto ret = (data->func)(manage(arg_0));
+ return ret.release();
+ };
+ auto res = isl_set_foreach_basic_set(get(), fn_lambda, &fn_data);
return manage(res);
}
-isl::map set::translation() const
+stat set::foreach_point(const std::function<stat(isl::point)> &fn) const
{
- auto res = isl_set_translation(copy());
+ struct fn_data {
+ std::function<stat(isl::point)> func;
+ } fn_data = { fn };
+ auto fn_lambda = [](isl_point *arg_0, void *arg_1) -> isl_stat {
+ auto *data = static_cast<struct fn_data *>(arg_1);
+ auto ret = (data->func)(manage(arg_0));
+ return ret.release();
+ };
+ auto res = isl_set_foreach_point(get(), fn_lambda, &fn_data);
return manage(res);
}
-isl_size set::tuple_dim() const
+stat set::foreach_set(const std::function<stat(isl::set)> &fn) const
{
- auto res = isl_set_tuple_dim(get());
- return res;
+ return isl::union_set(*this).foreach_set(fn);
}
-isl::set set::unbind_params(isl::multi_id tuple) const
+isl::set set::gist(isl::set context) const
{
- auto res = isl_set_unbind_params(copy(), tuple.release());
+ auto res = isl_set_gist(copy(), context.release());
return manage(res);
}
-isl::map set::unbind_params_insert_domain(isl::multi_id domain) const
+isl::union_set set::gist(const isl::union_set &context) const
{
- auto res = isl_set_unbind_params_insert_domain(copy(), domain.release());
- return manage(res);
+ return isl::union_set(*this).gist(context);
}
-isl::set set::unite(isl::set set2) const
+isl::set set::gist(const isl::basic_set &context) const
{
- auto res = isl_set_union(copy(), set2.release());
- return manage(res);
+ return this->gist(isl::set(context));
}
-isl::set set::universe(isl::space space)
+isl::set set::gist(const isl::point &context) const
{
- auto res = isl_set_universe(space.release());
- return manage(res);
+ return this->gist(isl::set(context));
}
-isl::basic_set set::unshifted_simple_hull() const
+isl::set set::gist_params(isl::set context) const
{
- auto res = isl_set_unshifted_simple_hull(copy());
+ auto res = isl_set_gist_params(copy(), context.release());
return manage(res);
}
-isl::basic_set set::unshifted_simple_hull_from_set_list(isl::set_list list) const
+boolean set::has_equal_space(const isl::set &set2) const
{
- auto res = isl_set_unshifted_simple_hull_from_set_list(copy(), list.release());
+ auto res = isl_set_has_equal_space(get(), set2.get());
return manage(res);
}
-isl::map set::unwrap() const
+isl::map set::identity() const
{
- auto res = isl_set_unwrap(copy());
+ auto res = isl_set_identity(copy());
return manage(res);
}
-isl::set set::upper_bound(isl::multi_pw_aff upper) const
+isl::union_pw_multi_aff set::identity_union_pw_multi_aff() const
{
- auto res = isl_set_upper_bound_multi_pw_aff(copy(), upper.release());
- return manage(res);
+ return isl::union_set(*this).identity_union_pw_multi_aff();
}
-isl::set set::upper_bound(isl::multi_val upper) const
+isl::pw_aff set::indicator_function() const
{
- auto res = isl_set_upper_bound_multi_val(copy(), upper.release());
+ auto res = isl_set_indicator_function(copy());
return manage(res);
}
-isl::set set::upper_bound_si(isl::dim type, unsigned int pos, int value) const
+isl::set set::insert_dims(isl::dim type, unsigned int pos, unsigned int n) const
{
- auto res = isl_set_upper_bound_si(copy(), static_cast<enum isl_dim_type>(type), pos, value);
+ auto res = isl_set_insert_dims(copy(), static_cast<enum isl_dim_type>(type), pos, n);
return manage(res);
}
-isl::set set::upper_bound_val(isl::dim type, unsigned int pos, isl::val value) const
+isl::map set::insert_domain(isl::space domain) const
{
- auto res = isl_set_upper_bound_val(copy(), static_cast<enum isl_dim_type>(type), pos, value.release());
+ auto res = isl_set_insert_domain(copy(), domain.release());
return manage(res);
}
-isl::map set::wrapped_domain_map() const
+isl::set set::intersect(isl::set set2) const
{
- auto res = isl_set_wrapped_domain_map(copy());
+ auto res = isl_set_intersect(copy(), set2.release());
return manage(res);
}
-// implementations for isl::set_list
-set_list manage(__isl_take isl_set_list *ptr) {
- return set_list(ptr);
-}
-set_list manage_copy(__isl_keep isl_set_list *ptr) {
- ptr = isl_set_list_copy(ptr);
- return set_list(ptr);
-}
-
-set_list::set_list()
- : ptr(nullptr) {}
-
-set_list::set_list(const set_list &obj)
- : ptr(nullptr)
+isl::union_set set::intersect(const isl::union_set &uset2) const
{
- ptr = obj.copy();
-}
-
-
-set_list::set_list(__isl_take isl_set_list *ptr)
- : ptr(ptr) {}
-
-
-set_list &set_list::operator=(set_list obj) {
- std::swap(this->ptr, obj.ptr);
- return *this;
-}
-
-set_list::~set_list() {
- if (ptr)
- isl_set_list_free(ptr);
-}
-
-__isl_give isl_set_list *set_list::copy() const & {
- return isl_set_list_copy(ptr);
-}
-
-__isl_keep isl_set_list *set_list::get() const {
- return ptr;
-}
-
-__isl_give isl_set_list *set_list::release() {
- isl_set_list *tmp = ptr;
- ptr = nullptr;
- return tmp;
-}
-
-bool set_list::is_null() const {
- return ptr == nullptr;
-}
-
-
-isl::ctx set_list::ctx() const {
- return isl::ctx(isl_set_list_get_ctx(ptr));
-}
-
-void set_list::dump() const {
- isl_set_list_dump(get());
+ return isl::union_set(*this).intersect(uset2);
}
-
-isl::set_list set_list::add(isl::set el) const
+isl::set set::intersect(const isl::basic_set &set2) const
{
- auto res = isl_set_list_add(copy(), el.release());
- return manage(res);
+ return this->intersect(isl::set(set2));
}
-isl::set_list set_list::alloc(isl::ctx ctx, int n)
+isl::set set::intersect(const isl::point &set2) const
{
- auto res = isl_set_list_alloc(ctx.release(), n);
- return manage(res);
+ return this->intersect(isl::set(set2));
}
-isl::set_list set_list::clear() const
+isl::set set::intersect_params(isl::set params) const
{
- auto res = isl_set_list_clear(copy());
+ auto res = isl_set_intersect_params(copy(), params.release());
return manage(res);
}
-isl::set_list set_list::concat(isl::set_list list2) const
+boolean set::involves_dims(isl::dim type, unsigned int first, unsigned int n) const
{
- auto res = isl_set_list_concat(copy(), list2.release());
+ auto res = isl_set_involves_dims(get(), static_cast<enum isl_dim_type>(type), first, n);
return manage(res);
}
-isl::set_list set_list::drop(unsigned int first, unsigned int n) const
+boolean set::involves_locals() const
{
- auto res = isl_set_list_drop(copy(), first, n);
+ auto res = isl_set_involves_locals(get());
return manage(res);
}
-stat set_list::foreach(const std::function<stat(set)> &fn) const
+boolean set::is_bounded() const
{
- struct fn_data {
- const std::function<stat(set)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_set *arg_0, void *arg_1) -> isl_stat {
- auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
- return ret.release();
- };
- auto res = isl_set_list_foreach(get(), fn_lambda, &fn_data);
+ auto res = isl_set_is_bounded(get());
return manage(res);
}
-isl::set_list set_list::from_set(isl::set el)
+boolean set::is_disjoint(const isl::set &set2) const
{
- auto res = isl_set_list_from_set(el.release());
+ auto res = isl_set_is_disjoint(get(), set2.get());
return manage(res);
}
-isl::set set_list::get_at(int index) const
+boolean set::is_disjoint(const isl::union_set &uset2) const
{
- auto res = isl_set_list_get_at(get(), index);
- return manage(res);
+ return isl::union_set(*this).is_disjoint(uset2);
}
-isl::set set_list::get_set(int index) const
+boolean set::is_disjoint(const isl::basic_set &set2) const
{
- auto res = isl_set_list_get_set(get(), index);
- return manage(res);
+ return this->is_disjoint(isl::set(set2));
}
-isl::set_list set_list::insert(unsigned int pos, isl::set el) const
+boolean set::is_disjoint(const isl::point &set2) const
{
- auto res = isl_set_list_insert(copy(), pos, el.release());
- return manage(res);
+ return this->is_disjoint(isl::set(set2));
}
-isl_size set_list::n_set() const
+boolean set::is_empty() const
{
- auto res = isl_set_list_n_set(get());
- return res;
+ auto res = isl_set_is_empty(get());
+ return manage(res);
}
-isl::set_list set_list::reverse() const
+boolean set::is_equal(const isl::set &set2) const
{
- auto res = isl_set_list_reverse(copy());
+ auto res = isl_set_is_equal(get(), set2.get());
return manage(res);
}
-isl::set_list set_list::set_set(int index, isl::set el) const
+boolean set::is_equal(const isl::union_set &uset2) const
{
- auto res = isl_set_list_set_set(copy(), index, el.release());
- return manage(res);
+ return isl::union_set(*this).is_equal(uset2);
}
-isl_size set_list::size() const
+boolean set::is_equal(const isl::basic_set &set2) const
{
- auto res = isl_set_list_size(get());
- return res;
+ return this->is_equal(isl::set(set2));
}
-isl::set_list set_list::swap(unsigned int pos1, unsigned int pos2) const
+boolean set::is_equal(const isl::point &set2) const
{
- auto res = isl_set_list_swap(copy(), pos1, pos2);
- return manage(res);
+ return this->is_equal(isl::set(set2));
}
-isl::set set_list::unite() const
+boolean set::is_params() const
{
- auto res = isl_set_list_union(copy());
+ auto res = isl_set_is_params(get());
return manage(res);
}
-// implementations for isl::space
-space manage(__isl_take isl_space *ptr) {
- return space(ptr);
-}
-space manage_copy(__isl_keep isl_space *ptr) {
- ptr = isl_space_copy(ptr);
- return space(ptr);
-}
-
-space::space()
- : ptr(nullptr) {}
-
-space::space(const space &obj)
- : ptr(nullptr)
+boolean set::is_singleton() const
{
- ptr = obj.copy();
+ auto res = isl_set_is_singleton(get());
+ return manage(res);
}
-
-space::space(__isl_take isl_space *ptr)
- : ptr(ptr) {}
-
-space::space(isl::ctx ctx, unsigned int nparam, unsigned int n_in, unsigned int n_out)
+boolean set::is_strict_subset(const isl::set &set2) const
{
- auto res = isl_space_alloc(ctx.release(), nparam, n_in, n_out);
- ptr = res;
+ auto res = isl_set_is_strict_subset(get(), set2.get());
+ return manage(res);
}
-space::space(isl::ctx ctx, unsigned int nparam, unsigned int dim)
+
+boolean set::is_strict_subset(const isl::union_set &uset2) const
{
- auto res = isl_space_set_alloc(ctx.release(), nparam, dim);
- ptr = res;
+ return isl::union_set(*this).is_strict_subset(uset2);
}
-space &space::operator=(space obj) {
- std::swap(this->ptr, obj.ptr);
- return *this;
+boolean set::is_strict_subset(const isl::basic_set &set2) const
+{
+ return this->is_strict_subset(isl::set(set2));
}
-space::~space() {
- if (ptr)
- isl_space_free(ptr);
+boolean set::is_strict_subset(const isl::point &set2) const
+{
+ return this->is_strict_subset(isl::set(set2));
}
-__isl_give isl_space *space::copy() const & {
- return isl_space_copy(ptr);
+boolean set::is_subset(const isl::set &set2) const
+{
+ auto res = isl_set_is_subset(get(), set2.get());
+ return manage(res);
}
-__isl_keep isl_space *space::get() const {
- return ptr;
+boolean set::is_subset(const isl::union_set &uset2) const
+{
+ return isl::union_set(*this).is_subset(uset2);
}
-__isl_give isl_space *space::release() {
- isl_space *tmp = ptr;
- ptr = nullptr;
- return tmp;
+boolean set::is_subset(const isl::basic_set &set2) const
+{
+ return this->is_subset(isl::set(set2));
}
-bool space::is_null() const {
- return ptr == nullptr;
+boolean set::is_subset(const isl::point &set2) const
+{
+ return this->is_subset(isl::set(set2));
}
-
-isl::ctx space::ctx() const {
- return isl::ctx(isl_space_get_ctx(ptr));
+boolean set::is_wrapping() const
+{
+ auto res = isl_set_is_wrapping(get());
+ return manage(res);
}
-void space::dump() const {
- isl_space_dump(get());
+boolean set::isa_set() const
+{
+ return isl::union_set(*this).isa_set();
}
-
-isl::space space::add_dims(isl::dim type, unsigned int n) const
+isl::set set::lexmax() const
{
- auto res = isl_space_add_dims(copy(), static_cast<enum isl_dim_type>(type), n);
+ auto res = isl_set_lexmax(copy());
return manage(res);
}
-isl::space space::add_named_tuple(isl::id tuple_id, unsigned int dim) const
+isl::pw_multi_aff set::lexmax_pw_multi_aff() const
{
- auto res = isl_space_add_named_tuple_id_ui(copy(), tuple_id.release(), dim);
+ auto res = isl_set_lexmax_pw_multi_aff(copy());
return manage(res);
}
-isl::space space::add_param_id(isl::id id) const
+isl::set set::lexmin() const
{
- auto res = isl_space_add_param_id(copy(), id.release());
+ auto res = isl_set_lexmin(copy());
return manage(res);
}
-isl::space space::add_unnamed_tuple(unsigned int dim) const
+isl::pw_multi_aff set::lexmin_pw_multi_aff() const
{
- auto res = isl_space_add_unnamed_tuple_ui(copy(), dim);
+ auto res = isl_set_lexmin_pw_multi_aff(copy());
return manage(res);
}
-isl::space space::align_params(isl::space space2) const
+isl::set set::lower_bound(isl::multi_pw_aff lower) const
{
- auto res = isl_space_align_params(copy(), space2.release());
+ auto res = isl_set_lower_bound_multi_pw_aff(copy(), lower.release());
return manage(res);
}
-boolean space::can_curry() const
+isl::set set::lower_bound(isl::multi_val lower) const
{
- auto res = isl_space_can_curry(get());
+ auto res = isl_set_lower_bound_multi_val(copy(), lower.release());
return manage(res);
}
-boolean space::can_range_curry() const
+isl::set set::lower_bound_si(isl::dim type, unsigned int pos, int value) const
{
- auto res = isl_space_can_range_curry(get());
+ auto res = isl_set_lower_bound_si(copy(), static_cast<enum isl_dim_type>(type), pos, value);
return manage(res);
}
-boolean space::can_uncurry() const
+isl::set set::lower_bound_val(isl::dim type, unsigned int pos, isl::val value) const
{
- auto res = isl_space_can_uncurry(get());
+ auto res = isl_set_lower_bound_val(copy(), static_cast<enum isl_dim_type>(type), pos, value.release());
return manage(res);
}
-boolean space::can_zip() const
+isl::set set::lower_bound_val(isl::dim type, unsigned int pos, long value) const
{
- auto res = isl_space_can_zip(get());
- return manage(res);
+ return this->lower_bound_val(type, pos, isl::val(ctx(), value));
}
-isl::space space::curry() const
+isl::multi_pw_aff set::max_multi_pw_aff() const
{
- auto res = isl_space_curry(copy());
+ auto res = isl_set_max_multi_pw_aff(copy());
return manage(res);
}
-isl_size space::dim(isl::dim type) const
+isl::val set::max_val(const isl::aff &obj) const
{
- auto res = isl_space_dim(get(), static_cast<enum isl_dim_type>(type));
- return res;
+ auto res = isl_set_max_val(get(), obj.get());
+ return manage(res);
}
-isl::space space::domain() const
+isl::multi_pw_aff set::min_multi_pw_aff() const
{
- auto res = isl_space_domain(copy());
+ auto res = isl_set_min_multi_pw_aff(copy());
return manage(res);
}
-isl::space space::domain_factor_domain() const
+isl::val set::min_val(const isl::aff &obj) const
{
- auto res = isl_space_domain_factor_domain(copy());
+ auto res = isl_set_min_val(get(), obj.get());
return manage(res);
}
-isl::space space::domain_factor_range() const
+class size set::n_basic_set() const
{
- auto res = isl_space_domain_factor_range(copy());
+ auto res = isl_set_n_basic_set(get());
return manage(res);
}
-boolean space::domain_is_wrapping() const
+isl::set set::params() const
{
- auto res = isl_space_domain_is_wrapping(get());
+ auto res = isl_set_params(copy());
return manage(res);
}
-isl::space space::domain_map() const
+isl::val set::plain_get_val_if_fixed(isl::dim type, unsigned int pos) const
{
- auto res = isl_space_domain_map(copy());
+ auto res = isl_set_plain_get_val_if_fixed(get(), static_cast<enum isl_dim_type>(type), pos);
return manage(res);
}
-isl::space space::domain_product(isl::space right) const
+isl::multi_val set::plain_multi_val_if_fixed() const
{
- auto res = isl_space_domain_product(copy(), right.release());
+ auto res = isl_set_get_plain_multi_val_if_fixed(get());
return manage(res);
}
-isl::space space::drop_all_params() const
+isl::multi_val set::get_plain_multi_val_if_fixed() const
{
- auto res = isl_space_drop_all_params(copy());
- return manage(res);
+ return plain_multi_val_if_fixed();
}
-isl::space space::drop_dims(isl::dim type, unsigned int first, unsigned int num) const
+isl::basic_set set::polyhedral_hull() const
{
- auto res = isl_space_drop_dims(copy(), static_cast<enum isl_dim_type>(type), first, num);
+ auto res = isl_set_polyhedral_hull(copy());
return manage(res);
}
-isl::space space::factor_domain() const
+isl::set set::preimage(isl::multi_aff ma) const
{
- auto res = isl_space_factor_domain(copy());
+ auto res = isl_set_preimage_multi_aff(copy(), ma.release());
return manage(res);
}
-isl::space space::factor_range() const
+isl::set set::preimage(isl::multi_pw_aff mpa) const
{
- auto res = isl_space_factor_range(copy());
+ auto res = isl_set_preimage_multi_pw_aff(copy(), mpa.release());
return manage(res);
}
-int space::find_dim_by_id(isl::dim type, const isl::id &id) const
+isl::set set::preimage(isl::pw_multi_aff pma) const
{
- auto res = isl_space_find_dim_by_id(get(), static_cast<enum isl_dim_type>(type), id.get());
- return res;
+ auto res = isl_set_preimage_pw_multi_aff(copy(), pma.release());
+ return manage(res);
}
-int space::find_dim_by_name(isl::dim type, const std::string &name) const
+isl::union_set set::preimage(const isl::union_pw_multi_aff &upma) const
{
- auto res = isl_space_find_dim_by_name(get(), static_cast<enum isl_dim_type>(type), name.c_str());
- return res;
+ return isl::union_set(*this).preimage(upma);
}
-isl::space space::flatten_domain() const
+isl::set set::product(isl::set set2) const
{
- auto res = isl_space_flatten_domain(copy());
+ auto res = isl_set_product(copy(), set2.release());
return manage(res);
}
-isl::space space::flatten_range() const
+isl::set set::project_out(isl::dim type, unsigned int first, unsigned int n) const
{
- auto res = isl_space_flatten_range(copy());
+ auto res = isl_set_project_out(copy(), static_cast<enum isl_dim_type>(type), first, n);
return manage(res);
}
-isl::space space::from_domain() const
+isl::set set::project_out_all_params() const
{
- auto res = isl_space_from_domain(copy());
+ auto res = isl_set_project_out_all_params(copy());
return manage(res);
}
-isl::space space::from_range() const
+isl::set set::project_out_param(isl::id id) const
{
- auto res = isl_space_from_range(copy());
+ auto res = isl_set_project_out_param_id(copy(), id.release());
return manage(res);
}
-isl::id space::get_dim_id(isl::dim type, unsigned int pos) const
+isl::set set::project_out_param(const std::string &id) const
{
- auto res = isl_space_get_dim_id(get(), static_cast<enum isl_dim_type>(type), pos);
- return manage(res);
+ return this->project_out_param(isl::id(ctx(), id));
}
-std::string space::get_dim_name(isl::dim type, unsigned int pos) const
+isl::set set::project_out_param(isl::id_list list) const
{
- auto res = isl_space_get_dim_name(get(), static_cast<enum isl_dim_type>(type), pos);
- std::string tmp(res);
- return tmp;
+ auto res = isl_set_project_out_param_id_list(copy(), list.release());
+ return manage(res);
}
-isl::id space::get_tuple_id(isl::dim type) const
+isl::pw_multi_aff set::pw_multi_aff_on_domain(isl::multi_val mv) const
{
- auto res = isl_space_get_tuple_id(get(), static_cast<enum isl_dim_type>(type));
+ auto res = isl_set_pw_multi_aff_on_domain_multi_val(copy(), mv.release());
return manage(res);
}
-std::string space::get_tuple_name(isl::dim type) const
+isl::set set::remove_dims(isl::dim type, unsigned int first, unsigned int n) const
{
- auto res = isl_space_get_tuple_name(get(), static_cast<enum isl_dim_type>(type));
- std::string tmp(res);
- return tmp;
+ auto res = isl_set_remove_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
+ return manage(res);
}
-boolean space::has_dim_id(isl::dim type, unsigned int pos) const
+isl::set set::remove_divs() const
{
- auto res = isl_space_has_dim_id(get(), static_cast<enum isl_dim_type>(type), pos);
+ auto res = isl_set_remove_divs(copy());
return manage(res);
}
-boolean space::has_dim_name(isl::dim type, unsigned int pos) const
+isl::set set::remove_redundancies() const
{
- auto res = isl_space_has_dim_name(get(), static_cast<enum isl_dim_type>(type), pos);
+ auto res = isl_set_remove_redundancies(copy());
return manage(res);
}
-boolean space::has_equal_params(const isl::space &space2) const
+isl::set set::reset_tuple_id() const
{
- auto res = isl_space_has_equal_params(get(), space2.get());
+ auto res = isl_set_reset_tuple_id(copy());
return manage(res);
}
-boolean space::has_equal_tuples(const isl::space &space2) const
+isl::basic_set set::sample() const
{
- auto res = isl_space_has_equal_tuples(get(), space2.get());
+ auto res = isl_set_sample(copy());
return manage(res);
}
-boolean space::has_tuple_id(isl::dim type) const
+isl::point set::sample_point() const
{
- auto res = isl_space_has_tuple_id(get(), static_cast<enum isl_dim_type>(type));
+ auto res = isl_set_sample_point(copy());
return manage(res);
}
-boolean space::has_tuple_name(isl::dim type) const
+isl::set set::set_dim_id(isl::dim type, unsigned int pos, isl::id id) const
{
- auto res = isl_space_has_tuple_name(get(), static_cast<enum isl_dim_type>(type));
+ auto res = isl_set_set_dim_id(copy(), static_cast<enum isl_dim_type>(type), pos, id.release());
return manage(res);
}
-isl::space space::insert_dims(isl::dim type, unsigned int pos, unsigned int n) const
+isl::set set::set_dim_id(isl::dim type, unsigned int pos, const std::string &id) const
{
- auto res = isl_space_insert_dims(copy(), static_cast<enum isl_dim_type>(type), pos, n);
- return manage(res);
+ return this->set_dim_id(type, pos, isl::id(ctx(), id));
}
-boolean space::is_domain(const isl::space &space2) const
+isl::set_list set::set_list() const
{
- auto res = isl_space_is_domain(get(), space2.get());
- return manage(res);
+ return isl::union_set(*this).set_list();
}
-boolean space::is_equal(const isl::space &space2) const
+isl::set set::set_tuple_id(isl::id id) const
{
- auto res = isl_space_is_equal(get(), space2.get());
+ auto res = isl_set_set_tuple_id(copy(), id.release());
return manage(res);
}
-boolean space::is_map() const
+isl::set set::set_tuple_id(const std::string &id) const
{
- auto res = isl_space_is_map(get());
- return manage(res);
+ return this->set_tuple_id(isl::id(ctx(), id));
}
-boolean space::is_params() const
+isl::fixed_box set::simple_fixed_box_hull() const
{
- auto res = isl_space_is_params(get());
+ auto res = isl_set_get_simple_fixed_box_hull(get());
return manage(res);
}
-boolean space::is_product() const
+isl::fixed_box set::get_simple_fixed_box_hull() const
{
- auto res = isl_space_is_product(get());
- return manage(res);
+ return simple_fixed_box_hull();
}
-boolean space::is_range(const isl::space &space2) const
+isl::basic_set set::simple_hull() const
{
- auto res = isl_space_is_range(get(), space2.get());
+ auto res = isl_set_simple_hull(copy());
return manage(res);
}
-boolean space::is_set() const
+isl::space set::space() const
{
- auto res = isl_space_is_set(get());
+ auto res = isl_set_get_space(get());
return manage(res);
}
-boolean space::is_wrapping() const
+isl::space set::get_space() const
{
- auto res = isl_space_is_wrapping(get());
- return manage(res);
+ return space();
}
-isl::space space::join(isl::space right) const
+isl::val set::stride(int pos) const
{
- auto res = isl_space_join(copy(), right.release());
+ auto res = isl_set_get_stride(get(), pos);
return manage(res);
}
-isl::space space::map_from_domain_and_range(isl::space range) const
+isl::val set::get_stride(int pos) const
{
- auto res = isl_space_map_from_domain_and_range(copy(), range.release());
- return manage(res);
+ return stride(pos);
}
-isl::space space::map_from_set() const
+isl::set set::subtract(isl::set set2) const
{
- auto res = isl_space_map_from_set(copy());
+ auto res = isl_set_subtract(copy(), set2.release());
return manage(res);
}
-isl::space space::move_dims(isl::dim dst_type, unsigned int dst_pos, isl::dim src_type, unsigned int src_pos, unsigned int n) const
+isl::union_set set::subtract(const isl::union_set &uset2) const
{
- auto res = isl_space_move_dims(copy(), static_cast<enum isl_dim_type>(dst_type), dst_pos, static_cast<enum isl_dim_type>(src_type), src_pos, n);
- return manage(res);
+ return isl::union_set(*this).subtract(uset2);
}
-isl::space space::params() const
+isl::set set::subtract(const isl::basic_set &set2) const
{
- auto res = isl_space_params(copy());
- return manage(res);
+ return this->subtract(isl::set(set2));
}
-isl::space space::params_alloc(isl::ctx ctx, unsigned int nparam)
+isl::set set::subtract(const isl::point &set2) const
{
- auto res = isl_space_params_alloc(ctx.release(), nparam);
- return manage(res);
+ return this->subtract(isl::set(set2));
}
-isl::space space::product(isl::space right) const
+isl::set_list set::to_list() const
{
- auto res = isl_space_product(copy(), right.release());
+ auto res = isl_set_to_list(copy());
return manage(res);
}
-isl::space space::range() const
+isl::union_set set::to_union_set() const
{
- auto res = isl_space_range(copy());
+ auto res = isl_set_to_union_set(copy());
return manage(res);
}
-isl::space space::range_curry() const
+isl::map set::translation() const
{
- auto res = isl_space_range_curry(copy());
+ auto res = isl_set_translation(copy());
return manage(res);
}
-isl::space space::range_factor_domain() const
+class size set::tuple_dim() const
{
- auto res = isl_space_range_factor_domain(copy());
+ auto res = isl_set_tuple_dim(get());
return manage(res);
}
-isl::space space::range_factor_range() const
+isl::id set::tuple_id() const
{
- auto res = isl_space_range_factor_range(copy());
+ auto res = isl_set_get_tuple_id(get());
return manage(res);
}
-boolean space::range_is_wrapping() const
+isl::id set::get_tuple_id() const
{
- auto res = isl_space_range_is_wrapping(get());
- return manage(res);
+ return tuple_id();
}
-isl::space space::range_map() const
+std::string set::tuple_name() const
{
- auto res = isl_space_range_map(copy());
- return manage(res);
+ auto res = isl_set_get_tuple_name(get());
+ std::string tmp(res);
+ return tmp;
}
-isl::space space::range_product(isl::space right) const
+std::string set::get_tuple_name() const
{
- auto res = isl_space_range_product(copy(), right.release());
- return manage(res);
+ return tuple_name();
}
-isl::space space::range_reverse() const
+isl::set set::unbind_params(isl::multi_id tuple) const
{
- auto res = isl_space_range_reverse(copy());
+ auto res = isl_set_unbind_params(copy(), tuple.release());
return manage(res);
}
-isl::space space::reset_tuple_id(isl::dim type) const
+isl::map set::unbind_params_insert_domain(isl::multi_id domain) const
{
- auto res = isl_space_reset_tuple_id(copy(), static_cast<enum isl_dim_type>(type));
+ auto res = isl_set_unbind_params_insert_domain(copy(), domain.release());
return manage(res);
}
-isl::space space::reset_user() const
+isl::set set::unite(isl::set set2) const
{
- auto res = isl_space_reset_user(copy());
+ auto res = isl_set_union(copy(), set2.release());
return manage(res);
}
-isl::space space::reverse() const
+isl::union_set set::unite(const isl::union_set &uset2) const
{
- auto res = isl_space_reverse(copy());
- return manage(res);
+ return isl::union_set(*this).unite(uset2);
}
-isl::space space::set_dim_id(isl::dim type, unsigned int pos, isl::id id) const
+isl::set set::unite(const isl::basic_set &set2) const
{
- auto res = isl_space_set_dim_id(copy(), static_cast<enum isl_dim_type>(type), pos, id.release());
- return manage(res);
+ return this->unite(isl::set(set2));
}
-isl::space space::set_from_params() const
+isl::set set::unite(const isl::point &set2) const
{
- auto res = isl_space_set_from_params(copy());
- return manage(res);
+ return this->unite(isl::set(set2));
}
-isl::space space::set_tuple_id(isl::dim type, isl::id id) const
+isl::set set::universe(isl::space space)
{
- auto res = isl_space_set_tuple_id(copy(), static_cast<enum isl_dim_type>(type), id.release());
+ auto res = isl_set_universe(space.release());
return manage(res);
}
-isl::space space::set_tuple_name(isl::dim type, const std::string &s) const
+isl::basic_set set::unshifted_simple_hull() const
{
- auto res = isl_space_set_tuple_name(copy(), static_cast<enum isl_dim_type>(type), s.c_str());
+ auto res = isl_set_unshifted_simple_hull(copy());
return manage(res);
}
-boolean space::tuple_is_equal(isl::dim type1, const isl::space &space2, isl::dim type2) const
+isl::map set::unwrap() const
{
- auto res = isl_space_tuple_is_equal(get(), static_cast<enum isl_dim_type>(type1), space2.get(), static_cast<enum isl_dim_type>(type2));
+ auto res = isl_set_unwrap(copy());
return manage(res);
}
-isl::space space::uncurry() const
+isl::set set::upper_bound(isl::multi_pw_aff upper) const
{
- auto res = isl_space_uncurry(copy());
+ auto res = isl_set_upper_bound_multi_pw_aff(copy(), upper.release());
return manage(res);
}
-isl::space space::unit(isl::ctx ctx)
+isl::set set::upper_bound(isl::multi_val upper) const
{
- auto res = isl_space_unit(ctx.release());
+ auto res = isl_set_upper_bound_multi_val(copy(), upper.release());
return manage(res);
}
-isl::space space::unwrap() const
+isl::set set::upper_bound_val(isl::dim type, unsigned int pos, isl::val value) const
{
- auto res = isl_space_unwrap(copy());
+ auto res = isl_set_upper_bound_val(copy(), static_cast<enum isl_dim_type>(type), pos, value.release());
return manage(res);
}
-isl::space space::wrap() const
+isl::set set::upper_bound_val(isl::dim type, unsigned int pos, long value) const
{
- auto res = isl_space_wrap(copy());
- return manage(res);
+ return this->upper_bound_val(type, pos, isl::val(ctx(), value));
}
-isl::space space::zip() const
+inline std::ostream &operator<<(std::ostream &os, const set &obj)
{
- auto res = isl_space_zip(copy());
- return manage(res);
+ char *str = isl_set_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-// implementations for isl::term
-term manage(__isl_take isl_term *ptr) {
- return term(ptr);
+// implementations for isl::set_list
+set_list manage(__isl_take isl_set_list *ptr) {
+ return set_list(ptr);
}
-term manage_copy(__isl_keep isl_term *ptr) {
- ptr = isl_term_copy(ptr);
- return term(ptr);
+set_list manage_copy(__isl_keep isl_set_list *ptr) {
+ ptr = isl_set_list_copy(ptr);
+ return set_list(ptr);
}
-term::term()
+set_list::set_list()
: ptr(nullptr) {}
-term::term(const term &obj)
+set_list::set_list(const set_list &obj)
: ptr(nullptr)
{
ptr = obj.copy();
}
-
-term::term(__isl_take isl_term *ptr)
+set_list::set_list(__isl_take isl_set_list *ptr)
: ptr(ptr) {}
+set_list::set_list(isl::ctx ctx, int n)
+{
+ auto res = isl_set_list_alloc(ctx.release(), n);
+ ptr = res;
+}
+
+set_list::set_list(isl::set el)
+{
+ auto res = isl_set_list_from_set(el.release());
+ ptr = res;
+}
+
+set_list::set_list(isl::ctx ctx, const std::string &str)
+{
+ auto res = isl_set_list_read_from_str(ctx.release(), str.c_str());
+ ptr = res;
+}
-term &term::operator=(term obj) {
+set_list &set_list::operator=(set_list obj) {
std::swap(this->ptr, obj.ptr);
return *this;
}
-term::~term() {
+set_list::~set_list() {
if (ptr)
- isl_term_free(ptr);
+ isl_set_list_free(ptr);
}
-__isl_give isl_term *term::copy() const & {
- return isl_term_copy(ptr);
+__isl_give isl_set_list *set_list::copy() const & {
+ return isl_set_list_copy(ptr);
}
-__isl_keep isl_term *term::get() const {
+__isl_keep isl_set_list *set_list::get() const {
return ptr;
}
-__isl_give isl_term *term::release() {
- isl_term *tmp = ptr;
+__isl_give isl_set_list *set_list::release() {
+ isl_set_list *tmp = ptr;
ptr = nullptr;
return tmp;
}
-bool term::is_null() const {
+bool set_list::is_null() const {
return ptr == nullptr;
}
+isl::ctx set_list::ctx() const {
+ return isl::ctx(isl_set_list_get_ctx(ptr));
+}
-isl::ctx term::ctx() const {
- return isl::ctx(isl_term_get_ctx(ptr));
+isl::set_list set_list::add(isl::set el) const
+{
+ auto res = isl_set_list_add(copy(), el.release());
+ return manage(res);
}
+isl::set set_list::at(int index) const
+{
+ auto res = isl_set_list_get_at(get(), index);
+ return manage(res);
+}
-isl_size term::dim(isl::dim type) const
+isl::set set_list::get_at(int index) const
{
- auto res = isl_term_dim(get(), static_cast<enum isl_dim_type>(type));
- return res;
+ return at(index);
}
-isl::val term::get_coefficient_val() const
+isl::set_list set_list::clear() const
{
- auto res = isl_term_get_coefficient_val(get());
+ auto res = isl_set_list_clear(copy());
return manage(res);
}
-isl::aff term::get_div(unsigned int pos) const
+isl::set_list set_list::concat(isl::set_list list2) const
{
- auto res = isl_term_get_div(get(), pos);
+ auto res = isl_set_list_concat(copy(), list2.release());
return manage(res);
}
-isl_size term::get_exp(isl::dim type, unsigned int pos) const
+isl::set_list set_list::drop(unsigned int first, unsigned int n) const
{
- auto res = isl_term_get_exp(get(), static_cast<enum isl_dim_type>(type), pos);
- return res;
+ auto res = isl_set_list_drop(copy(), first, n);
+ return manage(res);
}
-// implementations for isl::union_access_info
-union_access_info manage(__isl_take isl_union_access_info *ptr) {
- return union_access_info(ptr);
+stat set_list::foreach(const std::function<stat(isl::set)> &fn) const
+{
+ struct fn_data {
+ std::function<stat(isl::set)> func;
+ } fn_data = { fn };
+ auto fn_lambda = [](isl_set *arg_0, void *arg_1) -> isl_stat {
+ auto *data = static_cast<struct fn_data *>(arg_1);
+ auto ret = (data->func)(manage(arg_0));
+ return ret.release();
+ };
+ auto res = isl_set_list_foreach(get(), fn_lambda, &fn_data);
+ return manage(res);
}
-union_access_info manage_copy(__isl_keep isl_union_access_info *ptr) {
- ptr = isl_union_access_info_copy(ptr);
- return union_access_info(ptr);
+
+isl::set_list set_list::insert(unsigned int pos, isl::set el) const
+{
+ auto res = isl_set_list_insert(copy(), pos, el.release());
+ return manage(res);
}
-union_access_info::union_access_info()
+class size set_list::size() const
+{
+ auto res = isl_set_list_size(get());
+ return manage(res);
+}
+
+inline std::ostream &operator<<(std::ostream &os, const set_list &obj)
+{
+ char *str = isl_set_list_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
+}
+
+// implementations for isl::space
+space manage(__isl_take isl_space *ptr) {
+ return space(ptr);
+}
+space manage_copy(__isl_keep isl_space *ptr) {
+ ptr = isl_space_copy(ptr);
+ return space(ptr);
+}
+
+space::space()
: ptr(nullptr) {}
-union_access_info::union_access_info(const union_access_info &obj)
+space::space(const space &obj)
: ptr(nullptr)
{
ptr = obj.copy();
}
-
-union_access_info::union_access_info(__isl_take isl_union_access_info *ptr)
+space::space(__isl_take isl_space *ptr)
: ptr(ptr) {}
-union_access_info::union_access_info(isl::union_map sink)
+space::space(isl::ctx ctx, unsigned int nparam, unsigned int n_in, unsigned int n_out)
{
- auto res = isl_union_access_info_from_sink(sink.release());
+ auto res = isl_space_alloc(ctx.release(), nparam, n_in, n_out);
ptr = res;
}
-union_access_info &union_access_info::operator=(union_access_info obj) {
+space::space(isl::ctx ctx, unsigned int nparam, unsigned int dim)
+{
+ auto res = isl_space_set_alloc(ctx.release(), nparam, dim);
+ ptr = res;
+}
+
+space &space::operator=(space obj) {
std::swap(this->ptr, obj.ptr);
return *this;
}
-union_access_info::~union_access_info() {
+space::~space() {
if (ptr)
- isl_union_access_info_free(ptr);
+ isl_space_free(ptr);
}
-__isl_give isl_union_access_info *union_access_info::copy() const & {
- return isl_union_access_info_copy(ptr);
+__isl_give isl_space *space::copy() const & {
+ return isl_space_copy(ptr);
}
-__isl_keep isl_union_access_info *union_access_info::get() const {
+__isl_keep isl_space *space::get() const {
return ptr;
}
-__isl_give isl_union_access_info *union_access_info::release() {
- isl_union_access_info *tmp = ptr;
+__isl_give isl_space *space::release() {
+ isl_space *tmp = ptr;
ptr = nullptr;
return tmp;
}
-bool union_access_info::is_null() const {
+bool space::is_null() const {
return ptr == nullptr;
}
-
-isl::ctx union_access_info::ctx() const {
- return isl::ctx(isl_union_access_info_get_ctx(ptr));
+isl::ctx space::ctx() const {
+ return isl::ctx(isl_space_get_ctx(ptr));
}
-
-isl::union_flow union_access_info::compute_flow() const
+isl::space space::add_dims(isl::dim type, unsigned int n) const
{
- auto res = isl_union_access_info_compute_flow(copy());
+ auto res = isl_space_add_dims(copy(), static_cast<enum isl_dim_type>(type), n);
return manage(res);
}
-isl::union_access_info union_access_info::set_kill(isl::union_map kill) const
+isl::space space::add_named_tuple(isl::id tuple_id, unsigned int dim) const
{
- auto res = isl_union_access_info_set_kill(copy(), kill.release());
+ auto res = isl_space_add_named_tuple_id_ui(copy(), tuple_id.release(), dim);
return manage(res);
}
-isl::union_access_info union_access_info::set_may_source(isl::union_map may_source) const
+isl::space space::add_named_tuple(const std::string &tuple_id, unsigned int dim) const
{
- auto res = isl_union_access_info_set_may_source(copy(), may_source.release());
- return manage(res);
+ return this->add_named_tuple(isl::id(ctx(), tuple_id), dim);
}
-isl::union_access_info union_access_info::set_must_source(isl::union_map must_source) const
+isl::space space::add_param(isl::id id) const
{
- auto res = isl_union_access_info_set_must_source(copy(), must_source.release());
+ auto res = isl_space_add_param_id(copy(), id.release());
return manage(res);
}
-isl::union_access_info union_access_info::set_schedule(isl::schedule schedule) const
+isl::space space::add_param(const std::string &id) const
{
- auto res = isl_union_access_info_set_schedule(copy(), schedule.release());
- return manage(res);
+ return this->add_param(isl::id(ctx(), id));
}
-isl::union_access_info union_access_info::set_schedule_map(isl::union_map schedule_map) const
+isl::space space::add_unnamed_tuple(unsigned int dim) const
{
- auto res = isl_union_access_info_set_schedule_map(copy(), schedule_map.release());
+ auto res = isl_space_add_unnamed_tuple_ui(copy(), dim);
return manage(res);
}
-// implementations for isl::union_flow
-union_flow manage(__isl_take isl_union_flow *ptr) {
- return union_flow(ptr);
-}
-union_flow manage_copy(__isl_keep isl_union_flow *ptr) {
- ptr = isl_union_flow_copy(ptr);
- return union_flow(ptr);
-}
-
-union_flow::union_flow()
- : ptr(nullptr) {}
-
-union_flow::union_flow(const union_flow &obj)
- : ptr(nullptr)
+isl::space space::align_params(isl::space space2) const
{
- ptr = obj.copy();
-}
-
-
-union_flow::union_flow(__isl_take isl_union_flow *ptr)
- : ptr(ptr) {}
-
-
-union_flow &union_flow::operator=(union_flow obj) {
- std::swap(this->ptr, obj.ptr);
- return *this;
-}
-
-union_flow::~union_flow() {
- if (ptr)
- isl_union_flow_free(ptr);
-}
-
-__isl_give isl_union_flow *union_flow::copy() const & {
- return isl_union_flow_copy(ptr);
-}
-
-__isl_keep isl_union_flow *union_flow::get() const {
- return ptr;
-}
-
-__isl_give isl_union_flow *union_flow::release() {
- isl_union_flow *tmp = ptr;
- ptr = nullptr;
- return tmp;
-}
-
-bool union_flow::is_null() const {
- return ptr == nullptr;
-}
-
-
-isl::ctx union_flow::ctx() const {
- return isl::ctx(isl_union_flow_get_ctx(ptr));
+ auto res = isl_space_align_params(copy(), space2.release());
+ return manage(res);
}
-
-isl::union_map union_flow::get_full_may_dependence() const
+isl::space space::curry() const
{
- auto res = isl_union_flow_get_full_may_dependence(get());
+ auto res = isl_space_curry(copy());
return manage(res);
}
-isl::union_map union_flow::get_full_must_dependence() const
+class size space::dim(isl::dim type) const
{
- auto res = isl_union_flow_get_full_must_dependence(get());
+ auto res = isl_space_dim(get(), static_cast<enum isl_dim_type>(type));
return manage(res);
}
-isl::union_map union_flow::get_may_dependence() const
+isl::id space::dim_id(isl::dim type, unsigned int pos) const
{
- auto res = isl_union_flow_get_may_dependence(get());
+ auto res = isl_space_get_dim_id(get(), static_cast<enum isl_dim_type>(type), pos);
return manage(res);
}
-isl::union_map union_flow::get_may_no_source() const
+isl::id space::get_dim_id(isl::dim type, unsigned int pos) const
{
- auto res = isl_union_flow_get_may_no_source(get());
- return manage(res);
+ return dim_id(type, pos);
}
-isl::union_map union_flow::get_must_dependence() const
+isl::space space::domain() const
{
- auto res = isl_union_flow_get_must_dependence(get());
+ auto res = isl_space_domain(copy());
return manage(res);
}
-isl::union_map union_flow::get_must_no_source() const
+isl::multi_aff space::domain_map_multi_aff() const
{
- auto res = isl_union_flow_get_must_no_source(get());
+ auto res = isl_space_domain_map_multi_aff(copy());
return manage(res);
}
-// implementations for isl::union_map
-union_map manage(__isl_take isl_union_map *ptr) {
- return union_map(ptr);
-}
-union_map manage_copy(__isl_keep isl_union_map *ptr) {
- ptr = isl_union_map_copy(ptr);
- return union_map(ptr);
+isl::pw_multi_aff space::domain_map_pw_multi_aff() const
+{
+ auto res = isl_space_domain_map_pw_multi_aff(copy());
+ return manage(res);
}
-union_map::union_map()
- : ptr(nullptr) {}
-
-union_map::union_map(const union_map &obj)
- : ptr(nullptr)
+isl::id space::domain_tuple_id() const
{
- ptr = obj.copy();
+ auto res = isl_space_get_domain_tuple_id(get());
+ return manage(res);
}
+isl::id space::get_domain_tuple_id() const
+{
+ return domain_tuple_id();
+}
-union_map::union_map(__isl_take isl_union_map *ptr)
- : ptr(ptr) {}
+isl::space space::drop_dims(isl::dim type, unsigned int first, unsigned int num) const
+{
+ auto res = isl_space_drop_dims(copy(), static_cast<enum isl_dim_type>(type), first, num);
+ return manage(res);
+}
-union_map::union_map(isl::basic_map bmap)
+int space::find_dim_by_id(isl::dim type, const isl::id &id) const
{
- auto res = isl_union_map_from_basic_map(bmap.release());
- ptr = res;
+ auto res = isl_space_find_dim_by_id(get(), static_cast<enum isl_dim_type>(type), id.get());
+ return res;
}
-union_map::union_map(isl::map map)
+
+int space::find_dim_by_id(isl::dim type, const std::string &id) const
{
- auto res = isl_union_map_from_map(map.release());
- ptr = res;
+ return this->find_dim_by_id(type, isl::id(ctx(), id));
}
-union_map::union_map(isl::union_pw_multi_aff upma)
+
+isl::space space::flatten_domain() const
{
- auto res = isl_union_map_from_union_pw_multi_aff(upma.release());
- ptr = res;
+ auto res = isl_space_flatten_domain(copy());
+ return manage(res);
}
-union_map::union_map(isl::ctx ctx, const std::string &str)
+
+isl::space space::flatten_range() const
{
- auto res = isl_union_map_read_from_str(ctx.release(), str.c_str());
- ptr = res;
+ auto res = isl_space_flatten_range(copy());
+ return manage(res);
}
-union_map &union_map::operator=(union_map obj) {
- std::swap(this->ptr, obj.ptr);
- return *this;
+boolean space::has_domain_tuple_id() const
+{
+ auto res = isl_space_has_domain_tuple_id(get());
+ return manage(res);
}
-union_map::~union_map() {
- if (ptr)
- isl_union_map_free(ptr);
+boolean space::has_equal_tuples(const isl::space &space2) const
+{
+ auto res = isl_space_has_equal_tuples(get(), space2.get());
+ return manage(res);
}
-__isl_give isl_union_map *union_map::copy() const & {
- return isl_union_map_copy(ptr);
+boolean space::has_range_tuple_id() const
+{
+ auto res = isl_space_has_range_tuple_id(get());
+ return manage(res);
}
-__isl_keep isl_union_map *union_map::get() const {
- return ptr;
+boolean space::has_tuple_id(isl::dim type) const
+{
+ auto res = isl_space_has_tuple_id(get(), static_cast<enum isl_dim_type>(type));
+ return manage(res);
}
-__isl_give isl_union_map *union_map::release() {
- isl_union_map *tmp = ptr;
- ptr = nullptr;
- return tmp;
+boolean space::has_tuple_name(isl::dim type) const
+{
+ auto res = isl_space_has_tuple_name(get(), static_cast<enum isl_dim_type>(type));
+ return manage(res);
}
-bool union_map::is_null() const {
- return ptr == nullptr;
+isl::multi_aff space::identity_multi_aff_on_domain() const
+{
+ auto res = isl_space_identity_multi_aff_on_domain(copy());
+ return manage(res);
}
+isl::multi_pw_aff space::identity_multi_pw_aff_on_domain() const
+{
+ auto res = isl_space_identity_multi_pw_aff_on_domain(copy());
+ return manage(res);
+}
-isl::ctx union_map::ctx() const {
- return isl::ctx(isl_union_map_get_ctx(ptr));
+isl::pw_multi_aff space::identity_pw_multi_aff_on_domain() const
+{
+ auto res = isl_space_identity_pw_multi_aff_on_domain(copy());
+ return manage(res);
}
-void union_map::dump() const {
- isl_union_map_dump(get());
+boolean space::is_equal(const isl::space &space2) const
+{
+ auto res = isl_space_is_equal(get(), space2.get());
+ return manage(res);
}
+boolean space::is_params() const
+{
+ auto res = isl_space_is_params(get());
+ return manage(res);
+}
-isl::union_map union_map::affine_hull() const
+boolean space::is_set() const
{
- auto res = isl_union_map_affine_hull(copy());
+ auto res = isl_space_is_set(get());
return manage(res);
}
-isl::union_map union_map::align_params(isl::space model) const
+boolean space::is_wrapping() const
{
- auto res = isl_union_map_align_params(copy(), model.release());
+ auto res = isl_space_is_wrapping(get());
return manage(res);
}
-isl::union_map union_map::apply_domain(isl::union_map umap2) const
+isl::space space::map_from_domain_and_range(isl::space range) const
{
- auto res = isl_union_map_apply_domain(copy(), umap2.release());
+ auto res = isl_space_map_from_domain_and_range(copy(), range.release());
return manage(res);
}
-isl::union_map union_map::apply_range(isl::union_map umap2) const
+isl::space space::map_from_set() const
{
- auto res = isl_union_map_apply_range(copy(), umap2.release());
+ auto res = isl_space_map_from_set(copy());
return manage(res);
}
-isl::union_set union_map::bind_range(isl::multi_id tuple) const
+isl::multi_aff space::multi_aff(isl::aff_list list) const
{
- auto res = isl_union_map_bind_range(copy(), tuple.release());
+ auto res = isl_space_multi_aff(copy(), list.release());
return manage(res);
}
-isl::union_map union_map::coalesce() const
+isl::multi_aff space::multi_aff_on_domain(isl::multi_val mv) const
{
- auto res = isl_union_map_coalesce(copy());
+ auto res = isl_space_multi_aff_on_domain_multi_val(copy(), mv.release());
return manage(res);
}
-boolean union_map::contains(const isl::space &space) const
+isl::multi_id space::multi_id(isl::id_list list) const
{
- auto res = isl_union_map_contains(get(), space.get());
+ auto res = isl_space_multi_id(copy(), list.release());
return manage(res);
}
-isl::union_map union_map::curry() const
+isl::multi_pw_aff space::multi_pw_aff(isl::pw_aff_list list) const
{
- auto res = isl_union_map_curry(copy());
+ auto res = isl_space_multi_pw_aff(copy(), list.release());
return manage(res);
}
-isl::union_set union_map::deltas() const
+isl::multi_union_pw_aff space::multi_union_pw_aff(isl::union_pw_aff_list list) const
{
- auto res = isl_union_map_deltas(copy());
+ auto res = isl_space_multi_union_pw_aff(copy(), list.release());
return manage(res);
}
-isl::union_map union_map::deltas_map() const
+isl::multi_val space::multi_val(isl::val_list list) const
{
- auto res = isl_union_map_deltas_map(copy());
+ auto res = isl_space_multi_val(copy(), list.release());
return manage(res);
}
-isl::union_map union_map::detect_equalities() const
+isl::aff space::param_aff_on_domain(isl::id id) const
{
- auto res = isl_union_map_detect_equalities(copy());
+ auto res = isl_space_param_aff_on_domain_id(copy(), id.release());
return manage(res);
}
-isl_size union_map::dim(isl::dim type) const
+isl::aff space::param_aff_on_domain(const std::string &id) const
{
- auto res = isl_union_map_dim(get(), static_cast<enum isl_dim_type>(type));
- return res;
+ return this->param_aff_on_domain(isl::id(ctx(), id));
}
-isl::union_set union_map::domain() const
+isl::space space::params() const
{
- auto res = isl_union_map_domain(copy());
+ auto res = isl_space_params(copy());
return manage(res);
}
-isl::union_map union_map::domain_factor_domain() const
+isl::space space::params_alloc(isl::ctx ctx, unsigned int nparam)
{
- auto res = isl_union_map_domain_factor_domain(copy());
+ auto res = isl_space_params_alloc(ctx.release(), nparam);
return manage(res);
}
-isl::union_map union_map::domain_factor_range() const
+isl::space space::product(isl::space right) const
{
- auto res = isl_union_map_domain_factor_range(copy());
+ auto res = isl_space_product(copy(), right.release());
return manage(res);
}
-isl::union_map union_map::domain_map() const
+isl::space space::range() const
{
- auto res = isl_union_map_domain_map(copy());
+ auto res = isl_space_range(copy());
return manage(res);
}
-isl::union_pw_multi_aff union_map::domain_map_union_pw_multi_aff() const
+isl::multi_aff space::range_map_multi_aff() const
{
- auto res = isl_union_map_domain_map_union_pw_multi_aff(copy());
+ auto res = isl_space_range_map_multi_aff(copy());
return manage(res);
}
-isl::union_map union_map::domain_product(isl::union_map umap2) const
+isl::pw_multi_aff space::range_map_pw_multi_aff() const
{
- auto res = isl_union_map_domain_product(copy(), umap2.release());
+ auto res = isl_space_range_map_pw_multi_aff(copy());
return manage(res);
}
-isl::union_map union_map::empty(isl::ctx ctx)
+isl::space space::range_reverse() const
{
- auto res = isl_union_map_empty_ctx(ctx.release());
+ auto res = isl_space_range_reverse(copy());
return manage(res);
}
-isl::union_map union_map::eq_at(isl::multi_union_pw_aff mupa) const
+isl::id space::range_tuple_id() const
{
- auto res = isl_union_map_eq_at_multi_union_pw_aff(copy(), mupa.release());
+ auto res = isl_space_get_range_tuple_id(get());
return manage(res);
}
-isl::map union_map::extract_map(isl::space space) const
+isl::id space::get_range_tuple_id() const
{
- auto res = isl_union_map_extract_map(get(), space.release());
- return manage(res);
+ return range_tuple_id();
}
-isl::union_map union_map::factor_domain() const
+isl::space space::reverse() const
{
- auto res = isl_union_map_factor_domain(copy());
+ auto res = isl_space_reverse(copy());
return manage(res);
}
-isl::union_map union_map::factor_range() const
+isl::space space::set_dim_id(isl::dim type, unsigned int pos, isl::id id) const
{
- auto res = isl_union_map_factor_range(copy());
+ auto res = isl_space_set_dim_id(copy(), static_cast<enum isl_dim_type>(type), pos, id.release());
return manage(res);
}
-int union_map::find_dim_by_name(isl::dim type, const std::string &name) const
+isl::space space::set_dim_id(isl::dim type, unsigned int pos, const std::string &id) const
{
- auto res = isl_union_map_find_dim_by_name(get(), static_cast<enum isl_dim_type>(type), name.c_str());
- return res;
+ return this->set_dim_id(type, pos, isl::id(ctx(), id));
}
-isl::union_map union_map::fixed_power(isl::val exp) const
+isl::space space::set_domain_tuple(isl::id id) const
{
- auto res = isl_union_map_fixed_power_val(copy(), exp.release());
+ auto res = isl_space_set_domain_tuple_id(copy(), id.release());
return manage(res);
}
-isl::union_map union_map::flat_domain_product(isl::union_map umap2) const
+isl::space space::set_domain_tuple(const std::string &id) const
{
- auto res = isl_union_map_flat_domain_product(copy(), umap2.release());
- return manage(res);
+ return this->set_domain_tuple(isl::id(ctx(), id));
}
-isl::union_map union_map::flat_range_product(isl::union_map umap2) const
+isl::space space::set_from_params() const
{
- auto res = isl_union_map_flat_range_product(copy(), umap2.release());
+ auto res = isl_space_set_from_params(copy());
return manage(res);
}
-stat union_map::foreach_map(const std::function<stat(map)> &fn) const
+isl::space space::set_range_tuple(isl::id id) const
{
- struct fn_data {
- const std::function<stat(map)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_map *arg_0, void *arg_1) -> isl_stat {
- auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
- return ret.release();
- };
- auto res = isl_union_map_foreach_map(get(), fn_lambda, &fn_data);
+ auto res = isl_space_set_range_tuple_id(copy(), id.release());
return manage(res);
}
-isl::union_map union_map::from(isl::multi_union_pw_aff mupa)
+isl::space space::set_range_tuple(const std::string &id) const
{
- auto res = isl_union_map_from_multi_union_pw_aff(mupa.release());
- return manage(res);
+ return this->set_range_tuple(isl::id(ctx(), id));
}
-isl::union_map union_map::from_domain(isl::union_set uset)
+isl::space space::set_tuple_id(isl::dim type, isl::id id) const
{
- auto res = isl_union_map_from_domain(uset.release());
+ auto res = isl_space_set_tuple_id(copy(), static_cast<enum isl_dim_type>(type), id.release());
return manage(res);
}
-isl::union_map union_map::from_domain_and_range(isl::union_set domain, isl::union_set range)
+isl::space space::set_tuple_id(isl::dim type, const std::string &id) const
{
- auto res = isl_union_map_from_domain_and_range(domain.release(), range.release());
- return manage(res);
+ return this->set_tuple_id(type, isl::id(ctx(), id));
}
-isl::union_map union_map::from_range(isl::union_set uset)
+isl::id space::tuple_id(isl::dim type) const
{
- auto res = isl_union_map_from_range(uset.release());
+ auto res = isl_space_get_tuple_id(get(), static_cast<enum isl_dim_type>(type));
return manage(res);
}
-isl::union_map union_map::from_union_pw_aff(isl::union_pw_aff upa)
+isl::id space::get_tuple_id(isl::dim type) const
{
- auto res = isl_union_map_from_union_pw_aff(upa.release());
- return manage(res);
+ return tuple_id(type);
}
-isl::id union_map::get_dim_id(isl::dim type, unsigned int pos) const
+std::string space::tuple_name(isl::dim type) const
{
- auto res = isl_union_map_get_dim_id(get(), static_cast<enum isl_dim_type>(type), pos);
- return manage(res);
+ auto res = isl_space_get_tuple_name(get(), static_cast<enum isl_dim_type>(type));
+ std::string tmp(res);
+ return tmp;
}
-uint32_t union_map::get_hash() const
+std::string space::get_tuple_name(isl::dim type) const
{
- auto res = isl_union_map_get_hash(get());
- return res;
+ return tuple_name(type);
}
-isl::map_list union_map::get_map_list() const
+isl::space space::uncurry() const
{
- auto res = isl_union_map_get_map_list(get());
+ auto res = isl_space_uncurry(copy());
return manage(res);
}
-isl::space union_map::get_space() const
+isl::space space::unit(isl::ctx ctx)
{
- auto res = isl_union_map_get_space(get());
+ auto res = isl_space_unit(ctx.release());
return manage(res);
}
-isl::union_map union_map::gist(isl::union_map context) const
+isl::map space::universe_map() const
{
- auto res = isl_union_map_gist(copy(), context.release());
+ auto res = isl_space_universe_map(copy());
return manage(res);
}
-isl::union_map union_map::gist_domain(isl::union_set uset) const
+isl::set space::universe_set() const
{
- auto res = isl_union_map_gist_domain(copy(), uset.release());
+ auto res = isl_space_universe_set(copy());
return manage(res);
}
-isl::union_map union_map::gist_params(isl::set set) const
+isl::space space::unwrap() const
{
- auto res = isl_union_map_gist_params(copy(), set.release());
+ auto res = isl_space_unwrap(copy());
return manage(res);
}
-isl::union_map union_map::gist_range(isl::union_set uset) const
+isl::space space::wrap() const
{
- auto res = isl_union_map_gist_range(copy(), uset.release());
+ auto res = isl_space_wrap(copy());
return manage(res);
}
-isl::union_map union_map::intersect(isl::union_map umap2) const
+isl::aff space::zero_aff_on_domain() const
{
- auto res = isl_union_map_intersect(copy(), umap2.release());
+ auto res = isl_space_zero_aff_on_domain(copy());
return manage(res);
}
-isl::union_map union_map::intersect_domain(isl::space space) const
+isl::multi_aff space::zero_multi_aff() const
{
- auto res = isl_union_map_intersect_domain_space(copy(), space.release());
+ auto res = isl_space_zero_multi_aff(copy());
return manage(res);
}
-isl::union_map union_map::intersect_domain(isl::union_set uset) const
+isl::multi_pw_aff space::zero_multi_pw_aff() const
{
- auto res = isl_union_map_intersect_domain_union_set(copy(), uset.release());
+ auto res = isl_space_zero_multi_pw_aff(copy());
return manage(res);
}
-isl::union_map union_map::intersect_domain_factor_domain(isl::union_map factor) const
+isl::multi_union_pw_aff space::zero_multi_union_pw_aff() const
{
- auto res = isl_union_map_intersect_domain_factor_domain(copy(), factor.release());
+ auto res = isl_space_zero_multi_union_pw_aff(copy());
return manage(res);
}
-isl::union_map union_map::intersect_domain_factor_range(isl::union_map factor) const
+isl::multi_val space::zero_multi_val() const
{
- auto res = isl_union_map_intersect_domain_factor_range(copy(), factor.release());
+ auto res = isl_space_zero_multi_val(copy());
return manage(res);
}
-isl::union_map union_map::intersect_params(isl::set set) const
+inline std::ostream &operator<<(std::ostream &os, const space &obj)
{
- auto res = isl_union_map_intersect_params(copy(), set.release());
- return manage(res);
+ char *str = isl_space_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::union_map union_map::intersect_range(isl::space space) const
+// implementations for isl::union_access_info
+union_access_info manage(__isl_take isl_union_access_info *ptr) {
+ return union_access_info(ptr);
+}
+union_access_info manage_copy(__isl_keep isl_union_access_info *ptr) {
+ ptr = isl_union_access_info_copy(ptr);
+ return union_access_info(ptr);
+}
+
+union_access_info::union_access_info()
+ : ptr(nullptr) {}
+
+union_access_info::union_access_info(const union_access_info &obj)
+ : ptr(nullptr)
{
- auto res = isl_union_map_intersect_range_space(copy(), space.release());
- return manage(res);
+ ptr = obj.copy();
}
-isl::union_map union_map::intersect_range(isl::union_set uset) const
+union_access_info::union_access_info(__isl_take isl_union_access_info *ptr)
+ : ptr(ptr) {}
+
+union_access_info::union_access_info(isl::union_map sink)
{
- auto res = isl_union_map_intersect_range_union_set(copy(), uset.release());
- return manage(res);
+ auto res = isl_union_access_info_from_sink(sink.release());
+ ptr = res;
+}
+
+union_access_info &union_access_info::operator=(union_access_info obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
+}
+
+union_access_info::~union_access_info() {
+ if (ptr)
+ isl_union_access_info_free(ptr);
}
-isl::union_map union_map::intersect_range_factor_domain(isl::union_map factor) const
-{
- auto res = isl_union_map_intersect_range_factor_domain(copy(), factor.release());
- return manage(res);
+__isl_give isl_union_access_info *union_access_info::copy() const & {
+ return isl_union_access_info_copy(ptr);
}
-isl::union_map union_map::intersect_range_factor_range(isl::union_map factor) const
-{
- auto res = isl_union_map_intersect_range_factor_range(copy(), factor.release());
- return manage(res);
+__isl_keep isl_union_access_info *union_access_info::get() const {
+ return ptr;
}
-boolean union_map::involves_dims(isl::dim type, unsigned int first, unsigned int n) const
-{
- auto res = isl_union_map_involves_dims(get(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+__isl_give isl_union_access_info *union_access_info::release() {
+ isl_union_access_info *tmp = ptr;
+ ptr = nullptr;
+ return tmp;
}
-boolean union_map::is_bijective() const
-{
- auto res = isl_union_map_is_bijective(get());
- return manage(res);
+bool union_access_info::is_null() const {
+ return ptr == nullptr;
}
-boolean union_map::is_disjoint(const isl::union_map &umap2) const
-{
- auto res = isl_union_map_is_disjoint(get(), umap2.get());
- return manage(res);
+isl::ctx union_access_info::ctx() const {
+ return isl::ctx(isl_union_access_info_get_ctx(ptr));
}
-boolean union_map::is_empty() const
+isl::union_flow union_access_info::compute_flow() const
{
- auto res = isl_union_map_is_empty(get());
+ auto res = isl_union_access_info_compute_flow(copy());
return manage(res);
}
-boolean union_map::is_equal(const isl::union_map &umap2) const
+isl::union_access_info union_access_info::set_kill(isl::union_map kill) const
{
- auto res = isl_union_map_is_equal(get(), umap2.get());
+ auto res = isl_union_access_info_set_kill(copy(), kill.release());
return manage(res);
}
-boolean union_map::is_identity() const
+isl::union_access_info union_access_info::set_may_source(isl::union_map may_source) const
{
- auto res = isl_union_map_is_identity(get());
+ auto res = isl_union_access_info_set_may_source(copy(), may_source.release());
return manage(res);
}
-boolean union_map::is_injective() const
+isl::union_access_info union_access_info::set_must_source(isl::union_map must_source) const
{
- auto res = isl_union_map_is_injective(get());
+ auto res = isl_union_access_info_set_must_source(copy(), must_source.release());
return manage(res);
}
-boolean union_map::is_single_valued() const
+isl::union_access_info union_access_info::set_schedule(isl::schedule schedule) const
{
- auto res = isl_union_map_is_single_valued(get());
+ auto res = isl_union_access_info_set_schedule(copy(), schedule.release());
return manage(res);
}
-boolean union_map::is_strict_subset(const isl::union_map &umap2) const
+isl::union_access_info union_access_info::set_schedule_map(isl::union_map schedule_map) const
{
- auto res = isl_union_map_is_strict_subset(get(), umap2.get());
+ auto res = isl_union_access_info_set_schedule_map(copy(), schedule_map.release());
return manage(res);
}
-boolean union_map::is_subset(const isl::union_map &umap2) const
+inline std::ostream &operator<<(std::ostream &os, const union_access_info &obj)
{
- auto res = isl_union_map_is_subset(get(), umap2.get());
- return manage(res);
+ char *str = isl_union_access_info_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-boolean union_map::isa_map() const
-{
- auto res = isl_union_map_isa_map(get());
- return manage(res);
+// implementations for isl::union_flow
+union_flow manage(__isl_take isl_union_flow *ptr) {
+ return union_flow(ptr);
}
-
-isl::union_map union_map::lex_ge_at_multi_union_pw_aff(isl::multi_union_pw_aff mupa) const
-{
- auto res = isl_union_map_lex_ge_at_multi_union_pw_aff(copy(), mupa.release());
- return manage(res);
+union_flow manage_copy(__isl_keep isl_union_flow *ptr) {
+ ptr = isl_union_flow_copy(ptr);
+ return union_flow(ptr);
}
-isl::union_map union_map::lex_ge_union_map(isl::union_map umap2) const
+union_flow::union_flow()
+ : ptr(nullptr) {}
+
+union_flow::union_flow(const union_flow &obj)
+ : ptr(nullptr)
{
- auto res = isl_union_map_lex_ge_union_map(copy(), umap2.release());
- return manage(res);
+ ptr = obj.copy();
}
-isl::union_map union_map::lex_gt_at_multi_union_pw_aff(isl::multi_union_pw_aff mupa) const
-{
- auto res = isl_union_map_lex_gt_at_multi_union_pw_aff(copy(), mupa.release());
- return manage(res);
+union_flow::union_flow(__isl_take isl_union_flow *ptr)
+ : ptr(ptr) {}
+
+union_flow &union_flow::operator=(union_flow obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-isl::union_map union_map::lex_gt_union_map(isl::union_map umap2) const
-{
- auto res = isl_union_map_lex_gt_union_map(copy(), umap2.release());
- return manage(res);
+union_flow::~union_flow() {
+ if (ptr)
+ isl_union_flow_free(ptr);
}
-isl::union_map union_map::lex_le_at_multi_union_pw_aff(isl::multi_union_pw_aff mupa) const
-{
- auto res = isl_union_map_lex_le_at_multi_union_pw_aff(copy(), mupa.release());
- return manage(res);
+__isl_give isl_union_flow *union_flow::copy() const & {
+ return isl_union_flow_copy(ptr);
}
-isl::union_map union_map::lex_le_union_map(isl::union_map umap2) const
-{
- auto res = isl_union_map_lex_le_union_map(copy(), umap2.release());
- return manage(res);
+__isl_keep isl_union_flow *union_flow::get() const {
+ return ptr;
}
-isl::union_map union_map::lex_lt_at_multi_union_pw_aff(isl::multi_union_pw_aff mupa) const
-{
- auto res = isl_union_map_lex_lt_at_multi_union_pw_aff(copy(), mupa.release());
- return manage(res);
+__isl_give isl_union_flow *union_flow::release() {
+ isl_union_flow *tmp = ptr;
+ ptr = nullptr;
+ return tmp;
}
-isl::union_map union_map::lex_lt_union_map(isl::union_map umap2) const
-{
- auto res = isl_union_map_lex_lt_union_map(copy(), umap2.release());
- return manage(res);
+bool union_flow::is_null() const {
+ return ptr == nullptr;
}
-isl::union_map union_map::lexmax() const
-{
- auto res = isl_union_map_lexmax(copy());
- return manage(res);
+isl::ctx union_flow::ctx() const {
+ return isl::ctx(isl_union_flow_get_ctx(ptr));
}
-isl::union_map union_map::lexmin() const
+isl::union_map union_flow::full_may_dependence() const
{
- auto res = isl_union_map_lexmin(copy());
+ auto res = isl_union_flow_get_full_may_dependence(get());
return manage(res);
}
-isl_size union_map::n_map() const
+isl::union_map union_flow::get_full_may_dependence() const
{
- auto res = isl_union_map_n_map(get());
- return res;
+ return full_may_dependence();
}
-isl::set union_map::params() const
+isl::union_map union_flow::full_must_dependence() const
{
- auto res = isl_union_map_params(copy());
+ auto res = isl_union_flow_get_full_must_dependence(get());
return manage(res);
}
-boolean union_map::plain_is_empty() const
+isl::union_map union_flow::get_full_must_dependence() const
{
- auto res = isl_union_map_plain_is_empty(get());
- return manage(res);
+ return full_must_dependence();
}
-boolean union_map::plain_is_injective() const
+isl::union_map union_flow::may_dependence() const
{
- auto res = isl_union_map_plain_is_injective(get());
+ auto res = isl_union_flow_get_may_dependence(get());
return manage(res);
}
-isl::union_map union_map::polyhedral_hull() const
+isl::union_map union_flow::get_may_dependence() const
{
- auto res = isl_union_map_polyhedral_hull(copy());
- return manage(res);
+ return may_dependence();
}
-isl::union_map union_map::preimage_domain(isl::multi_aff ma) const
+isl::union_map union_flow::may_no_source() const
{
- auto res = isl_union_map_preimage_domain_multi_aff(copy(), ma.release());
+ auto res = isl_union_flow_get_may_no_source(get());
return manage(res);
}
-isl::union_map union_map::preimage_domain(isl::multi_pw_aff mpa) const
+isl::union_map union_flow::get_may_no_source() const
{
- auto res = isl_union_map_preimage_domain_multi_pw_aff(copy(), mpa.release());
- return manage(res);
+ return may_no_source();
}
-isl::union_map union_map::preimage_domain(isl::pw_multi_aff pma) const
+isl::union_map union_flow::must_dependence() const
{
- auto res = isl_union_map_preimage_domain_pw_multi_aff(copy(), pma.release());
+ auto res = isl_union_flow_get_must_dependence(get());
return manage(res);
}
-isl::union_map union_map::preimage_domain(isl::union_pw_multi_aff upma) const
+isl::union_map union_flow::get_must_dependence() const
{
- auto res = isl_union_map_preimage_domain_union_pw_multi_aff(copy(), upma.release());
- return manage(res);
+ return must_dependence();
}
-isl::union_map union_map::preimage_range(isl::multi_aff ma) const
+isl::union_map union_flow::must_no_source() const
{
- auto res = isl_union_map_preimage_range_multi_aff(copy(), ma.release());
+ auto res = isl_union_flow_get_must_no_source(get());
return manage(res);
}
-isl::union_map union_map::preimage_range(isl::pw_multi_aff pma) const
+isl::union_map union_flow::get_must_no_source() const
{
- auto res = isl_union_map_preimage_range_pw_multi_aff(copy(), pma.release());
- return manage(res);
+ return must_no_source();
}
-isl::union_map union_map::preimage_range(isl::union_pw_multi_aff upma) const
+inline std::ostream &operator<<(std::ostream &os, const union_flow &obj)
{
- auto res = isl_union_map_preimage_range_union_pw_multi_aff(copy(), upma.release());
- return manage(res);
+ char *str = isl_union_flow_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::union_map union_map::product(isl::union_map umap2) const
-{
- auto res = isl_union_map_product(copy(), umap2.release());
- return manage(res);
+// implementations for isl::union_map
+union_map manage(__isl_take isl_union_map *ptr) {
+ return union_map(ptr);
+}
+union_map manage_copy(__isl_keep isl_union_map *ptr) {
+ ptr = isl_union_map_copy(ptr);
+ return union_map(ptr);
}
-isl::union_map union_map::project_out(isl::dim type, unsigned int first, unsigned int n) const
+union_map::union_map()
+ : ptr(nullptr) {}
+
+union_map::union_map(const union_map &obj)
+ : ptr(nullptr)
{
- auto res = isl_union_map_project_out(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ ptr = obj.copy();
}
-isl::union_map union_map::project_out_all_params() const
+union_map::union_map(__isl_take isl_union_map *ptr)
+ : ptr(ptr) {}
+
+union_map::union_map(isl::basic_map bmap)
{
- auto res = isl_union_map_project_out_all_params(copy());
- return manage(res);
+ auto res = isl_union_map_from_basic_map(bmap.release());
+ ptr = res;
}
-isl::union_set union_map::range() const
+union_map::union_map(isl::map map)
{
- auto res = isl_union_map_range(copy());
- return manage(res);
+ auto res = isl_union_map_from_map(map.release());
+ ptr = res;
}
-isl::union_map union_map::range_curry() const
+union_map::union_map(isl::ctx ctx, const std::string &str)
{
- auto res = isl_union_map_range_curry(copy());
- return manage(res);
+ auto res = isl_union_map_read_from_str(ctx.release(), str.c_str());
+ ptr = res;
}
-isl::union_map union_map::range_factor_domain() const
-{
- auto res = isl_union_map_range_factor_domain(copy());
- return manage(res);
+union_map &union_map::operator=(union_map obj) {
+ std::swap(this->ptr, obj.ptr);
+ return *this;
}
-isl::union_map union_map::range_factor_range() const
-{
- auto res = isl_union_map_range_factor_range(copy());
- return manage(res);
+union_map::~union_map() {
+ if (ptr)
+ isl_union_map_free(ptr);
}
-isl::union_map union_map::range_map() const
-{
- auto res = isl_union_map_range_map(copy());
- return manage(res);
+__isl_give isl_union_map *union_map::copy() const & {
+ return isl_union_map_copy(ptr);
}
-isl::union_map union_map::range_product(isl::union_map umap2) const
-{
- auto res = isl_union_map_range_product(copy(), umap2.release());
- return manage(res);
+__isl_keep isl_union_map *union_map::get() const {
+ return ptr;
}
-isl::union_map union_map::range_reverse() const
-{
- auto res = isl_union_map_range_reverse(copy());
- return manage(res);
+__isl_give isl_union_map *union_map::release() {
+ isl_union_map *tmp = ptr;
+ ptr = nullptr;
+ return tmp;
}
-isl::union_map union_map::remove_divs() const
-{
- auto res = isl_union_map_remove_divs(copy());
- return manage(res);
+bool union_map::is_null() const {
+ return ptr == nullptr;
}
-isl::union_map union_map::remove_redundancies() const
-{
- auto res = isl_union_map_remove_redundancies(copy());
- return manage(res);
+isl::ctx union_map::ctx() const {
+ return isl::ctx(isl_union_map_get_ctx(ptr));
}
-isl::union_map union_map::reset_user() const
+isl::union_map union_map::affine_hull() const
{
- auto res = isl_union_map_reset_user(copy());
+ auto res = isl_union_map_affine_hull(copy());
return manage(res);
}
-isl::union_map union_map::reverse() const
+isl::union_map union_map::apply_domain(isl::union_map umap2) const
{
- auto res = isl_union_map_reverse(copy());
+ auto res = isl_union_map_apply_domain(copy(), umap2.release());
return manage(res);
}
-isl::basic_map union_map::sample() const
+isl::union_map union_map::apply_range(isl::union_map umap2) const
{
- auto res = isl_union_map_sample(copy());
+ auto res = isl_union_map_apply_range(copy(), umap2.release());
return manage(res);
}
-isl::union_map union_map::simple_hull() const
+isl::map union_map::as_map() const
{
- auto res = isl_union_map_simple_hull(copy());
+ auto res = isl_union_map_as_map(copy());
return manage(res);
}
-isl::union_map union_map::subtract(isl::union_map umap2) const
+isl::multi_union_pw_aff union_map::as_multi_union_pw_aff() const
{
- auto res = isl_union_map_subtract(copy(), umap2.release());
+ auto res = isl_union_map_as_multi_union_pw_aff(copy());
return manage(res);
}
-isl::union_map union_map::subtract_domain(isl::union_set dom) const
+isl::union_pw_multi_aff union_map::as_union_pw_multi_aff() const
{
- auto res = isl_union_map_subtract_domain(copy(), dom.release());
+ auto res = isl_union_map_as_union_pw_multi_aff(copy());
return manage(res);
}
-isl::union_map union_map::subtract_range(isl::union_set dom) const
+isl::union_set union_map::bind_range(isl::multi_id tuple) const
{
- auto res = isl_union_map_subtract_range(copy(), dom.release());
+ auto res = isl_union_map_bind_range(copy(), tuple.release());
return manage(res);
}
-isl::union_map union_map::uncurry() const
+isl::union_map union_map::coalesce() const
{
- auto res = isl_union_map_uncurry(copy());
+ auto res = isl_union_map_coalesce(copy());
return manage(res);
}
-isl::union_map union_map::unite(isl::union_map umap2) const
+isl::union_map union_map::compute_divs() const
{
- auto res = isl_union_map_union(copy(), umap2.release());
+ auto res = isl_union_map_compute_divs(copy());
return manage(res);
}
-isl::union_map union_map::universe() const
+isl::union_map union_map::curry() const
{
- auto res = isl_union_map_universe(copy());
+ auto res = isl_union_map_curry(copy());
return manage(res);
}
-isl::union_set union_map::wrap() const
+isl::union_set union_map::deltas() const
{
- auto res = isl_union_map_wrap(copy());
+ auto res = isl_union_map_deltas(copy());
return manage(res);
}
-isl::union_map union_map::zip() const
+isl::union_map union_map::detect_equalities() const
{
- auto res = isl_union_map_zip(copy());
+ auto res = isl_union_map_detect_equalities(copy());
return manage(res);
}
-// implementations for isl::union_map_list
-union_map_list manage(__isl_take isl_union_map_list *ptr) {
- return union_map_list(ptr);
-}
-union_map_list manage_copy(__isl_keep isl_union_map_list *ptr) {
- ptr = isl_union_map_list_copy(ptr);
- return union_map_list(ptr);
+isl::union_set union_map::domain() const
+{
+ auto res = isl_union_map_domain(copy());
+ return manage(res);
}
-union_map_list::union_map_list()
- : ptr(nullptr) {}
-
-union_map_list::union_map_list(const union_map_list &obj)
- : ptr(nullptr)
+isl::union_map union_map::domain_factor_domain() const
{
- ptr = obj.copy();
+ auto res = isl_union_map_domain_factor_domain(copy());
+ return manage(res);
}
-
-union_map_list::union_map_list(__isl_take isl_union_map_list *ptr)
- : ptr(ptr) {}
-
-
-union_map_list &union_map_list::operator=(union_map_list obj) {
- std::swap(this->ptr, obj.ptr);
- return *this;
+isl::union_map union_map::domain_factor_range() const
+{
+ auto res = isl_union_map_domain_factor_range(copy());
+ return manage(res);
}
-union_map_list::~union_map_list() {
- if (ptr)
- isl_union_map_list_free(ptr);
+isl::union_map union_map::domain_map() const
+{
+ auto res = isl_union_map_domain_map(copy());
+ return manage(res);
}
-__isl_give isl_union_map_list *union_map_list::copy() const & {
- return isl_union_map_list_copy(ptr);
+isl::union_pw_multi_aff union_map::domain_map_union_pw_multi_aff() const
+{
+ auto res = isl_union_map_domain_map_union_pw_multi_aff(copy());
+ return manage(res);
}
-__isl_keep isl_union_map_list *union_map_list::get() const {
- return ptr;
+isl::union_map union_map::domain_product(isl::union_map umap2) const
+{
+ auto res = isl_union_map_domain_product(copy(), umap2.release());
+ return manage(res);
}
-__isl_give isl_union_map_list *union_map_list::release() {
- isl_union_map_list *tmp = ptr;
- ptr = nullptr;
- return tmp;
+isl::union_map union_map::empty(isl::ctx ctx)
+{
+ auto res = isl_union_map_empty_ctx(ctx.release());
+ return manage(res);
}
-bool union_map_list::is_null() const {
- return ptr == nullptr;
+isl::union_map union_map::eq_at(isl::multi_union_pw_aff mupa) const
+{
+ auto res = isl_union_map_eq_at_multi_union_pw_aff(copy(), mupa.release());
+ return manage(res);
}
-
-isl::ctx union_map_list::ctx() const {
- return isl::ctx(isl_union_map_list_get_ctx(ptr));
+boolean union_map::every_map(const std::function<boolean(isl::map)> &test) const
+{
+ struct test_data {
+ std::function<boolean(isl::map)> func;
+ } test_data = { test };
+ auto test_lambda = [](isl_map *arg_0, void *arg_1) -> isl_bool {
+ auto *data = static_cast<struct test_data *>(arg_1);
+ auto ret = (data->func)(manage_copy(arg_0));
+ return ret.release();
+ };
+ auto res = isl_union_map_every_map(get(), test_lambda, &test_data);
+ return manage(res);
}
-void union_map_list::dump() const {
- isl_union_map_list_dump(get());
+isl::map union_map::extract_map(isl::space space) const
+{
+ auto res = isl_union_map_extract_map(get(), space.release());
+ return manage(res);
}
-
-isl::union_map_list union_map_list::add(isl::union_map el) const
+isl::union_map union_map::factor_domain() const
{
- auto res = isl_union_map_list_add(copy(), el.release());
+ auto res = isl_union_map_factor_domain(copy());
return manage(res);
}
-isl::union_map_list union_map_list::alloc(isl::ctx ctx, int n)
+isl::union_map union_map::factor_range() const
{
- auto res = isl_union_map_list_alloc(ctx.release(), n);
+ auto res = isl_union_map_factor_range(copy());
return manage(res);
}
-isl::union_map_list union_map_list::clear() const
+isl::union_map union_map::fixed_power(isl::val exp) const
{
- auto res = isl_union_map_list_clear(copy());
+ auto res = isl_union_map_fixed_power_val(copy(), exp.release());
return manage(res);
}
-isl::union_map_list union_map_list::concat(isl::union_map_list list2) const
+isl::union_map union_map::fixed_power(long exp) const
{
- auto res = isl_union_map_list_concat(copy(), list2.release());
- return manage(res);
+ return this->fixed_power(isl::val(ctx(), exp));
}
-isl::union_map_list union_map_list::drop(unsigned int first, unsigned int n) const
+isl::union_map union_map::flat_range_product(isl::union_map umap2) const
{
- auto res = isl_union_map_list_drop(copy(), first, n);
+ auto res = isl_union_map_flat_range_product(copy(), umap2.release());
return manage(res);
}
-stat union_map_list::foreach(const std::function<stat(union_map)> &fn) const
+stat union_map::foreach_map(const std::function<stat(isl::map)> &fn) const
{
struct fn_data {
- const std::function<stat(union_map)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_union_map *arg_0, void *arg_1) -> isl_stat {
+ std::function<stat(isl::map)> func;
+ } fn_data = { fn };
+ auto fn_lambda = [](isl_map *arg_0, void *arg_1) -> isl_stat {
auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
+ auto ret = (data->func)(manage(arg_0));
return ret.release();
};
- auto res = isl_union_map_list_foreach(get(), fn_lambda, &fn_data);
+ auto res = isl_union_map_foreach_map(get(), fn_lambda, &fn_data);
return manage(res);
}
-isl::union_map_list union_map_list::from_union_map(isl::union_map el)
+isl::union_map union_map::from(isl::multi_union_pw_aff mupa)
{
- auto res = isl_union_map_list_from_union_map(el.release());
+ auto res = isl_union_map_from_multi_union_pw_aff(mupa.release());
return manage(res);
}
-isl::union_map union_map_list::get_at(int index) const
+isl::union_map union_map::from(isl::union_pw_multi_aff upma)
{
- auto res = isl_union_map_list_get_at(get(), index);
+ auto res = isl_union_map_from_union_pw_multi_aff(upma.release());
return manage(res);
}
-isl::union_map union_map_list::get_union_map(int index) const
+isl::union_map union_map::from_domain(isl::union_set uset)
{
- auto res = isl_union_map_list_get_union_map(get(), index);
+ auto res = isl_union_map_from_domain(uset.release());
return manage(res);
}
-isl::union_map_list union_map_list::insert(unsigned int pos, isl::union_map el) const
+isl::union_map union_map::from_domain_and_range(isl::union_set domain, isl::union_set range)
{
- auto res = isl_union_map_list_insert(copy(), pos, el.release());
+ auto res = isl_union_map_from_domain_and_range(domain.release(), range.release());
return manage(res);
}
-isl_size union_map_list::n_union_map() const
+isl::union_map union_map::from_range(isl::union_set uset)
{
- auto res = isl_union_map_list_n_union_map(get());
- return res;
+ auto res = isl_union_map_from_range(uset.release());
+ return manage(res);
}
-isl::union_map_list union_map_list::reverse() const
+isl::union_map union_map::gist(isl::union_map context) const
{
- auto res = isl_union_map_list_reverse(copy());
+ auto res = isl_union_map_gist(copy(), context.release());
return manage(res);
}
-isl::union_map_list union_map_list::set_union_map(int index, isl::union_map el) const
+isl::union_map union_map::gist_domain(isl::union_set uset) const
{
- auto res = isl_union_map_list_set_union_map(copy(), index, el.release());
+ auto res = isl_union_map_gist_domain(copy(), uset.release());
return manage(res);
}
-isl_size union_map_list::size() const
+isl::union_map union_map::gist_params(isl::set set) const
{
- auto res = isl_union_map_list_size(get());
- return res;
+ auto res = isl_union_map_gist_params(copy(), set.release());
+ return manage(res);
}
-isl::union_map_list union_map_list::swap(unsigned int pos1, unsigned int pos2) const
+isl::union_map union_map::gist_range(isl::union_set uset) const
{
- auto res = isl_union_map_list_swap(copy(), pos1, pos2);
+ auto res = isl_union_map_gist_range(copy(), uset.release());
return manage(res);
}
-// implementations for isl::union_pw_aff
-union_pw_aff manage(__isl_take isl_union_pw_aff *ptr) {
- return union_pw_aff(ptr);
-}
-union_pw_aff manage_copy(__isl_keep isl_union_pw_aff *ptr) {
- ptr = isl_union_pw_aff_copy(ptr);
- return union_pw_aff(ptr);
-}
-
-union_pw_aff::union_pw_aff()
- : ptr(nullptr) {}
-
-union_pw_aff::union_pw_aff(const union_pw_aff &obj)
- : ptr(nullptr)
+isl::union_map union_map::intersect(isl::union_map umap2) const
{
- ptr = obj.copy();
+ auto res = isl_union_map_intersect(copy(), umap2.release());
+ return manage(res);
}
-
-union_pw_aff::union_pw_aff(__isl_take isl_union_pw_aff *ptr)
- : ptr(ptr) {}
-
-union_pw_aff::union_pw_aff(isl::aff aff)
-{
- auto res = isl_union_pw_aff_from_aff(aff.release());
- ptr = res;
-}
-union_pw_aff::union_pw_aff(isl::pw_aff pa)
-{
- auto res = isl_union_pw_aff_from_pw_aff(pa.release());
- ptr = res;
-}
-union_pw_aff::union_pw_aff(isl::ctx ctx, const std::string &str)
-{
- auto res = isl_union_pw_aff_read_from_str(ctx.release(), str.c_str());
- ptr = res;
-}
-union_pw_aff::union_pw_aff(isl::union_set domain, isl::val v)
+isl::union_map union_map::intersect_domain(isl::space space) const
{
- auto res = isl_union_pw_aff_val_on_domain(domain.release(), v.release());
- ptr = res;
-}
-
-union_pw_aff &union_pw_aff::operator=(union_pw_aff obj) {
- std::swap(this->ptr, obj.ptr);
- return *this;
+ auto res = isl_union_map_intersect_domain_space(copy(), space.release());
+ return manage(res);
}
-union_pw_aff::~union_pw_aff() {
- if (ptr)
- isl_union_pw_aff_free(ptr);
+isl::union_map union_map::intersect_domain(isl::union_set uset) const
+{
+ auto res = isl_union_map_intersect_domain_union_set(copy(), uset.release());
+ return manage(res);
}
-__isl_give isl_union_pw_aff *union_pw_aff::copy() const & {
- return isl_union_pw_aff_copy(ptr);
+isl::union_map union_map::intersect_domain_factor_domain(isl::union_map factor) const
+{
+ auto res = isl_union_map_intersect_domain_factor_domain(copy(), factor.release());
+ return manage(res);
}
-__isl_keep isl_union_pw_aff *union_pw_aff::get() const {
- return ptr;
+isl::union_map union_map::intersect_domain_factor_range(isl::union_map factor) const
+{
+ auto res = isl_union_map_intersect_domain_factor_range(copy(), factor.release());
+ return manage(res);
}
-__isl_give isl_union_pw_aff *union_pw_aff::release() {
- isl_union_pw_aff *tmp = ptr;
- ptr = nullptr;
- return tmp;
+isl::union_map union_map::intersect_params(isl::set set) const
+{
+ auto res = isl_union_map_intersect_params(copy(), set.release());
+ return manage(res);
}
-bool union_pw_aff::is_null() const {
- return ptr == nullptr;
+isl::union_map union_map::intersect_range(isl::space space) const
+{
+ auto res = isl_union_map_intersect_range_space(copy(), space.release());
+ return manage(res);
}
-
-isl::ctx union_pw_aff::ctx() const {
- return isl::ctx(isl_union_pw_aff_get_ctx(ptr));
+isl::union_map union_map::intersect_range(isl::union_set uset) const
+{
+ auto res = isl_union_map_intersect_range_union_set(copy(), uset.release());
+ return manage(res);
}
-void union_pw_aff::dump() const {
- isl_union_pw_aff_dump(get());
+isl::union_map union_map::intersect_range_factor_domain(isl::union_map factor) const
+{
+ auto res = isl_union_map_intersect_range_factor_domain(copy(), factor.release());
+ return manage(res);
}
-
-isl::union_pw_aff union_pw_aff::add(isl::union_pw_aff upa2) const
+isl::union_map union_map::intersect_range_factor_range(isl::union_map factor) const
{
- auto res = isl_union_pw_aff_add(copy(), upa2.release());
+ auto res = isl_union_map_intersect_range_factor_range(copy(), factor.release());
return manage(res);
}
-isl::union_pw_aff union_pw_aff::add_pw_aff(isl::pw_aff pa) const
+boolean union_map::is_bijective() const
{
- auto res = isl_union_pw_aff_add_pw_aff(copy(), pa.release());
+ auto res = isl_union_map_is_bijective(get());
return manage(res);
}
-isl::union_pw_aff union_pw_aff::aff_on_domain(isl::union_set domain, isl::aff aff)
+boolean union_map::is_disjoint(const isl::union_map &umap2) const
{
- auto res = isl_union_pw_aff_aff_on_domain(domain.release(), aff.release());
+ auto res = isl_union_map_is_disjoint(get(), umap2.get());
return manage(res);
}
-isl::union_pw_aff union_pw_aff::align_params(isl::space model) const
+boolean union_map::is_empty() const
{
- auto res = isl_union_pw_aff_align_params(copy(), model.release());
+ auto res = isl_union_map_is_empty(get());
return manage(res);
}
-isl::union_set union_pw_aff::bind(isl::id id) const
+boolean union_map::is_equal(const isl::union_map &umap2) const
{
- auto res = isl_union_pw_aff_bind_id(copy(), id.release());
+ auto res = isl_union_map_is_equal(get(), umap2.get());
return manage(res);
}
-isl::union_pw_aff union_pw_aff::coalesce() const
+boolean union_map::is_injective() const
{
- auto res = isl_union_pw_aff_coalesce(copy());
+ auto res = isl_union_map_is_injective(get());
return manage(res);
}
-isl_size union_pw_aff::dim(isl::dim type) const
+boolean union_map::is_single_valued() const
{
- auto res = isl_union_pw_aff_dim(get(), static_cast<enum isl_dim_type>(type));
- return res;
+ auto res = isl_union_map_is_single_valued(get());
+ return manage(res);
}
-isl::union_set union_pw_aff::domain() const
+boolean union_map::is_strict_subset(const isl::union_map &umap2) const
{
- auto res = isl_union_pw_aff_domain(copy());
+ auto res = isl_union_map_is_strict_subset(get(), umap2.get());
return manage(res);
}
-isl::union_pw_aff union_pw_aff::drop_dims(isl::dim type, unsigned int first, unsigned int n) const
+boolean union_map::is_subset(const isl::union_map &umap2) const
{
- auto res = isl_union_pw_aff_drop_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
+ auto res = isl_union_map_is_subset(get(), umap2.get());
return manage(res);
}
-isl::union_pw_aff union_pw_aff::empty(isl::space space)
+boolean union_map::isa_map() const
{
- auto res = isl_union_pw_aff_empty(space.release());
+ auto res = isl_union_map_isa_map(get());
return manage(res);
}
-isl::union_pw_aff union_pw_aff::empty_ctx(isl::ctx ctx)
+isl::union_map union_map::lexmax() const
{
- auto res = isl_union_pw_aff_empty_ctx(ctx.release());
+ auto res = isl_union_map_lexmax(copy());
return manage(res);
}
-isl::union_pw_aff union_pw_aff::empty_space(isl::space space)
+isl::union_map union_map::lexmin() const
{
- auto res = isl_union_pw_aff_empty_space(space.release());
+ auto res = isl_union_map_lexmin(copy());
return manage(res);
}
-isl::pw_aff union_pw_aff::extract_pw_aff(isl::space space) const
+isl::map_list union_map::map_list() const
{
- auto res = isl_union_pw_aff_extract_pw_aff(get(), space.release());
+ auto res = isl_union_map_get_map_list(get());
return manage(res);
}
-int union_pw_aff::find_dim_by_name(isl::dim type, const std::string &name) const
+isl::map_list union_map::get_map_list() const
{
- auto res = isl_union_pw_aff_find_dim_by_name(get(), static_cast<enum isl_dim_type>(type), name.c_str());
- return res;
+ return map_list();
}
-isl::union_pw_aff union_pw_aff::floor() const
+isl::set union_map::params() const
{
- auto res = isl_union_pw_aff_floor(copy());
+ auto res = isl_union_map_params(copy());
return manage(res);
}
-stat union_pw_aff::foreach_pw_aff(const std::function<stat(pw_aff)> &fn) const
+isl::union_map union_map::polyhedral_hull() const
{
- struct fn_data {
- const std::function<stat(pw_aff)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_pw_aff *arg_0, void *arg_1) -> isl_stat {
- auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
- return ret.release();
- };
- auto res = isl_union_pw_aff_foreach_pw_aff(get(), fn_lambda, &fn_data);
+ auto res = isl_union_map_polyhedral_hull(copy());
return manage(res);
}
-isl::pw_aff_list union_pw_aff::get_pw_aff_list() const
+isl::union_map union_map::preimage_domain(isl::multi_aff ma) const
{
- auto res = isl_union_pw_aff_get_pw_aff_list(get());
+ auto res = isl_union_map_preimage_domain_multi_aff(copy(), ma.release());
return manage(res);
}
-isl::space union_pw_aff::get_space() const
+isl::union_map union_map::preimage_domain(isl::multi_pw_aff mpa) const
{
- auto res = isl_union_pw_aff_get_space(get());
+ auto res = isl_union_map_preimage_domain_multi_pw_aff(copy(), mpa.release());
return manage(res);
}
-isl::union_pw_aff union_pw_aff::gist(isl::union_set context) const
+isl::union_map union_map::preimage_domain(isl::pw_multi_aff pma) const
{
- auto res = isl_union_pw_aff_gist(copy(), context.release());
+ auto res = isl_union_map_preimage_domain_pw_multi_aff(copy(), pma.release());
return manage(res);
}
-isl::union_pw_aff union_pw_aff::gist_params(isl::set context) const
+isl::union_map union_map::preimage_domain(isl::union_pw_multi_aff upma) const
{
- auto res = isl_union_pw_aff_gist_params(copy(), context.release());
+ auto res = isl_union_map_preimage_domain_union_pw_multi_aff(copy(), upma.release());
return manage(res);
}
-isl::union_pw_aff union_pw_aff::intersect_domain(isl::space space) const
+isl::union_map union_map::preimage_range(isl::multi_aff ma) const
{
- auto res = isl_union_pw_aff_intersect_domain_space(copy(), space.release());
+ auto res = isl_union_map_preimage_range_multi_aff(copy(), ma.release());
return manage(res);
}
-isl::union_pw_aff union_pw_aff::intersect_domain(isl::union_set uset) const
+isl::union_map union_map::preimage_range(isl::pw_multi_aff pma) const
{
- auto res = isl_union_pw_aff_intersect_domain_union_set(copy(), uset.release());
+ auto res = isl_union_map_preimage_range_pw_multi_aff(copy(), pma.release());
return manage(res);
}
-isl::union_pw_aff union_pw_aff::intersect_domain_wrapped_domain(isl::union_set uset) const
+isl::union_map union_map::preimage_range(isl::union_pw_multi_aff upma) const
{
- auto res = isl_union_pw_aff_intersect_domain_wrapped_domain(copy(), uset.release());
+ auto res = isl_union_map_preimage_range_union_pw_multi_aff(copy(), upma.release());
return manage(res);
}
-isl::union_pw_aff union_pw_aff::intersect_domain_wrapped_range(isl::union_set uset) const
+isl::union_map union_map::product(isl::union_map umap2) const
{
- auto res = isl_union_pw_aff_intersect_domain_wrapped_range(copy(), uset.release());
+ auto res = isl_union_map_product(copy(), umap2.release());
return manage(res);
}
-isl::union_pw_aff union_pw_aff::intersect_params(isl::set set) const
+isl::union_map union_map::project_out_all_params() const
{
- auto res = isl_union_pw_aff_intersect_params(copy(), set.release());
+ auto res = isl_union_map_project_out_all_params(copy());
return manage(res);
}
-boolean union_pw_aff::involves_nan() const
+isl::union_set union_map::range() const
{
- auto res = isl_union_pw_aff_involves_nan(get());
+ auto res = isl_union_map_range(copy());
return manage(res);
}
-isl::val union_pw_aff::max_val() const
+isl::union_map union_map::range_factor_domain() const
{
- auto res = isl_union_pw_aff_max_val(copy());
+ auto res = isl_union_map_range_factor_domain(copy());
return manage(res);
}
-isl::val union_pw_aff::min_val() const
+isl::union_map union_map::range_factor_range() const
{
- auto res = isl_union_pw_aff_min_val(copy());
+ auto res = isl_union_map_range_factor_range(copy());
return manage(res);
}
-isl::union_pw_aff union_pw_aff::mod_val(isl::val f) const
+isl::union_map union_map::range_map() const
{
- auto res = isl_union_pw_aff_mod_val(copy(), f.release());
+ auto res = isl_union_map_range_map(copy());
return manage(res);
}
-isl_size union_pw_aff::n_pw_aff() const
+isl::union_map union_map::range_product(isl::union_map umap2) const
{
- auto res = isl_union_pw_aff_n_pw_aff(get());
- return res;
+ auto res = isl_union_map_range_product(copy(), umap2.release());
+ return manage(res);
}
-isl::union_pw_aff union_pw_aff::neg() const
+isl::union_map union_map::range_reverse() const
{
- auto res = isl_union_pw_aff_neg(copy());
+ auto res = isl_union_map_range_reverse(copy());
return manage(res);
}
-isl::union_pw_aff union_pw_aff::param_on_domain_id(isl::union_set domain, isl::id id)
+isl::union_map union_map::reverse() const
{
- auto res = isl_union_pw_aff_param_on_domain_id(domain.release(), id.release());
+ auto res = isl_union_map_reverse(copy());
return manage(res);
}
-boolean union_pw_aff::plain_is_equal(const isl::union_pw_aff &upa2) const
+isl::space union_map::space() const
{
- auto res = isl_union_pw_aff_plain_is_equal(get(), upa2.get());
+ auto res = isl_union_map_get_space(get());
return manage(res);
}
-isl::union_pw_aff union_pw_aff::pullback(isl::union_pw_multi_aff upma) const
+isl::space union_map::get_space() const
{
- auto res = isl_union_pw_aff_pullback_union_pw_multi_aff(copy(), upma.release());
- return manage(res);
+ return space();
}
-isl::union_pw_aff union_pw_aff::pw_aff_on_domain(isl::union_set domain, isl::pw_aff pa)
+isl::union_map union_map::subtract(isl::union_map umap2) const
{
- auto res = isl_union_pw_aff_pw_aff_on_domain(domain.release(), pa.release());
+ auto res = isl_union_map_subtract(copy(), umap2.release());
return manage(res);
}
-isl::union_pw_aff union_pw_aff::reset_user() const
+isl::union_map union_map::subtract_domain(isl::union_set dom) const
{
- auto res = isl_union_pw_aff_reset_user(copy());
+ auto res = isl_union_map_subtract_domain(copy(), dom.release());
return manage(res);
}
-isl::union_pw_aff union_pw_aff::scale_down_val(isl::val v) const
+isl::union_map union_map::subtract_range(isl::union_set dom) const
{
- auto res = isl_union_pw_aff_scale_down_val(copy(), v.release());
+ auto res = isl_union_map_subtract_range(copy(), dom.release());
return manage(res);
}
-isl::union_pw_aff union_pw_aff::scale_val(isl::val v) const
+isl::union_map union_map::uncurry() const
{
- auto res = isl_union_pw_aff_scale_val(copy(), v.release());
+ auto res = isl_union_map_uncurry(copy());
return manage(res);
}
-isl::union_pw_aff union_pw_aff::sub(isl::union_pw_aff upa2) const
+isl::union_map union_map::unite(isl::union_map umap2) const
{
- auto res = isl_union_pw_aff_sub(copy(), upa2.release());
+ auto res = isl_union_map_union(copy(), umap2.release());
return manage(res);
}
-isl::union_pw_aff union_pw_aff::subtract_domain(isl::space space) const
+isl::union_map union_map::universe() const
{
- auto res = isl_union_pw_aff_subtract_domain_space(copy(), space.release());
+ auto res = isl_union_map_universe(copy());
return manage(res);
}
-isl::union_pw_aff union_pw_aff::subtract_domain(isl::union_set uset) const
+isl::union_set union_map::wrap() const
{
- auto res = isl_union_pw_aff_subtract_domain_union_set(copy(), uset.release());
+ auto res = isl_union_map_wrap(copy());
return manage(res);
}
-isl::union_pw_aff union_pw_aff::union_add(isl::union_pw_aff upa2) const
+isl::union_map union_map::zip() const
{
- auto res = isl_union_pw_aff_union_add(copy(), upa2.release());
+ auto res = isl_union_map_zip(copy());
return manage(res);
}
-isl::union_set union_pw_aff::zero_union_set() const
+inline std::ostream &operator<<(std::ostream &os, const union_map &obj)
{
- auto res = isl_union_pw_aff_zero_union_set(copy());
- return manage(res);
+ char *str = isl_union_map_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-// implementations for isl::union_pw_aff_list
-union_pw_aff_list manage(__isl_take isl_union_pw_aff_list *ptr) {
- return union_pw_aff_list(ptr);
+// implementations for isl::union_pw_aff
+union_pw_aff manage(__isl_take isl_union_pw_aff *ptr) {
+ return union_pw_aff(ptr);
}
-union_pw_aff_list manage_copy(__isl_keep isl_union_pw_aff_list *ptr) {
- ptr = isl_union_pw_aff_list_copy(ptr);
- return union_pw_aff_list(ptr);
+union_pw_aff manage_copy(__isl_keep isl_union_pw_aff *ptr) {
+ ptr = isl_union_pw_aff_copy(ptr);
+ return union_pw_aff(ptr);
}
-union_pw_aff_list::union_pw_aff_list()
+union_pw_aff::union_pw_aff()
: ptr(nullptr) {}
-union_pw_aff_list::union_pw_aff_list(const union_pw_aff_list &obj)
+union_pw_aff::union_pw_aff(const union_pw_aff &obj)
: ptr(nullptr)
{
ptr = obj.copy();
}
-
-union_pw_aff_list::union_pw_aff_list(__isl_take isl_union_pw_aff_list *ptr)
+union_pw_aff::union_pw_aff(__isl_take isl_union_pw_aff *ptr)
: ptr(ptr) {}
+union_pw_aff::union_pw_aff(isl::aff aff)
+{
+ auto res = isl_union_pw_aff_from_aff(aff.release());
+ ptr = res;
+}
-union_pw_aff_list &union_pw_aff_list::operator=(union_pw_aff_list obj) {
+union_pw_aff::union_pw_aff(isl::pw_aff pa)
+{
+ auto res = isl_union_pw_aff_from_pw_aff(pa.release());
+ ptr = res;
+}
+
+union_pw_aff::union_pw_aff(isl::ctx ctx, const std::string &str)
+{
+ auto res = isl_union_pw_aff_read_from_str(ctx.release(), str.c_str());
+ ptr = res;
+}
+
+union_pw_aff::union_pw_aff(isl::union_set domain, isl::val v)
+{
+ auto res = isl_union_pw_aff_val_on_domain(domain.release(), v.release());
+ ptr = res;
+}
+
+union_pw_aff &union_pw_aff::operator=(union_pw_aff obj) {
std::swap(this->ptr, obj.ptr);
return *this;
}
-union_pw_aff_list::~union_pw_aff_list() {
+union_pw_aff::~union_pw_aff() {
if (ptr)
- isl_union_pw_aff_list_free(ptr);
+ isl_union_pw_aff_free(ptr);
}
-__isl_give isl_union_pw_aff_list *union_pw_aff_list::copy() const & {
- return isl_union_pw_aff_list_copy(ptr);
+__isl_give isl_union_pw_aff *union_pw_aff::copy() const & {
+ return isl_union_pw_aff_copy(ptr);
}
-__isl_keep isl_union_pw_aff_list *union_pw_aff_list::get() const {
+__isl_keep isl_union_pw_aff *union_pw_aff::get() const {
return ptr;
}
-__isl_give isl_union_pw_aff_list *union_pw_aff_list::release() {
- isl_union_pw_aff_list *tmp = ptr;
+__isl_give isl_union_pw_aff *union_pw_aff::release() {
+ isl_union_pw_aff *tmp = ptr;
ptr = nullptr;
return tmp;
}
-bool union_pw_aff_list::is_null() const {
+bool union_pw_aff::is_null() const {
return ptr == nullptr;
}
-
-isl::ctx union_pw_aff_list::ctx() const {
- return isl::ctx(isl_union_pw_aff_list_get_ctx(ptr));
-}
-
-void union_pw_aff_list::dump() const {
- isl_union_pw_aff_list_dump(get());
+isl::ctx union_pw_aff::ctx() const {
+ return isl::ctx(isl_union_pw_aff_get_ctx(ptr));
}
-
-isl::union_pw_aff_list union_pw_aff_list::add(isl::union_pw_aff el) const
+isl::multi_union_pw_aff union_pw_aff::add(const isl::multi_union_pw_aff &multi2) const
{
- auto res = isl_union_pw_aff_list_add(copy(), el.release());
- return manage(res);
+ return isl::multi_union_pw_aff(*this).add(multi2);
}
-isl::union_pw_aff_list union_pw_aff_list::alloc(isl::ctx ctx, int n)
+isl::union_pw_aff union_pw_aff::add(isl::union_pw_aff upa2) const
{
- auto res = isl_union_pw_aff_list_alloc(ctx.release(), n);
+ auto res = isl_union_pw_aff_add(copy(), upa2.release());
return manage(res);
}
-isl::union_pw_aff_list union_pw_aff_list::clear() const
+isl::union_pw_multi_aff union_pw_aff::add(const isl::union_pw_multi_aff &upma2) const
{
- auto res = isl_union_pw_aff_list_clear(copy());
- return manage(res);
+ return isl::union_pw_multi_aff(*this).add(upma2);
}
-isl::union_pw_aff_list union_pw_aff_list::concat(isl::union_pw_aff_list list2) const
+isl::union_pw_aff union_pw_aff::add(const isl::aff &upa2) const
{
- auto res = isl_union_pw_aff_list_concat(copy(), list2.release());
- return manage(res);
+ return this->add(isl::union_pw_aff(upa2));
}
-isl::union_pw_aff_list union_pw_aff_list::drop(unsigned int first, unsigned int n) const
+isl::union_pw_aff union_pw_aff::add(const isl::pw_aff &upa2) const
{
- auto res = isl_union_pw_aff_list_drop(copy(), first, n);
- return manage(res);
+ return this->add(isl::union_pw_aff(upa2));
}
-stat union_pw_aff_list::foreach(const std::function<stat(union_pw_aff)> &fn) const
+isl::union_pw_multi_aff union_pw_aff::add_pw_multi_aff(const isl::pw_multi_aff &pma) const
{
- struct fn_data {
- const std::function<stat(union_pw_aff)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_union_pw_aff *arg_0, void *arg_1) -> isl_stat {
- auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
- return ret.release();
- };
- auto res = isl_union_pw_aff_list_foreach(get(), fn_lambda, &fn_data);
- return manage(res);
+ return isl::union_pw_multi_aff(*this).add_pw_multi_aff(pma);
}
-isl::union_pw_aff_list union_pw_aff_list::from_union_pw_aff(isl::union_pw_aff el)
+isl::union_pw_multi_aff union_pw_aff::apply(const isl::union_pw_multi_aff &upma2) const
{
- auto res = isl_union_pw_aff_list_from_union_pw_aff(el.release());
- return manage(res);
+ return isl::union_pw_multi_aff(*this).apply(upma2);
}
-isl::union_pw_aff union_pw_aff_list::get_at(int index) const
+isl::multi_union_pw_aff union_pw_aff::as_multi_union_pw_aff() const
{
- auto res = isl_union_pw_aff_list_get_at(get(), index);
- return manage(res);
+ return isl::union_pw_multi_aff(*this).as_multi_union_pw_aff();
}
-isl::union_pw_aff union_pw_aff_list::get_union_pw_aff(int index) const
+isl::pw_multi_aff union_pw_aff::as_pw_multi_aff() const
{
- auto res = isl_union_pw_aff_list_get_union_pw_aff(get(), index);
- return manage(res);
+ return isl::union_pw_multi_aff(*this).as_pw_multi_aff();
}
-isl::union_pw_aff_list union_pw_aff_list::insert(unsigned int pos, isl::union_pw_aff el) const
+isl::union_map union_pw_aff::as_union_map() const
{
- auto res = isl_union_pw_aff_list_insert(copy(), pos, el.release());
- return manage(res);
+ return isl::union_pw_multi_aff(*this).as_union_map();
}
-isl_size union_pw_aff_list::n_union_pw_aff() const
+isl::union_pw_aff union_pw_aff::at(int pos) const
{
- auto res = isl_union_pw_aff_list_n_union_pw_aff(get());
- return res;
+ return isl::multi_union_pw_aff(*this).at(pos);
}
-isl::union_pw_aff_list union_pw_aff_list::reverse() const
+isl::union_set union_pw_aff::bind(const isl::multi_id &tuple) const
{
- auto res = isl_union_pw_aff_list_reverse(copy());
- return manage(res);
+ return isl::multi_union_pw_aff(*this).bind(tuple);
}
-isl::union_pw_aff_list union_pw_aff_list::set_union_pw_aff(int index, isl::union_pw_aff el) const
+isl::union_set union_pw_aff::bind(isl::id id) const
{
- auto res = isl_union_pw_aff_list_set_union_pw_aff(copy(), index, el.release());
+ auto res = isl_union_pw_aff_bind_id(copy(), id.release());
return manage(res);
}
-isl_size union_pw_aff_list::size() const
+isl::union_set union_pw_aff::bind(const std::string &id) const
{
- auto res = isl_union_pw_aff_list_size(get());
- return res;
+ return this->bind(isl::id(ctx(), id));
}
-isl::union_pw_aff_list union_pw_aff_list::swap(unsigned int pos1, unsigned int pos2) const
+isl::union_pw_aff union_pw_aff::coalesce() const
{
- auto res = isl_union_pw_aff_list_swap(copy(), pos1, pos2);
+ auto res = isl_union_pw_aff_coalesce(copy());
return manage(res);
}
-// implementations for isl::union_pw_multi_aff
-union_pw_multi_aff manage(__isl_take isl_union_pw_multi_aff *ptr) {
- return union_pw_multi_aff(ptr);
-}
-union_pw_multi_aff manage_copy(__isl_keep isl_union_pw_multi_aff *ptr) {
- ptr = isl_union_pw_multi_aff_copy(ptr);
- return union_pw_multi_aff(ptr);
-}
-
-union_pw_multi_aff::union_pw_multi_aff()
- : ptr(nullptr) {}
-
-union_pw_multi_aff::union_pw_multi_aff(const union_pw_multi_aff &obj)
- : ptr(nullptr)
+class size union_pw_aff::dim(isl::dim type) const
{
- ptr = obj.copy();
+ return isl::multi_union_pw_aff(*this).dim(type);
}
-
-union_pw_multi_aff::union_pw_multi_aff(__isl_take isl_union_pw_multi_aff *ptr)
- : ptr(ptr) {}
-
-union_pw_multi_aff::union_pw_multi_aff(isl::aff aff)
-{
- auto res = isl_union_pw_multi_aff_from_aff(aff.release());
- ptr = res;
-}
-union_pw_multi_aff::union_pw_multi_aff(isl::union_set uset)
-{
- auto res = isl_union_pw_multi_aff_from_domain(uset.release());
- ptr = res;
-}
-union_pw_multi_aff::union_pw_multi_aff(isl::multi_aff ma)
-{
- auto res = isl_union_pw_multi_aff_from_multi_aff(ma.release());
- ptr = res;
-}
-union_pw_multi_aff::union_pw_multi_aff(isl::multi_union_pw_aff mupa)
-{
- auto res = isl_union_pw_multi_aff_from_multi_union_pw_aff(mupa.release());
- ptr = res;
-}
-union_pw_multi_aff::union_pw_multi_aff(isl::pw_multi_aff pma)
-{
- auto res = isl_union_pw_multi_aff_from_pw_multi_aff(pma.release());
- ptr = res;
-}
-union_pw_multi_aff::union_pw_multi_aff(isl::union_map umap)
-{
- auto res = isl_union_pw_multi_aff_from_union_map(umap.release());
- ptr = res;
-}
-union_pw_multi_aff::union_pw_multi_aff(isl::union_pw_aff upa)
-{
- auto res = isl_union_pw_multi_aff_from_union_pw_aff(upa.release());
- ptr = res;
-}
-union_pw_multi_aff::union_pw_multi_aff(isl::ctx ctx, const std::string &str)
+isl::union_set union_pw_aff::domain() const
{
- auto res = isl_union_pw_multi_aff_read_from_str(ctx.release(), str.c_str());
- ptr = res;
+ auto res = isl_union_pw_aff_domain(copy());
+ return manage(res);
}
-union_pw_multi_aff &union_pw_multi_aff::operator=(union_pw_multi_aff obj) {
- std::swap(this->ptr, obj.ptr);
- return *this;
+isl::union_pw_aff union_pw_aff::empty(isl::space space)
+{
+ auto res = isl_union_pw_aff_empty(space.release());
+ return manage(res);
}
-union_pw_multi_aff::~union_pw_multi_aff() {
- if (ptr)
- isl_union_pw_multi_aff_free(ptr);
+isl::pw_multi_aff union_pw_aff::extract_pw_multi_aff(const isl::space &space) const
+{
+ return isl::union_pw_multi_aff(*this).extract_pw_multi_aff(space);
}
-__isl_give isl_union_pw_multi_aff *union_pw_multi_aff::copy() const & {
- return isl_union_pw_multi_aff_copy(ptr);
+isl::multi_union_pw_aff union_pw_aff::flat_range_product(const isl::multi_union_pw_aff &multi2) const
+{
+ return isl::multi_union_pw_aff(*this).flat_range_product(multi2);
}
-__isl_keep isl_union_pw_multi_aff *union_pw_multi_aff::get() const {
- return ptr;
+isl::union_pw_multi_aff union_pw_aff::flat_range_product(const isl::union_pw_multi_aff &upma2) const
+{
+ return isl::union_pw_multi_aff(*this).flat_range_product(upma2);
}
-__isl_give isl_union_pw_multi_aff *union_pw_multi_aff::release() {
- isl_union_pw_multi_aff *tmp = ptr;
- ptr = nullptr;
- return tmp;
+stat union_pw_aff::foreach_pw_aff(const std::function<stat(isl::pw_aff)> &fn) const
+{
+ struct fn_data {
+ std::function<stat(isl::pw_aff)> func;
+ } fn_data = { fn };
+ auto fn_lambda = [](isl_pw_aff *arg_0, void *arg_1) -> isl_stat {
+ auto *data = static_cast<struct fn_data *>(arg_1);
+ auto ret = (data->func)(manage(arg_0));
+ return ret.release();
+ };
+ auto res = isl_union_pw_aff_foreach_pw_aff(get(), fn_lambda, &fn_data);
+ return manage(res);
}
-bool union_pw_multi_aff::is_null() const {
- return ptr == nullptr;
+isl::union_pw_aff union_pw_aff::gist(isl::union_set context) const
+{
+ auto res = isl_union_pw_aff_gist(copy(), context.release());
+ return manage(res);
}
-
-isl::ctx union_pw_multi_aff::ctx() const {
- return isl::ctx(isl_union_pw_multi_aff_get_ctx(ptr));
+boolean union_pw_aff::has_range_tuple_id() const
+{
+ return isl::multi_union_pw_aff(*this).has_range_tuple_id();
}
-void union_pw_multi_aff::dump() const {
- isl_union_pw_multi_aff_dump(get());
+isl::union_pw_aff union_pw_aff::intersect_domain(isl::space space) const
+{
+ auto res = isl_union_pw_aff_intersect_domain_space(copy(), space.release());
+ return manage(res);
}
-
-isl::union_pw_multi_aff union_pw_multi_aff::add(isl::union_pw_multi_aff upma2) const
+isl::union_pw_aff union_pw_aff::intersect_domain(isl::union_set uset) const
{
- auto res = isl_union_pw_multi_aff_add(copy(), upma2.release());
+ auto res = isl_union_pw_aff_intersect_domain_union_set(copy(), uset.release());
return manage(res);
}
-isl::union_pw_multi_aff union_pw_multi_aff::add_pw_multi_aff(isl::pw_multi_aff pma) const
+isl::union_pw_aff union_pw_aff::intersect_domain_wrapped_domain(isl::union_set uset) const
{
- auto res = isl_union_pw_multi_aff_add_pw_multi_aff(copy(), pma.release());
+ auto res = isl_union_pw_aff_intersect_domain_wrapped_domain(copy(), uset.release());
return manage(res);
}
-isl::union_pw_multi_aff union_pw_multi_aff::align_params(isl::space model) const
+isl::union_pw_aff union_pw_aff::intersect_domain_wrapped_range(isl::union_set uset) const
{
- auto res = isl_union_pw_multi_aff_align_params(copy(), model.release());
+ auto res = isl_union_pw_aff_intersect_domain_wrapped_range(copy(), uset.release());
return manage(res);
}
-isl::union_pw_multi_aff union_pw_multi_aff::apply(isl::union_pw_multi_aff upma2) const
+isl::union_pw_aff union_pw_aff::intersect_params(isl::set set) const
{
- auto res = isl_union_pw_multi_aff_apply_union_pw_multi_aff(copy(), upma2.release());
+ auto res = isl_union_pw_aff_intersect_params(copy(), set.release());
return manage(res);
}
-isl::pw_multi_aff union_pw_multi_aff::as_pw_multi_aff() const
+boolean union_pw_aff::involves_locals() const
{
- auto res = isl_union_pw_multi_aff_as_pw_multi_aff(copy());
- return manage(res);
+ return isl::union_pw_multi_aff(*this).involves_locals();
}
-isl::union_pw_multi_aff union_pw_multi_aff::coalesce() const
+boolean union_pw_aff::involves_nan() const
{
- auto res = isl_union_pw_multi_aff_coalesce(copy());
- return manage(res);
+ return isl::multi_union_pw_aff(*this).involves_nan();
}
-isl_size union_pw_multi_aff::dim(isl::dim type) const
+boolean union_pw_aff::isa_pw_multi_aff() const
{
- auto res = isl_union_pw_multi_aff_dim(get(), static_cast<enum isl_dim_type>(type));
- return res;
+ return isl::union_pw_multi_aff(*this).isa_pw_multi_aff();
}
-isl::union_set union_pw_multi_aff::domain() const
+isl::union_pw_aff_list union_pw_aff::list() const
{
- auto res = isl_union_pw_multi_aff_domain(copy());
- return manage(res);
+ return isl::multi_union_pw_aff(*this).list();
}
-isl::union_pw_multi_aff union_pw_multi_aff::drop_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::multi_union_pw_aff union_pw_aff::neg() const
{
- auto res = isl_union_pw_multi_aff_drop_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
+ return isl::multi_union_pw_aff(*this).neg();
}
-isl::union_pw_multi_aff union_pw_multi_aff::empty(isl::space space)
+boolean union_pw_aff::plain_is_empty() const
{
- auto res = isl_union_pw_multi_aff_empty(space.release());
- return manage(res);
+ return isl::union_pw_multi_aff(*this).plain_is_empty();
}
-isl::union_pw_multi_aff union_pw_multi_aff::empty(isl::ctx ctx)
+boolean union_pw_aff::plain_is_equal(const isl::multi_union_pw_aff &multi2) const
{
- auto res = isl_union_pw_multi_aff_empty_ctx(ctx.release());
- return manage(res);
+ return isl::multi_union_pw_aff(*this).plain_is_equal(multi2);
}
-isl::union_pw_multi_aff union_pw_multi_aff::empty_space(isl::space space)
+isl::union_pw_multi_aff union_pw_aff::preimage_domain_wrapped_domain(const isl::union_pw_multi_aff &upma2) const
{
- auto res = isl_union_pw_multi_aff_empty_space(space.release());
- return manage(res);
+ return isl::union_pw_multi_aff(*this).preimage_domain_wrapped_domain(upma2);
}
-isl::pw_multi_aff union_pw_multi_aff::extract_pw_multi_aff(isl::space space) const
+isl::union_pw_aff union_pw_aff::pullback(isl::union_pw_multi_aff upma) const
{
- auto res = isl_union_pw_multi_aff_extract_pw_multi_aff(get(), space.release());
+ auto res = isl_union_pw_aff_pullback_union_pw_multi_aff(copy(), upma.release());
return manage(res);
}
-int union_pw_multi_aff::find_dim_by_name(isl::dim type, const std::string &name) const
+isl::pw_multi_aff_list union_pw_aff::pw_multi_aff_list() const
{
- auto res = isl_union_pw_multi_aff_find_dim_by_name(get(), static_cast<enum isl_dim_type>(type), name.c_str());
- return res;
+ return isl::union_pw_multi_aff(*this).pw_multi_aff_list();
}
-isl::union_pw_multi_aff union_pw_multi_aff::flat_range_product(isl::union_pw_multi_aff upma2) const
+isl::union_pw_multi_aff union_pw_aff::range_factor_domain() const
{
- auto res = isl_union_pw_multi_aff_flat_range_product(copy(), upma2.release());
- return manage(res);
+ return isl::union_pw_multi_aff(*this).range_factor_domain();
}
-stat union_pw_multi_aff::foreach_pw_multi_aff(const std::function<stat(pw_multi_aff)> &fn) const
+isl::union_pw_multi_aff union_pw_aff::range_factor_range() const
{
- struct fn_data {
- const std::function<stat(pw_multi_aff)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_pw_multi_aff *arg_0, void *arg_1) -> isl_stat {
- auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
- return ret.release();
- };
- auto res = isl_union_pw_multi_aff_foreach_pw_multi_aff(get(), fn_lambda, &fn_data);
- return manage(res);
+ return isl::union_pw_multi_aff(*this).range_factor_range();
}
-isl::union_pw_multi_aff union_pw_multi_aff::from_union_set(isl::union_set uset)
+isl::multi_union_pw_aff union_pw_aff::range_product(const isl::multi_union_pw_aff &multi2) const
{
- auto res = isl_union_pw_multi_aff_from_union_set(uset.release());
- return manage(res);
+ return isl::multi_union_pw_aff(*this).range_product(multi2);
}
-isl::pw_multi_aff_list union_pw_multi_aff::get_pw_multi_aff_list() const
+isl::union_pw_multi_aff union_pw_aff::range_product(const isl::union_pw_multi_aff &upma2) const
{
- auto res = isl_union_pw_multi_aff_get_pw_multi_aff_list(get());
- return manage(res);
+ return isl::union_pw_multi_aff(*this).range_product(upma2);
}
-isl::space union_pw_multi_aff::get_space() const
+isl::id union_pw_aff::range_tuple_id() const
{
- auto res = isl_union_pw_multi_aff_get_space(get());
- return manage(res);
+ return isl::multi_union_pw_aff(*this).range_tuple_id();
}
-isl::union_pw_aff union_pw_multi_aff::get_union_pw_aff(int pos) const
+isl::multi_union_pw_aff union_pw_aff::reset_range_tuple_id() const
{
- auto res = isl_union_pw_multi_aff_get_union_pw_aff(get(), pos);
- return manage(res);
+ return isl::multi_union_pw_aff(*this).reset_range_tuple_id();
}
-isl::union_pw_multi_aff union_pw_multi_aff::gist(isl::union_set context) const
+isl::multi_union_pw_aff union_pw_aff::reset_tuple_id(isl::dim type) const
{
- auto res = isl_union_pw_multi_aff_gist(copy(), context.release());
- return manage(res);
+ return isl::multi_union_pw_aff(*this).reset_tuple_id(type);
}
-isl::union_pw_multi_aff union_pw_multi_aff::gist_params(isl::set context) const
+isl::multi_union_pw_aff union_pw_aff::scale(const isl::multi_val &mv) const
{
- auto res = isl_union_pw_multi_aff_gist_params(copy(), context.release());
- return manage(res);
+ return isl::multi_union_pw_aff(*this).scale(mv);
}
-isl::union_pw_multi_aff union_pw_multi_aff::intersect_domain(isl::space space) const
+isl::multi_union_pw_aff union_pw_aff::scale(const isl::val &v) const
{
- auto res = isl_union_pw_multi_aff_intersect_domain_space(copy(), space.release());
- return manage(res);
+ return isl::multi_union_pw_aff(*this).scale(v);
}
-isl::union_pw_multi_aff union_pw_multi_aff::intersect_domain(isl::union_set uset) const
+isl::multi_union_pw_aff union_pw_aff::scale(long v) const
{
- auto res = isl_union_pw_multi_aff_intersect_domain_union_set(copy(), uset.release());
- return manage(res);
+ return this->scale(isl::val(ctx(), v));
}
-isl::union_pw_multi_aff union_pw_multi_aff::intersect_domain_wrapped_domain(isl::union_set uset) const
+isl::multi_union_pw_aff union_pw_aff::scale_down(const isl::multi_val &mv) const
{
- auto res = isl_union_pw_multi_aff_intersect_domain_wrapped_domain(copy(), uset.release());
- return manage(res);
+ return isl::multi_union_pw_aff(*this).scale_down(mv);
}
-isl::union_pw_multi_aff union_pw_multi_aff::intersect_domain_wrapped_range(isl::union_set uset) const
+isl::multi_union_pw_aff union_pw_aff::scale_down(const isl::val &v) const
{
- auto res = isl_union_pw_multi_aff_intersect_domain_wrapped_range(copy(), uset.release());
- return manage(res);
+ return isl::multi_union_pw_aff(*this).scale_down(v);
}
-isl::union_pw_multi_aff union_pw_multi_aff::intersect_params(isl::set set) const
+isl::multi_union_pw_aff union_pw_aff::scale_down(long v) const
{
- auto res = isl_union_pw_multi_aff_intersect_params(copy(), set.release());
- return manage(res);
+ return this->scale_down(isl::val(ctx(), v));
}
-boolean union_pw_multi_aff::involves_locals() const
+isl::multi_union_pw_aff union_pw_aff::set_at(int pos, const isl::union_pw_aff &el) const
{
- auto res = isl_union_pw_multi_aff_involves_locals(get());
- return manage(res);
+ return isl::multi_union_pw_aff(*this).set_at(pos, el);
}
-boolean union_pw_multi_aff::involves_nan() const
+isl::multi_union_pw_aff union_pw_aff::set_range_tuple(const isl::id &id) const
{
- auto res = isl_union_pw_multi_aff_involves_nan(get());
- return manage(res);
+ return isl::multi_union_pw_aff(*this).set_range_tuple(id);
}
-boolean union_pw_multi_aff::isa_pw_multi_aff() const
+isl::multi_union_pw_aff union_pw_aff::set_range_tuple(const std::string &id) const
{
- auto res = isl_union_pw_multi_aff_isa_pw_multi_aff(get());
- return manage(res);
+ return this->set_range_tuple(isl::id(ctx(), id));
}
-isl::union_pw_multi_aff union_pw_multi_aff::multi_val_on_domain(isl::union_set domain, isl::multi_val mv)
+isl::multi_union_pw_aff union_pw_aff::set_union_pw_aff(int pos, const isl::union_pw_aff &el) const
{
- auto res = isl_union_pw_multi_aff_multi_val_on_domain(domain.release(), mv.release());
- return manage(res);
+ return isl::multi_union_pw_aff(*this).set_union_pw_aff(pos, el);
}
-isl_size union_pw_multi_aff::n_pw_multi_aff() const
+class size union_pw_aff::size() const
{
- auto res = isl_union_pw_multi_aff_n_pw_multi_aff(get());
- return res;
+ return isl::multi_union_pw_aff(*this).size();
}
-isl::union_pw_multi_aff union_pw_multi_aff::neg() const
+isl::space union_pw_aff::space() const
{
- auto res = isl_union_pw_multi_aff_neg(copy());
+ auto res = isl_union_pw_aff_get_space(get());
return manage(res);
}
-boolean union_pw_multi_aff::plain_is_empty() const
+isl::space union_pw_aff::get_space() const
{
- auto res = isl_union_pw_multi_aff_plain_is_empty(get());
- return manage(res);
+ return space();
}
-boolean union_pw_multi_aff::plain_is_equal(const isl::union_pw_multi_aff &upma2) const
+isl::multi_union_pw_aff union_pw_aff::sub(const isl::multi_union_pw_aff &multi2) const
{
- auto res = isl_union_pw_multi_aff_plain_is_equal(get(), upma2.get());
- return manage(res);
+ return isl::multi_union_pw_aff(*this).sub(multi2);
}
-isl::union_pw_multi_aff union_pw_multi_aff::preimage_domain_wrapped_domain(isl::union_pw_multi_aff upma2) const
+isl::union_pw_aff union_pw_aff::sub(isl::union_pw_aff upa2) const
{
- auto res = isl_union_pw_multi_aff_preimage_domain_wrapped_domain_union_pw_multi_aff(copy(), upma2.release());
+ auto res = isl_union_pw_aff_sub(copy(), upa2.release());
return manage(res);
}
-isl::union_pw_multi_aff union_pw_multi_aff::pullback(isl::union_pw_multi_aff upma2) const
+isl::union_pw_multi_aff union_pw_aff::sub(const isl::union_pw_multi_aff &upma2) const
{
- auto res = isl_union_pw_multi_aff_pullback_union_pw_multi_aff(copy(), upma2.release());
- return manage(res);
+ return isl::union_pw_multi_aff(*this).sub(upma2);
}
-isl::union_pw_multi_aff union_pw_multi_aff::range_factor_domain() const
+isl::union_pw_aff union_pw_aff::sub(const isl::aff &upa2) const
{
- auto res = isl_union_pw_multi_aff_range_factor_domain(copy());
- return manage(res);
+ return this->sub(isl::union_pw_aff(upa2));
}
-isl::union_pw_multi_aff union_pw_multi_aff::range_factor_range() const
+isl::union_pw_aff union_pw_aff::sub(const isl::pw_aff &upa2) const
{
- auto res = isl_union_pw_multi_aff_range_factor_range(copy());
- return manage(res);
+ return this->sub(isl::union_pw_aff(upa2));
}
-isl::union_pw_multi_aff union_pw_multi_aff::range_product(isl::union_pw_multi_aff upma2) const
+isl::union_pw_aff union_pw_aff::subtract_domain(isl::space space) const
{
- auto res = isl_union_pw_multi_aff_range_product(copy(), upma2.release());
+ auto res = isl_union_pw_aff_subtract_domain_space(copy(), space.release());
return manage(res);
}
-isl::union_pw_multi_aff union_pw_multi_aff::reset_user() const
+isl::union_pw_aff union_pw_aff::subtract_domain(isl::union_set uset) const
{
- auto res = isl_union_pw_multi_aff_reset_user(copy());
+ auto res = isl_union_pw_aff_subtract_domain_union_set(copy(), uset.release());
return manage(res);
}
-isl::union_pw_multi_aff union_pw_multi_aff::scale_down_val(isl::val val) const
+isl::union_pw_aff_list union_pw_aff::to_list() const
{
- auto res = isl_union_pw_multi_aff_scale_down_val(copy(), val.release());
+ auto res = isl_union_pw_aff_to_list(copy());
return manage(res);
}
-isl::union_pw_multi_aff union_pw_multi_aff::scale_multi_val(isl::multi_val mv) const
+isl::multi_union_pw_aff union_pw_aff::union_add(const isl::multi_union_pw_aff &mupa2) const
{
- auto res = isl_union_pw_multi_aff_scale_multi_val(copy(), mv.release());
- return manage(res);
+ return isl::multi_union_pw_aff(*this).union_add(mupa2);
}
-isl::union_pw_multi_aff union_pw_multi_aff::scale_val(isl::val val) const
+isl::union_pw_aff union_pw_aff::union_add(isl::union_pw_aff upa2) const
{
- auto res = isl_union_pw_multi_aff_scale_val(copy(), val.release());
+ auto res = isl_union_pw_aff_union_add(copy(), upa2.release());
return manage(res);
}
-isl::union_pw_multi_aff union_pw_multi_aff::sub(isl::union_pw_multi_aff upma2) const
+isl::union_pw_multi_aff union_pw_aff::union_add(const isl::union_pw_multi_aff &upma2) const
{
- auto res = isl_union_pw_multi_aff_sub(copy(), upma2.release());
- return manage(res);
+ return isl::union_pw_multi_aff(*this).union_add(upma2);
}
-isl::union_pw_multi_aff union_pw_multi_aff::subtract_domain(isl::space space) const
+isl::union_pw_aff union_pw_aff::union_add(const isl::aff &upa2) const
{
- auto res = isl_union_pw_multi_aff_subtract_domain_space(copy(), space.release());
- return manage(res);
+ return this->union_add(isl::union_pw_aff(upa2));
}
-isl::union_pw_multi_aff union_pw_multi_aff::subtract_domain(isl::union_set uset) const
+isl::union_pw_aff union_pw_aff::union_add(const isl::pw_aff &upa2) const
{
- auto res = isl_union_pw_multi_aff_subtract_domain_union_set(copy(), uset.release());
- return manage(res);
+ return this->union_add(isl::union_pw_aff(upa2));
}
-isl::union_pw_multi_aff union_pw_multi_aff::union_add(isl::union_pw_multi_aff upma2) const
+inline std::ostream &operator<<(std::ostream &os, const union_pw_aff &obj)
{
- auto res = isl_union_pw_multi_aff_union_add(copy(), upma2.release());
- return manage(res);
+ char *str = isl_union_pw_aff_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-// implementations for isl::union_pw_multi_aff_list
-union_pw_multi_aff_list manage(__isl_take isl_union_pw_multi_aff_list *ptr) {
- return union_pw_multi_aff_list(ptr);
+// implementations for isl::union_pw_aff_list
+union_pw_aff_list manage(__isl_take isl_union_pw_aff_list *ptr) {
+ return union_pw_aff_list(ptr);
}
-union_pw_multi_aff_list manage_copy(__isl_keep isl_union_pw_multi_aff_list *ptr) {
- ptr = isl_union_pw_multi_aff_list_copy(ptr);
- return union_pw_multi_aff_list(ptr);
+union_pw_aff_list manage_copy(__isl_keep isl_union_pw_aff_list *ptr) {
+ ptr = isl_union_pw_aff_list_copy(ptr);
+ return union_pw_aff_list(ptr);
}
-union_pw_multi_aff_list::union_pw_multi_aff_list()
+union_pw_aff_list::union_pw_aff_list()
: ptr(nullptr) {}
-union_pw_multi_aff_list::union_pw_multi_aff_list(const union_pw_multi_aff_list &obj)
+union_pw_aff_list::union_pw_aff_list(const union_pw_aff_list &obj)
: ptr(nullptr)
{
ptr = obj.copy();
}
-
-union_pw_multi_aff_list::union_pw_multi_aff_list(__isl_take isl_union_pw_multi_aff_list *ptr)
+union_pw_aff_list::union_pw_aff_list(__isl_take isl_union_pw_aff_list *ptr)
: ptr(ptr) {}
+union_pw_aff_list::union_pw_aff_list(isl::ctx ctx, int n)
+{
+ auto res = isl_union_pw_aff_list_alloc(ctx.release(), n);
+ ptr = res;
+}
+
+union_pw_aff_list::union_pw_aff_list(isl::union_pw_aff el)
+{
+ auto res = isl_union_pw_aff_list_from_union_pw_aff(el.release());
+ ptr = res;
+}
+
+union_pw_aff_list::union_pw_aff_list(isl::ctx ctx, const std::string &str)
+{
+ auto res = isl_union_pw_aff_list_read_from_str(ctx.release(), str.c_str());
+ ptr = res;
+}
-union_pw_multi_aff_list &union_pw_multi_aff_list::operator=(union_pw_multi_aff_list obj) {
+union_pw_aff_list &union_pw_aff_list::operator=(union_pw_aff_list obj) {
std::swap(this->ptr, obj.ptr);
return *this;
}
-union_pw_multi_aff_list::~union_pw_multi_aff_list() {
+union_pw_aff_list::~union_pw_aff_list() {
if (ptr)
- isl_union_pw_multi_aff_list_free(ptr);
+ isl_union_pw_aff_list_free(ptr);
}
-__isl_give isl_union_pw_multi_aff_list *union_pw_multi_aff_list::copy() const & {
- return isl_union_pw_multi_aff_list_copy(ptr);
+__isl_give isl_union_pw_aff_list *union_pw_aff_list::copy() const & {
+ return isl_union_pw_aff_list_copy(ptr);
}
-__isl_keep isl_union_pw_multi_aff_list *union_pw_multi_aff_list::get() const {
+__isl_keep isl_union_pw_aff_list *union_pw_aff_list::get() const {
return ptr;
}
-__isl_give isl_union_pw_multi_aff_list *union_pw_multi_aff_list::release() {
- isl_union_pw_multi_aff_list *tmp = ptr;
+__isl_give isl_union_pw_aff_list *union_pw_aff_list::release() {
+ isl_union_pw_aff_list *tmp = ptr;
ptr = nullptr;
return tmp;
}
-bool union_pw_multi_aff_list::is_null() const {
+bool union_pw_aff_list::is_null() const {
return ptr == nullptr;
}
-
-isl::ctx union_pw_multi_aff_list::ctx() const {
- return isl::ctx(isl_union_pw_multi_aff_list_get_ctx(ptr));
+isl::ctx union_pw_aff_list::ctx() const {
+ return isl::ctx(isl_union_pw_aff_list_get_ctx(ptr));
}
-void union_pw_multi_aff_list::dump() const {
- isl_union_pw_multi_aff_list_dump(get());
+isl::union_pw_aff_list union_pw_aff_list::add(isl::union_pw_aff el) const
+{
+ auto res = isl_union_pw_aff_list_add(copy(), el.release());
+ return manage(res);
}
-
-isl::union_pw_multi_aff_list union_pw_multi_aff_list::add(isl::union_pw_multi_aff el) const
+isl::union_pw_aff union_pw_aff_list::at(int index) const
{
- auto res = isl_union_pw_multi_aff_list_add(copy(), el.release());
+ auto res = isl_union_pw_aff_list_get_at(get(), index);
return manage(res);
}
-isl::union_pw_multi_aff_list union_pw_multi_aff_list::alloc(isl::ctx ctx, int n)
+isl::union_pw_aff union_pw_aff_list::get_at(int index) const
{
- auto res = isl_union_pw_multi_aff_list_alloc(ctx.release(), n);
- return manage(res);
+ return at(index);
}
-isl::union_pw_multi_aff_list union_pw_multi_aff_list::clear() const
+isl::union_pw_aff_list union_pw_aff_list::clear() const
{
- auto res = isl_union_pw_multi_aff_list_clear(copy());
+ auto res = isl_union_pw_aff_list_clear(copy());
return manage(res);
}
-isl::union_pw_multi_aff_list union_pw_multi_aff_list::concat(isl::union_pw_multi_aff_list list2) const
+isl::union_pw_aff_list union_pw_aff_list::concat(isl::union_pw_aff_list list2) const
{
- auto res = isl_union_pw_multi_aff_list_concat(copy(), list2.release());
+ auto res = isl_union_pw_aff_list_concat(copy(), list2.release());
return manage(res);
}
-isl::union_pw_multi_aff_list union_pw_multi_aff_list::drop(unsigned int first, unsigned int n) const
+isl::union_pw_aff_list union_pw_aff_list::drop(unsigned int first, unsigned int n) const
{
- auto res = isl_union_pw_multi_aff_list_drop(copy(), first, n);
+ auto res = isl_union_pw_aff_list_drop(copy(), first, n);
return manage(res);
}
-stat union_pw_multi_aff_list::foreach(const std::function<stat(union_pw_multi_aff)> &fn) const
+stat union_pw_aff_list::foreach(const std::function<stat(isl::union_pw_aff)> &fn) const
{
struct fn_data {
- const std::function<stat(union_pw_multi_aff)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_union_pw_multi_aff *arg_0, void *arg_1) -> isl_stat {
+ std::function<stat(isl::union_pw_aff)> func;
+ } fn_data = { fn };
+ auto fn_lambda = [](isl_union_pw_aff *arg_0, void *arg_1) -> isl_stat {
auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
+ auto ret = (data->func)(manage(arg_0));
return ret.release();
};
- auto res = isl_union_pw_multi_aff_list_foreach(get(), fn_lambda, &fn_data);
+ auto res = isl_union_pw_aff_list_foreach(get(), fn_lambda, &fn_data);
return manage(res);
}
-isl::union_pw_multi_aff_list union_pw_multi_aff_list::from_union_pw_multi_aff(isl::union_pw_multi_aff el)
+isl::union_pw_aff_list union_pw_aff_list::insert(unsigned int pos, isl::union_pw_aff el) const
{
- auto res = isl_union_pw_multi_aff_list_from_union_pw_multi_aff(el.release());
+ auto res = isl_union_pw_aff_list_insert(copy(), pos, el.release());
return manage(res);
}
-isl::union_pw_multi_aff union_pw_multi_aff_list::get_at(int index) const
+class size union_pw_aff_list::size() const
{
- auto res = isl_union_pw_multi_aff_list_get_at(get(), index);
+ auto res = isl_union_pw_aff_list_size(get());
return manage(res);
}
-isl::union_pw_multi_aff union_pw_multi_aff_list::get_union_pw_multi_aff(int index) const
+inline std::ostream &operator<<(std::ostream &os, const union_pw_aff_list &obj)
{
- auto res = isl_union_pw_multi_aff_list_get_union_pw_multi_aff(get(), index);
- return manage(res);
+ char *str = isl_union_pw_aff_list_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-isl::union_pw_multi_aff_list union_pw_multi_aff_list::insert(unsigned int pos, isl::union_pw_multi_aff el) const
-{
- auto res = isl_union_pw_multi_aff_list_insert(copy(), pos, el.release());
- return manage(res);
+// implementations for isl::union_pw_multi_aff
+union_pw_multi_aff manage(__isl_take isl_union_pw_multi_aff *ptr) {
+ return union_pw_multi_aff(ptr);
}
-
-isl_size union_pw_multi_aff_list::n_union_pw_multi_aff() const
-{
- auto res = isl_union_pw_multi_aff_list_n_union_pw_multi_aff(get());
- return res;
+union_pw_multi_aff manage_copy(__isl_keep isl_union_pw_multi_aff *ptr) {
+ ptr = isl_union_pw_multi_aff_copy(ptr);
+ return union_pw_multi_aff(ptr);
}
-isl::union_pw_multi_aff_list union_pw_multi_aff_list::reverse() const
+union_pw_multi_aff::union_pw_multi_aff()
+ : ptr(nullptr) {}
+
+union_pw_multi_aff::union_pw_multi_aff(const union_pw_multi_aff &obj)
+ : ptr(nullptr)
{
- auto res = isl_union_pw_multi_aff_list_reverse(copy());
- return manage(res);
+ ptr = obj.copy();
}
-isl::union_pw_multi_aff_list union_pw_multi_aff_list::set_union_pw_multi_aff(int index, isl::union_pw_multi_aff el) const
+union_pw_multi_aff::union_pw_multi_aff(__isl_take isl_union_pw_multi_aff *ptr)
+ : ptr(ptr) {}
+
+union_pw_multi_aff::union_pw_multi_aff(isl::union_set uset)
{
- auto res = isl_union_pw_multi_aff_list_set_union_pw_multi_aff(copy(), index, el.release());
- return manage(res);
+ auto res = isl_union_pw_multi_aff_from_domain(uset.release());
+ ptr = res;
}
-isl_size union_pw_multi_aff_list::size() const
+union_pw_multi_aff::union_pw_multi_aff(isl::multi_aff ma)
{
- auto res = isl_union_pw_multi_aff_list_size(get());
- return res;
+ auto res = isl_union_pw_multi_aff_from_multi_aff(ma.release());
+ ptr = res;
}
-isl::union_pw_multi_aff_list union_pw_multi_aff_list::swap(unsigned int pos1, unsigned int pos2) const
+union_pw_multi_aff::union_pw_multi_aff(isl::pw_multi_aff pma)
{
- auto res = isl_union_pw_multi_aff_list_swap(copy(), pos1, pos2);
- return manage(res);
+ auto res = isl_union_pw_multi_aff_from_pw_multi_aff(pma.release());
+ ptr = res;
}
-// implementations for isl::union_pw_qpolynomial
-union_pw_qpolynomial manage(__isl_take isl_union_pw_qpolynomial *ptr) {
- return union_pw_qpolynomial(ptr);
-}
-union_pw_qpolynomial manage_copy(__isl_keep isl_union_pw_qpolynomial *ptr) {
- ptr = isl_union_pw_qpolynomial_copy(ptr);
- return union_pw_qpolynomial(ptr);
+union_pw_multi_aff::union_pw_multi_aff(isl::union_map umap)
+{
+ auto res = isl_union_pw_multi_aff_from_union_map(umap.release());
+ ptr = res;
}
-union_pw_qpolynomial::union_pw_qpolynomial()
- : ptr(nullptr) {}
-
-union_pw_qpolynomial::union_pw_qpolynomial(const union_pw_qpolynomial &obj)
- : ptr(nullptr)
+union_pw_multi_aff::union_pw_multi_aff(isl::union_pw_aff upa)
{
- ptr = obj.copy();
+ auto res = isl_union_pw_multi_aff_from_union_pw_aff(upa.release());
+ ptr = res;
}
-
-union_pw_qpolynomial::union_pw_qpolynomial(__isl_take isl_union_pw_qpolynomial *ptr)
- : ptr(ptr) {}
-
-union_pw_qpolynomial::union_pw_qpolynomial(isl::ctx ctx, const std::string &str)
+union_pw_multi_aff::union_pw_multi_aff(isl::ctx ctx, const std::string &str)
{
- auto res = isl_union_pw_qpolynomial_read_from_str(ctx.release(), str.c_str());
+ auto res = isl_union_pw_multi_aff_read_from_str(ctx.release(), str.c_str());
ptr = res;
}
-union_pw_qpolynomial &union_pw_qpolynomial::operator=(union_pw_qpolynomial obj) {
+union_pw_multi_aff &union_pw_multi_aff::operator=(union_pw_multi_aff obj) {
std::swap(this->ptr, obj.ptr);
return *this;
}
-union_pw_qpolynomial::~union_pw_qpolynomial() {
+union_pw_multi_aff::~union_pw_multi_aff() {
if (ptr)
- isl_union_pw_qpolynomial_free(ptr);
+ isl_union_pw_multi_aff_free(ptr);
}
-__isl_give isl_union_pw_qpolynomial *union_pw_qpolynomial::copy() const & {
- return isl_union_pw_qpolynomial_copy(ptr);
+__isl_give isl_union_pw_multi_aff *union_pw_multi_aff::copy() const & {
+ return isl_union_pw_multi_aff_copy(ptr);
}
-__isl_keep isl_union_pw_qpolynomial *union_pw_qpolynomial::get() const {
+__isl_keep isl_union_pw_multi_aff *union_pw_multi_aff::get() const {
return ptr;
}
-__isl_give isl_union_pw_qpolynomial *union_pw_qpolynomial::release() {
- isl_union_pw_qpolynomial *tmp = ptr;
+__isl_give isl_union_pw_multi_aff *union_pw_multi_aff::release() {
+ isl_union_pw_multi_aff *tmp = ptr;
ptr = nullptr;
return tmp;
}
-bool union_pw_qpolynomial::is_null() const {
+bool union_pw_multi_aff::is_null() const {
return ptr == nullptr;
}
-
-isl::ctx union_pw_qpolynomial::ctx() const {
- return isl::ctx(isl_union_pw_qpolynomial_get_ctx(ptr));
+isl::ctx union_pw_multi_aff::ctx() const {
+ return isl::ctx(isl_union_pw_multi_aff_get_ctx(ptr));
}
-
-isl::union_pw_qpolynomial union_pw_qpolynomial::add(isl::union_pw_qpolynomial upwqp2) const
+isl::union_pw_multi_aff union_pw_multi_aff::add(isl::union_pw_multi_aff upma2) const
{
- auto res = isl_union_pw_qpolynomial_add(copy(), upwqp2.release());
+ auto res = isl_union_pw_multi_aff_add(copy(), upma2.release());
return manage(res);
}
-isl::union_pw_qpolynomial union_pw_qpolynomial::add_pw_qpolynomial(isl::pw_qpolynomial pwqp) const
+isl::union_pw_multi_aff union_pw_multi_aff::add_pw_multi_aff(isl::pw_multi_aff pma) const
{
- auto res = isl_union_pw_qpolynomial_add_pw_qpolynomial(copy(), pwqp.release());
+ auto res = isl_union_pw_multi_aff_add_pw_multi_aff(copy(), pma.release());
return manage(res);
}
-isl::union_pw_qpolynomial union_pw_qpolynomial::align_params(isl::space model) const
+isl::union_pw_multi_aff union_pw_multi_aff::apply(isl::union_pw_multi_aff upma2) const
{
- auto res = isl_union_pw_qpolynomial_align_params(copy(), model.release());
+ auto res = isl_union_pw_multi_aff_apply_union_pw_multi_aff(copy(), upma2.release());
return manage(res);
}
-isl::union_pw_qpolynomial union_pw_qpolynomial::coalesce() const
+isl::multi_union_pw_aff union_pw_multi_aff::as_multi_union_pw_aff() const
{
- auto res = isl_union_pw_qpolynomial_coalesce(copy());
+ auto res = isl_union_pw_multi_aff_as_multi_union_pw_aff(copy());
return manage(res);
}
-isl_size union_pw_qpolynomial::dim(isl::dim type) const
-{
- auto res = isl_union_pw_qpolynomial_dim(get(), static_cast<enum isl_dim_type>(type));
- return res;
-}
-
-isl::union_set union_pw_qpolynomial::domain() const
+isl::pw_multi_aff union_pw_multi_aff::as_pw_multi_aff() const
{
- auto res = isl_union_pw_qpolynomial_domain(copy());
+ auto res = isl_union_pw_multi_aff_as_pw_multi_aff(copy());
return manage(res);
}
-isl::union_pw_qpolynomial union_pw_qpolynomial::drop_dims(isl::dim type, unsigned int first, unsigned int n) const
+isl::union_map union_pw_multi_aff::as_union_map() const
{
- auto res = isl_union_pw_qpolynomial_drop_dims(copy(), static_cast<enum isl_dim_type>(type), first, n);
+ auto res = isl_union_pw_multi_aff_as_union_map(copy());
return manage(res);
}
-isl::val union_pw_qpolynomial::eval(isl::point pnt) const
+isl::union_pw_multi_aff union_pw_multi_aff::coalesce() const
{
- auto res = isl_union_pw_qpolynomial_eval(copy(), pnt.release());
+ auto res = isl_union_pw_multi_aff_coalesce(copy());
return manage(res);
}
-isl::pw_qpolynomial union_pw_qpolynomial::extract_pw_qpolynomial(isl::space space) const
+isl::union_set union_pw_multi_aff::domain() const
{
- auto res = isl_union_pw_qpolynomial_extract_pw_qpolynomial(get(), space.release());
+ auto res = isl_union_pw_multi_aff_domain(copy());
return manage(res);
}
-int union_pw_qpolynomial::find_dim_by_name(isl::dim type, const std::string &name) const
-{
- auto res = isl_union_pw_qpolynomial_find_dim_by_name(get(), static_cast<enum isl_dim_type>(type), name.c_str());
- return res;
-}
-
-stat union_pw_qpolynomial::foreach_pw_qpolynomial(const std::function<stat(pw_qpolynomial)> &fn) const
+isl::union_pw_multi_aff union_pw_multi_aff::empty(isl::space space)
{
- struct fn_data {
- const std::function<stat(pw_qpolynomial)> *func;
- } fn_data = { &fn };
- auto fn_lambda = [](isl_pw_qpolynomial *arg_0, void *arg_1) -> isl_stat {
- auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
- return ret.release();
- };
- auto res = isl_union_pw_qpolynomial_foreach_pw_qpolynomial(get(), fn_lambda, &fn_data);
+ auto res = isl_union_pw_multi_aff_empty(space.release());
return manage(res);
}
-isl::union_pw_qpolynomial union_pw_qpolynomial::from_pw_qpolynomial(isl::pw_qpolynomial pwqp)
+isl::union_pw_multi_aff union_pw_multi_aff::empty(isl::ctx ctx)
{
- auto res = isl_union_pw_qpolynomial_from_pw_qpolynomial(pwqp.release());
+ auto res = isl_union_pw_multi_aff_empty_ctx(ctx.release());
return manage(res);
}
-isl::pw_qpolynomial_list union_pw_qpolynomial::get_pw_qpolynomial_list() const
+isl::pw_multi_aff union_pw_multi_aff::extract_pw_multi_aff(isl::space space) const
{
- auto res = isl_union_pw_qpolynomial_get_pw_qpolynomial_list(get());
+ auto res = isl_union_pw_multi_aff_extract_pw_multi_aff(get(), space.release());
return manage(res);
}
-isl::space union_pw_qpolynomial::get_space() const
+isl::union_pw_multi_aff union_pw_multi_aff::flat_range_product(isl::union_pw_multi_aff upma2) const
{
- auto res = isl_union_pw_qpolynomial_get_space(get());
+ auto res = isl_union_pw_multi_aff_flat_range_product(copy(), upma2.release());
return manage(res);
}
-isl::union_pw_qpolynomial union_pw_qpolynomial::gist(isl::union_set context) const
+isl::union_pw_multi_aff union_pw_multi_aff::gist(isl::union_set context) const
{
- auto res = isl_union_pw_qpolynomial_gist(copy(), context.release());
+ auto res = isl_union_pw_multi_aff_gist(copy(), context.release());
return manage(res);
}
-isl::union_pw_qpolynomial union_pw_qpolynomial::gist_params(isl::set context) const
+isl::union_pw_multi_aff union_pw_multi_aff::intersect_domain(isl::space space) const
{
- auto res = isl_union_pw_qpolynomial_gist_params(copy(), context.release());
+ auto res = isl_union_pw_multi_aff_intersect_domain_space(copy(), space.release());
return manage(res);
}
-isl::union_pw_qpolynomial union_pw_qpolynomial::intersect_domain(isl::union_set uset) const
+isl::union_pw_multi_aff union_pw_multi_aff::intersect_domain(isl::union_set uset) const
{
- auto res = isl_union_pw_qpolynomial_intersect_domain(copy(), uset.release());
+ auto res = isl_union_pw_multi_aff_intersect_domain_union_set(copy(), uset.release());
return manage(res);
}
-isl::union_pw_qpolynomial union_pw_qpolynomial::intersect_domain_space(isl::space space) const
+isl::union_pw_multi_aff union_pw_multi_aff::intersect_domain_wrapped_domain(isl::union_set uset) const
{
- auto res = isl_union_pw_qpolynomial_intersect_domain_space(copy(), space.release());
+ auto res = isl_union_pw_multi_aff_intersect_domain_wrapped_domain(copy(), uset.release());
return manage(res);
}
-isl::union_pw_qpolynomial union_pw_qpolynomial::intersect_domain_union_set(isl::union_set uset) const
+isl::union_pw_multi_aff union_pw_multi_aff::intersect_domain_wrapped_range(isl::union_set uset) const
{
- auto res = isl_union_pw_qpolynomial_intersect_domain_union_set(copy(), uset.release());
+ auto res = isl_union_pw_multi_aff_intersect_domain_wrapped_range(copy(), uset.release());
return manage(res);
}
-isl::union_pw_qpolynomial union_pw_qpolynomial::intersect_domain_wrapped_domain(isl::union_set uset) const
+isl::union_pw_multi_aff union_pw_multi_aff::intersect_params(isl::set set) const
{
- auto res = isl_union_pw_qpolynomial_intersect_domain_wrapped_domain(copy(), uset.release());
+ auto res = isl_union_pw_multi_aff_intersect_params(copy(), set.release());
return manage(res);
}
-isl::union_pw_qpolynomial union_pw_qpolynomial::intersect_domain_wrapped_range(isl::union_set uset) const
+boolean union_pw_multi_aff::involves_locals() const
{
- auto res = isl_union_pw_qpolynomial_intersect_domain_wrapped_range(copy(), uset.release());
+ auto res = isl_union_pw_multi_aff_involves_locals(get());
return manage(res);
}
-isl::union_pw_qpolynomial union_pw_qpolynomial::intersect_params(isl::set set) const
+boolean union_pw_multi_aff::isa_pw_multi_aff() const
{
- auto res = isl_union_pw_qpolynomial_intersect_params(copy(), set.release());
+ auto res = isl_union_pw_multi_aff_isa_pw_multi_aff(get());
return manage(res);
}
-boolean union_pw_qpolynomial::involves_nan() const
+boolean union_pw_multi_aff::plain_is_empty() const
{
- auto res = isl_union_pw_qpolynomial_involves_nan(get());
+ auto res = isl_union_pw_multi_aff_plain_is_empty(get());
return manage(res);
}
-isl::union_pw_qpolynomial union_pw_qpolynomial::mul(isl::union_pw_qpolynomial upwqp2) const
+isl::union_pw_multi_aff union_pw_multi_aff::preimage_domain_wrapped_domain(isl::union_pw_multi_aff upma2) const
{
- auto res = isl_union_pw_qpolynomial_mul(copy(), upwqp2.release());
+ auto res = isl_union_pw_multi_aff_preimage_domain_wrapped_domain_union_pw_multi_aff(copy(), upma2.release());
return manage(res);
}
-isl_size union_pw_qpolynomial::n_pw_qpolynomial() const
-{
- auto res = isl_union_pw_qpolynomial_n_pw_qpolynomial(get());
- return res;
-}
-
-isl::union_pw_qpolynomial union_pw_qpolynomial::neg() const
+isl::union_pw_multi_aff union_pw_multi_aff::pullback(isl::union_pw_multi_aff upma2) const
{
- auto res = isl_union_pw_qpolynomial_neg(copy());
+ auto res = isl_union_pw_multi_aff_pullback_union_pw_multi_aff(copy(), upma2.release());
return manage(res);
}
-boolean union_pw_qpolynomial::plain_is_equal(const isl::union_pw_qpolynomial &upwqp2) const
+isl::pw_multi_aff_list union_pw_multi_aff::pw_multi_aff_list() const
{
- auto res = isl_union_pw_qpolynomial_plain_is_equal(get(), upwqp2.get());
+ auto res = isl_union_pw_multi_aff_get_pw_multi_aff_list(get());
return manage(res);
}
-isl::union_pw_qpolynomial union_pw_qpolynomial::reset_user() const
+isl::pw_multi_aff_list union_pw_multi_aff::get_pw_multi_aff_list() const
{
- auto res = isl_union_pw_qpolynomial_reset_user(copy());
- return manage(res);
+ return pw_multi_aff_list();
}
-isl::union_pw_qpolynomial union_pw_qpolynomial::scale_down_val(isl::val v) const
+isl::union_pw_multi_aff union_pw_multi_aff::range_factor_domain() const
{
- auto res = isl_union_pw_qpolynomial_scale_down_val(copy(), v.release());
+ auto res = isl_union_pw_multi_aff_range_factor_domain(copy());
return manage(res);
}
-isl::union_pw_qpolynomial union_pw_qpolynomial::scale_val(isl::val v) const
+isl::union_pw_multi_aff union_pw_multi_aff::range_factor_range() const
{
- auto res = isl_union_pw_qpolynomial_scale_val(copy(), v.release());
+ auto res = isl_union_pw_multi_aff_range_factor_range(copy());
return manage(res);
}
-isl::union_pw_qpolynomial union_pw_qpolynomial::sub(isl::union_pw_qpolynomial upwqp2) const
+isl::union_pw_multi_aff union_pw_multi_aff::range_product(isl::union_pw_multi_aff upma2) const
{
- auto res = isl_union_pw_qpolynomial_sub(copy(), upwqp2.release());
+ auto res = isl_union_pw_multi_aff_range_product(copy(), upma2.release());
return manage(res);
}
-isl::union_pw_qpolynomial union_pw_qpolynomial::subtract_domain(isl::union_set uset) const
+isl::space union_pw_multi_aff::space() const
{
- auto res = isl_union_pw_qpolynomial_subtract_domain(copy(), uset.release());
+ auto res = isl_union_pw_multi_aff_get_space(get());
return manage(res);
}
-isl::union_pw_qpolynomial union_pw_qpolynomial::subtract_domain_space(isl::space space) const
+isl::space union_pw_multi_aff::get_space() const
{
- auto res = isl_union_pw_qpolynomial_subtract_domain_space(copy(), space.release());
- return manage(res);
+ return space();
}
-isl::union_pw_qpolynomial union_pw_qpolynomial::subtract_domain_union_set(isl::union_set uset) const
+isl::union_pw_multi_aff union_pw_multi_aff::sub(isl::union_pw_multi_aff upma2) const
{
- auto res = isl_union_pw_qpolynomial_subtract_domain_union_set(copy(), uset.release());
+ auto res = isl_union_pw_multi_aff_sub(copy(), upma2.release());
return manage(res);
}
-isl::union_pw_qpolynomial union_pw_qpolynomial::to_polynomial(int sign) const
+isl::union_pw_multi_aff union_pw_multi_aff::subtract_domain(isl::space space) const
{
- auto res = isl_union_pw_qpolynomial_to_polynomial(copy(), sign);
+ auto res = isl_union_pw_multi_aff_subtract_domain_space(copy(), space.release());
return manage(res);
}
-isl::union_pw_qpolynomial union_pw_qpolynomial::zero(isl::space space)
+isl::union_pw_multi_aff union_pw_multi_aff::subtract_domain(isl::union_set uset) const
{
- auto res = isl_union_pw_qpolynomial_zero(space.release());
+ auto res = isl_union_pw_multi_aff_subtract_domain_union_set(copy(), uset.release());
return manage(res);
}
-isl::union_pw_qpolynomial union_pw_qpolynomial::zero_ctx(isl::ctx ctx)
+isl::union_pw_multi_aff union_pw_multi_aff::union_add(isl::union_pw_multi_aff upma2) const
{
- auto res = isl_union_pw_qpolynomial_zero_ctx(ctx.release());
+ auto res = isl_union_pw_multi_aff_union_add(copy(), upma2.release());
return manage(res);
}
-isl::union_pw_qpolynomial union_pw_qpolynomial::zero_space(isl::space space)
+inline std::ostream &operator<<(std::ostream &os, const union_pw_multi_aff &obj)
{
- auto res = isl_union_pw_qpolynomial_zero_space(space.release());
- return manage(res);
+ char *str = isl_union_pw_multi_aff_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
// implementations for isl::union_set
ptr = obj.copy();
}
-
union_set::union_set(__isl_take isl_union_set *ptr)
: ptr(ptr) {}
auto res = isl_union_set_from_basic_set(bset.release());
ptr = res;
}
+
union_set::union_set(isl::point pnt)
{
auto res = isl_union_set_from_point(pnt.release());
ptr = res;
}
+
union_set::union_set(isl::set set)
{
auto res = isl_union_set_from_set(set.release());
ptr = res;
}
+
union_set::union_set(isl::ctx ctx, const std::string &str)
{
auto res = isl_union_set_read_from_str(ctx.release(), str.c_str());
return ptr == nullptr;
}
-
isl::ctx union_set::ctx() const {
return isl::ctx(isl_union_set_get_ctx(ptr));
}
-void union_set::dump() const {
- isl_union_set_dump(get());
-}
-
-
isl::union_set union_set::affine_hull() const
{
auto res = isl_union_set_affine_hull(copy());
return manage(res);
}
-isl::union_set union_set::align_params(isl::space model) const
-{
- auto res = isl_union_set_align_params(copy(), model.release());
- return manage(res);
-}
-
isl::union_set union_set::apply(isl::union_map umap) const
{
auto res = isl_union_set_apply(copy(), umap.release());
return manage(res);
}
-isl::union_set union_set::coalesce() const
+isl::set union_set::as_set() const
{
- auto res = isl_union_set_coalesce(copy());
+ auto res = isl_union_set_as_set(copy());
return manage(res);
}
-isl::union_set union_set::coefficients() const
+isl::union_set union_set::coalesce() const
{
- auto res = isl_union_set_coefficients(copy());
+ auto res = isl_union_set_coalesce(copy());
return manage(res);
}
-isl::schedule union_set::compute_schedule(isl::union_map validity, isl::union_map proximity) const
+isl::union_set union_set::compute_divs() const
{
- auto res = isl_union_set_compute_schedule(copy(), validity.release(), proximity.release());
+ auto res = isl_union_set_compute_divs(copy());
return manage(res);
}
return manage(res);
}
-isl_size union_set::dim(isl::dim type) const
+isl::union_set union_set::empty(isl::ctx ctx)
{
- auto res = isl_union_set_dim(get(), static_cast<enum isl_dim_type>(type));
- return res;
+ auto res = isl_union_set_empty_ctx(ctx.release());
+ return manage(res);
}
-isl::union_set union_set::empty(isl::ctx ctx)
+boolean union_set::every_set(const std::function<boolean(isl::set)> &test) const
{
- auto res = isl_union_set_empty_ctx(ctx.release());
+ struct test_data {
+ std::function<boolean(isl::set)> func;
+ } test_data = { test };
+ auto test_lambda = [](isl_set *arg_0, void *arg_1) -> isl_bool {
+ auto *data = static_cast<struct test_data *>(arg_1);
+ auto ret = (data->func)(manage_copy(arg_0));
+ return ret.release();
+ };
+ auto res = isl_union_set_every_set(get(), test_lambda, &test_data);
return manage(res);
}
return manage(res);
}
-stat union_set::foreach_point(const std::function<stat(point)> &fn) const
+stat union_set::foreach_point(const std::function<stat(isl::point)> &fn) const
{
struct fn_data {
- const std::function<stat(point)> *func;
- } fn_data = { &fn };
+ std::function<stat(isl::point)> func;
+ } fn_data = { fn };
auto fn_lambda = [](isl_point *arg_0, void *arg_1) -> isl_stat {
auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
+ auto ret = (data->func)(manage(arg_0));
return ret.release();
};
auto res = isl_union_set_foreach_point(get(), fn_lambda, &fn_data);
return manage(res);
}
-stat union_set::foreach_set(const std::function<stat(set)> &fn) const
+stat union_set::foreach_set(const std::function<stat(isl::set)> &fn) const
{
struct fn_data {
- const std::function<stat(set)> *func;
- } fn_data = { &fn };
+ std::function<stat(isl::set)> func;
+ } fn_data = { fn };
auto fn_lambda = [](isl_set *arg_0, void *arg_1) -> isl_stat {
auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
+ auto ret = (data->func)(manage(arg_0));
return ret.release();
};
auto res = isl_union_set_foreach_set(get(), fn_lambda, &fn_data);
return manage(res);
}
-isl::basic_set_list union_set::get_basic_set_list() const
-{
- auto res = isl_union_set_get_basic_set_list(get());
- return manage(res);
-}
-
-uint32_t union_set::get_hash() const
-{
- auto res = isl_union_set_get_hash(get());
- return res;
-}
-
-isl::set_list union_set::get_set_list() const
-{
- auto res = isl_union_set_get_set_list(get());
- return manage(res);
-}
-
-isl::space union_set::get_space() const
-{
- auto res = isl_union_set_get_space(get());
- return manage(res);
-}
-
isl::union_set union_set::gist(isl::union_set context) const
{
auto res = isl_union_set_gist(copy(), context.release());
return manage(res);
}
-boolean union_set::is_params() const
-{
- auto res = isl_union_set_is_params(get());
- return manage(res);
-}
-
boolean union_set::is_strict_subset(const isl::union_set &uset2) const
{
auto res = isl_union_set_is_strict_subset(get(), uset2.get());
return manage(res);
}
-isl::union_map union_set::lex_ge_union_set(isl::union_set uset2) const
-{
- auto res = isl_union_set_lex_ge_union_set(copy(), uset2.release());
- return manage(res);
-}
-
-isl::union_map union_set::lex_gt_union_set(isl::union_set uset2) const
-{
- auto res = isl_union_set_lex_gt_union_set(copy(), uset2.release());
- return manage(res);
-}
-
-isl::union_map union_set::lex_le_union_set(isl::union_set uset2) const
-{
- auto res = isl_union_set_lex_le_union_set(copy(), uset2.release());
- return manage(res);
-}
-
-isl::union_map union_set::lex_lt_union_set(isl::union_set uset2) const
-{
- auto res = isl_union_set_lex_lt_union_set(copy(), uset2.release());
- return manage(res);
-}
-
isl::union_set union_set::lexmax() const
{
auto res = isl_union_set_lexmax(copy());
return manage(res);
}
-isl::multi_val union_set::min_multi_union_pw_aff(const isl::multi_union_pw_aff &obj) const
-{
- auto res = isl_union_set_min_multi_union_pw_aff(get(), obj.get());
- return manage(res);
-}
-
-isl_size union_set::n_set() const
-{
- auto res = isl_union_set_n_set(get());
- return res;
-}
-
isl::set union_set::params() const
{
auto res = isl_union_set_params(copy());
return manage(res);
}
-isl::union_set union_set::product(isl::union_set uset2) const
-{
- auto res = isl_union_set_product(copy(), uset2.release());
- return manage(res);
-}
-
-isl::union_set union_set::project_out(isl::dim type, unsigned int first, unsigned int n) const
-{
- auto res = isl_union_set_project_out(copy(), static_cast<enum isl_dim_type>(type), first, n);
- return manage(res);
-}
-
-isl::union_set union_set::project_out_all_params() const
-{
- auto res = isl_union_set_project_out_all_params(copy());
- return manage(res);
-}
-
-isl::union_set union_set::remove_divs() const
-{
- auto res = isl_union_set_remove_divs(copy());
- return manage(res);
-}
-
-isl::union_set union_set::remove_redundancies() const
+isl::point union_set::sample_point() const
{
- auto res = isl_union_set_remove_redundancies(copy());
+ auto res = isl_union_set_sample_point(copy());
return manage(res);
}
-isl::union_set union_set::reset_user() const
+isl::set_list union_set::set_list() const
{
- auto res = isl_union_set_reset_user(copy());
+ auto res = isl_union_set_get_set_list(get());
return manage(res);
}
-isl::basic_set union_set::sample() const
+isl::set_list union_set::get_set_list() const
{
- auto res = isl_union_set_sample(copy());
- return manage(res);
+ return set_list();
}
-isl::point union_set::sample_point() const
+isl::space union_set::space() const
{
- auto res = isl_union_set_sample_point(copy());
+ auto res = isl_union_set_get_space(get());
return manage(res);
}
-isl::union_set union_set::simple_hull() const
+isl::space union_set::get_space() const
{
- auto res = isl_union_set_simple_hull(copy());
- return manage(res);
+ return space();
}
-isl::union_set union_set::solutions() const
+isl::union_set union_set::subtract(isl::union_set uset2) const
{
- auto res = isl_union_set_solutions(copy());
+ auto res = isl_union_set_subtract(copy(), uset2.release());
return manage(res);
}
-isl::union_set union_set::subtract(isl::union_set uset2) const
+isl::union_set_list union_set::to_list() const
{
- auto res = isl_union_set_subtract(copy(), uset2.release());
+ auto res = isl_union_set_to_list(copy());
return manage(res);
}
return manage(res);
}
-isl::union_map union_set::wrapped_domain_map() const
+inline std::ostream &operator<<(std::ostream &os, const union_set &obj)
{
- auto res = isl_union_set_wrapped_domain_map(copy());
- return manage(res);
+ char *str = isl_union_set_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
// implementations for isl::union_set_list
ptr = obj.copy();
}
-
union_set_list::union_set_list(__isl_take isl_union_set_list *ptr)
: ptr(ptr) {}
+union_set_list::union_set_list(isl::ctx ctx, int n)
+{
+ auto res = isl_union_set_list_alloc(ctx.release(), n);
+ ptr = res;
+}
+
+union_set_list::union_set_list(isl::union_set el)
+{
+ auto res = isl_union_set_list_from_union_set(el.release());
+ ptr = res;
+}
+
+union_set_list::union_set_list(isl::ctx ctx, const std::string &str)
+{
+ auto res = isl_union_set_list_read_from_str(ctx.release(), str.c_str());
+ ptr = res;
+}
union_set_list &union_set_list::operator=(union_set_list obj) {
std::swap(this->ptr, obj.ptr);
return ptr == nullptr;
}
-
isl::ctx union_set_list::ctx() const {
return isl::ctx(isl_union_set_list_get_ctx(ptr));
}
-void union_set_list::dump() const {
- isl_union_set_list_dump(get());
-}
-
-
isl::union_set_list union_set_list::add(isl::union_set el) const
{
auto res = isl_union_set_list_add(copy(), el.release());
return manage(res);
}
-isl::union_set_list union_set_list::alloc(isl::ctx ctx, int n)
+isl::union_set union_set_list::at(int index) const
{
- auto res = isl_union_set_list_alloc(ctx.release(), n);
+ auto res = isl_union_set_list_get_at(get(), index);
return manage(res);
}
+isl::union_set union_set_list::get_at(int index) const
+{
+ return at(index);
+}
+
isl::union_set_list union_set_list::clear() const
{
auto res = isl_union_set_list_clear(copy());
return manage(res);
}
-stat union_set_list::foreach(const std::function<stat(union_set)> &fn) const
+stat union_set_list::foreach(const std::function<stat(isl::union_set)> &fn) const
{
struct fn_data {
- const std::function<stat(union_set)> *func;
- } fn_data = { &fn };
+ std::function<stat(isl::union_set)> func;
+ } fn_data = { fn };
auto fn_lambda = [](isl_union_set *arg_0, void *arg_1) -> isl_stat {
auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
+ auto ret = (data->func)(manage(arg_0));
return ret.release();
};
auto res = isl_union_set_list_foreach(get(), fn_lambda, &fn_data);
return manage(res);
}
-isl::union_set_list union_set_list::from_union_set(isl::union_set el)
-{
- auto res = isl_union_set_list_from_union_set(el.release());
- return manage(res);
-}
-
-isl::union_set union_set_list::get_at(int index) const
-{
- auto res = isl_union_set_list_get_at(get(), index);
- return manage(res);
-}
-
-isl::union_set union_set_list::get_union_set(int index) const
-{
- auto res = isl_union_set_list_get_union_set(get(), index);
- return manage(res);
-}
-
isl::union_set_list union_set_list::insert(unsigned int pos, isl::union_set el) const
{
auto res = isl_union_set_list_insert(copy(), pos, el.release());
return manage(res);
}
-isl_size union_set_list::n_union_set() const
-{
- auto res = isl_union_set_list_n_union_set(get());
- return res;
-}
-
-isl::union_set_list union_set_list::reverse() const
-{
- auto res = isl_union_set_list_reverse(copy());
- return manage(res);
-}
-
-isl::union_set_list union_set_list::set_union_set(int index, isl::union_set el) const
-{
- auto res = isl_union_set_list_set_union_set(copy(), index, el.release());
- return manage(res);
-}
-
-isl_size union_set_list::size() const
+class size union_set_list::size() const
{
auto res = isl_union_set_list_size(get());
- return res;
-}
-
-isl::union_set_list union_set_list::swap(unsigned int pos1, unsigned int pos2) const
-{
- auto res = isl_union_set_list_swap(copy(), pos1, pos2);
return manage(res);
}
-isl::union_set union_set_list::unite() const
+inline std::ostream &operator<<(std::ostream &os, const union_set_list &obj)
{
- auto res = isl_union_set_list_union(copy());
- return manage(res);
+ char *str = isl_union_set_list_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
// implementations for isl::val
ptr = obj.copy();
}
-
val::val(__isl_take isl_val *ptr)
: ptr(ptr) {}
auto res = isl_val_int_from_si(ctx.release(), i);
ptr = res;
}
+
val::val(isl::ctx ctx, const std::string &str)
{
auto res = isl_val_read_from_str(ctx.release(), str.c_str());
return ptr == nullptr;
}
-
isl::ctx val::ctx() const {
return isl::ctx(isl_val_get_ctx(ptr));
}
-void val::dump() const {
- isl_val_dump(get());
-}
-
-
isl::val val::abs() const
{
auto res = isl_val_abs(copy());
return manage(res);
}
+boolean val::abs_eq(long v2) const
+{
+ return this->abs_eq(isl::val(ctx(), v2));
+}
+
isl::val val::add(isl::val v2) const
{
auto res = isl_val_add(copy(), v2.release());
return manage(res);
}
-isl::val val::add_ui(unsigned long v2) const
+isl::val val::add(long v2) const
{
- auto res = isl_val_add_ui(copy(), v2);
- return manage(res);
+ return this->add(isl::val(ctx(), v2));
}
isl::val val::ceil() const
return res;
}
+long val::den_si() const
+{
+ auto res = isl_val_get_den_si(get());
+ return res;
+}
+
+long val::get_den_si() const
+{
+ return den_si();
+}
+
isl::val val::div(isl::val v2) const
{
auto res = isl_val_div(copy(), v2.release());
return manage(res);
}
-isl::val val::div_ui(unsigned long v2) const
+isl::val val::div(long v2) const
{
- auto res = isl_val_div_ui(copy(), v2);
- return manage(res);
+ return this->div(isl::val(ctx(), v2));
}
boolean val::eq(const isl::val &v2) const
return manage(res);
}
-boolean val::eq_si(long i) const
+boolean val::eq(long v2) const
{
- auto res = isl_val_eq_si(get(), i);
- return manage(res);
+ return this->eq(isl::val(ctx(), v2));
}
isl::val val::floor() const
return manage(res);
}
-boolean val::ge(const isl::val &v2) const
+isl::val val::gcd(long v2) const
{
- auto res = isl_val_ge(get(), v2.get());
- return manage(res);
+ return this->gcd(isl::val(ctx(), v2));
}
-uint32_t val::get_hash() const
+boolean val::ge(const isl::val &v2) const
{
- auto res = isl_val_get_hash(get());
- return res;
+ auto res = isl_val_ge(get(), v2.get());
+ return manage(res);
}
-long val::get_num_si() const
+boolean val::ge(long v2) const
{
- auto res = isl_val_get_num_si(get());
- return res;
+ return this->ge(isl::val(ctx(), v2));
}
boolean val::gt(const isl::val &v2) const
return manage(res);
}
-boolean val::gt_si(long i) const
+boolean val::gt(long v2) const
{
- auto res = isl_val_gt_si(get(), i);
- return manage(res);
+ return this->gt(isl::val(ctx(), v2));
}
isl::val val::infty(isl::ctx ctx)
return manage(res);
}
+boolean val::is_divisible_by(long v2) const
+{
+ return this->is_divisible_by(isl::val(ctx(), v2));
+}
+
boolean val::is_infty() const
{
auto res = isl_val_is_infty(get());
return manage(res);
}
+boolean val::le(long v2) const
+{
+ return this->le(isl::val(ctx(), v2));
+}
+
boolean val::lt(const isl::val &v2) const
{
auto res = isl_val_lt(get(), v2.get());
return manage(res);
}
+boolean val::lt(long v2) const
+{
+ return this->lt(isl::val(ctx(), v2));
+}
+
isl::val val::max(isl::val v2) const
{
auto res = isl_val_max(copy(), v2.release());
return manage(res);
}
+isl::val val::max(long v2) const
+{
+ return this->max(isl::val(ctx(), v2));
+}
+
isl::val val::min(isl::val v2) const
{
auto res = isl_val_min(copy(), v2.release());
return manage(res);
}
+isl::val val::min(long v2) const
+{
+ return this->min(isl::val(ctx(), v2));
+}
+
isl::val val::mod(isl::val v2) const
{
auto res = isl_val_mod(copy(), v2.release());
return manage(res);
}
-isl::val val::mul(isl::val v2) const
+isl::val val::mod(long v2) const
{
- auto res = isl_val_mul(copy(), v2.release());
- return manage(res);
+ return this->mod(isl::val(ctx(), v2));
}
-isl::val val::mul_ui(unsigned long v2) const
+isl::val val::mul(isl::val v2) const
{
- auto res = isl_val_mul_ui(copy(), v2);
+ auto res = isl_val_mul(copy(), v2.release());
return manage(res);
}
-isl_size val::n_abs_num_chunks(size_t size) const
+isl::val val::mul(long v2) const
{
- auto res = isl_val_n_abs_num_chunks(get(), size);
- return res;
+ return this->mul(isl::val(ctx(), v2));
}
isl::val val::nan(isl::ctx ctx)
return manage(res);
}
+boolean val::ne(long v2) const
+{
+ return this->ne(isl::val(ctx(), v2));
+}
+
isl::val val::neg() const
{
auto res = isl_val_neg(copy());
return manage(res);
}
+long val::num_si() const
+{
+ auto res = isl_val_get_num_si(get());
+ return res;
+}
+
+long val::get_num_si() const
+{
+ return num_si();
+}
+
isl::val val::one(isl::ctx ctx)
{
auto res = isl_val_one(ctx.release());
return manage(res);
}
-isl::val val::set_si(long i) const
-{
- auto res = isl_val_set_si(copy(), i);
- return manage(res);
-}
-
int val::sgn() const
{
auto res = isl_val_sgn(get());
return manage(res);
}
+isl::val val::sub(long v2) const
+{
+ return this->sub(isl::val(ctx(), v2));
+}
+
isl::val val::sub_ui(unsigned long v2) const
{
auto res = isl_val_sub_ui(copy(), v2);
return manage(res);
}
+isl::val_list val::to_list() const
+{
+ auto res = isl_val_to_list(copy());
+ return manage(res);
+}
+
isl::val val::trunc() const
{
auto res = isl_val_trunc(copy());
return manage(res);
}
+inline std::ostream &operator<<(std::ostream &os, const val &obj)
+{
+ char *str = isl_val_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
+}
+
// implementations for isl::val_list
val_list manage(__isl_take isl_val_list *ptr) {
return val_list(ptr);
ptr = obj.copy();
}
-
val_list::val_list(__isl_take isl_val_list *ptr)
: ptr(ptr) {}
+val_list::val_list(isl::ctx ctx, int n)
+{
+ auto res = isl_val_list_alloc(ctx.release(), n);
+ ptr = res;
+}
+
+val_list::val_list(isl::val el)
+{
+ auto res = isl_val_list_from_val(el.release());
+ ptr = res;
+}
+
+val_list::val_list(isl::ctx ctx, const std::string &str)
+{
+ auto res = isl_val_list_read_from_str(ctx.release(), str.c_str());
+ ptr = res;
+}
val_list &val_list::operator=(val_list obj) {
std::swap(this->ptr, obj.ptr);
return ptr == nullptr;
}
-
isl::ctx val_list::ctx() const {
return isl::ctx(isl_val_list_get_ctx(ptr));
}
-void val_list::dump() const {
- isl_val_list_dump(get());
-}
-
-
isl::val_list val_list::add(isl::val el) const
{
auto res = isl_val_list_add(copy(), el.release());
return manage(res);
}
-isl::val_list val_list::alloc(isl::ctx ctx, int n)
+isl::val_list val_list::add(long el) const
{
- auto res = isl_val_list_alloc(ctx.release(), n);
+ return this->add(isl::val(ctx(), el));
+}
+
+isl::val val_list::at(int index) const
+{
+ auto res = isl_val_list_get_at(get(), index);
return manage(res);
}
+isl::val val_list::get_at(int index) const
+{
+ return at(index);
+}
+
isl::val_list val_list::clear() const
{
auto res = isl_val_list_clear(copy());
return manage(res);
}
-stat val_list::foreach(const std::function<stat(val)> &fn) const
+stat val_list::foreach(const std::function<stat(isl::val)> &fn) const
{
struct fn_data {
- const std::function<stat(val)> *func;
- } fn_data = { &fn };
+ std::function<stat(isl::val)> func;
+ } fn_data = { fn };
auto fn_lambda = [](isl_val *arg_0, void *arg_1) -> isl_stat {
auto *data = static_cast<struct fn_data *>(arg_1);
- stat ret = (*data->func)(manage(arg_0));
+ auto ret = (data->func)(manage(arg_0));
return ret.release();
};
auto res = isl_val_list_foreach(get(), fn_lambda, &fn_data);
return manage(res);
}
-isl::val_list val_list::from_val(isl::val el)
-{
- auto res = isl_val_list_from_val(el.release());
- return manage(res);
-}
-
-isl::val val_list::get_at(int index) const
-{
- auto res = isl_val_list_get_at(get(), index);
- return manage(res);
-}
-
-isl::val val_list::get_val(int index) const
-{
- auto res = isl_val_list_get_val(get(), index);
- return manage(res);
-}
-
isl::val_list val_list::insert(unsigned int pos, isl::val el) const
{
auto res = isl_val_list_insert(copy(), pos, el.release());
return manage(res);
}
-isl_size val_list::n_val() const
-{
- auto res = isl_val_list_n_val(get());
- return res;
-}
-
-isl::val_list val_list::reverse() const
-{
- auto res = isl_val_list_reverse(copy());
- return manage(res);
-}
-
-isl::val_list val_list::set_val(int index, isl::val el) const
+isl::val_list val_list::insert(unsigned int pos, long el) const
{
- auto res = isl_val_list_set_val(copy(), index, el.release());
- return manage(res);
+ return this->insert(pos, isl::val(ctx(), el));
}
-isl_size val_list::size() const
+class size val_list::size() const
{
auto res = isl_val_list_size(get());
- return res;
-}
-
-isl::val_list val_list::swap(unsigned int pos1, unsigned int pos2) const
-{
- auto res = isl_val_list_swap(copy(), pos1, pos2);
- return manage(res);
-}
-
-// implementations for isl::vec
-vec manage(__isl_take isl_vec *ptr) {
- return vec(ptr);
-}
-vec manage_copy(__isl_keep isl_vec *ptr) {
- ptr = isl_vec_copy(ptr);
- return vec(ptr);
-}
-
-vec::vec()
- : ptr(nullptr) {}
-
-vec::vec(const vec &obj)
- : ptr(nullptr)
-{
- ptr = obj.copy();
-}
-
-
-vec::vec(__isl_take isl_vec *ptr)
- : ptr(ptr) {}
-
-
-vec &vec::operator=(vec obj) {
- std::swap(this->ptr, obj.ptr);
- return *this;
-}
-
-vec::~vec() {
- if (ptr)
- isl_vec_free(ptr);
-}
-
-__isl_give isl_vec *vec::copy() const & {
- return isl_vec_copy(ptr);
-}
-
-__isl_keep isl_vec *vec::get() const {
- return ptr;
-}
-
-__isl_give isl_vec *vec::release() {
- isl_vec *tmp = ptr;
- ptr = nullptr;
- return tmp;
-}
-
-bool vec::is_null() const {
- return ptr == nullptr;
-}
-
-
-isl::ctx vec::ctx() const {
- return isl::ctx(isl_vec_get_ctx(ptr));
-}
-
-void vec::dump() const {
- isl_vec_dump(get());
-}
-
-
-isl::vec vec::add(isl::vec vec2) const
-{
- auto res = isl_vec_add(copy(), vec2.release());
- return manage(res);
-}
-
-isl::vec vec::add_els(unsigned int n) const
-{
- auto res = isl_vec_add_els(copy(), n);
- return manage(res);
-}
-
-isl::vec vec::alloc(isl::ctx ctx, unsigned int size)
-{
- auto res = isl_vec_alloc(ctx.release(), size);
- return manage(res);
-}
-
-isl::vec vec::ceil() const
-{
- auto res = isl_vec_ceil(copy());
- return manage(res);
-}
-
-isl::vec vec::clr() const
-{
- auto res = isl_vec_clr(copy());
- return manage(res);
-}
-
-int vec::cmp_element(const isl::vec &vec2, int pos) const
-{
- auto res = isl_vec_cmp_element(get(), vec2.get(), pos);
- return res;
-}
-
-isl::vec vec::concat(isl::vec vec2) const
-{
- auto res = isl_vec_concat(copy(), vec2.release());
- return manage(res);
-}
-
-isl::vec vec::drop_els(unsigned int pos, unsigned int n) const
-{
- auto res = isl_vec_drop_els(copy(), pos, n);
- return manage(res);
-}
-
-isl::vec vec::extend(unsigned int size) const
-{
- auto res = isl_vec_extend(copy(), size);
- return manage(res);
-}
-
-isl::val vec::get_element_val(int pos) const
-{
- auto res = isl_vec_get_element_val(get(), pos);
- return manage(res);
-}
-
-isl::vec vec::insert_els(unsigned int pos, unsigned int n) const
-{
- auto res = isl_vec_insert_els(copy(), pos, n);
- return manage(res);
-}
-
-isl::vec vec::insert_zero_els(unsigned int pos, unsigned int n) const
-{
- auto res = isl_vec_insert_zero_els(copy(), pos, n);
- return manage(res);
-}
-
-boolean vec::is_equal(const isl::vec &vec2) const
-{
- auto res = isl_vec_is_equal(get(), vec2.get());
- return manage(res);
-}
-
-isl::vec vec::mat_product(isl::mat mat) const
-{
- auto res = isl_vec_mat_product(copy(), mat.release());
- return manage(res);
-}
-
-isl::vec vec::move_els(unsigned int dst_col, unsigned int src_col, unsigned int n) const
-{
- auto res = isl_vec_move_els(copy(), dst_col, src_col, n);
- return manage(res);
-}
-
-isl::vec vec::neg() const
-{
- auto res = isl_vec_neg(copy());
- return manage(res);
-}
-
-isl::vec vec::set_element_si(int pos, int v) const
-{
- auto res = isl_vec_set_element_si(copy(), pos, v);
- return manage(res);
-}
-
-isl::vec vec::set_element_val(int pos, isl::val v) const
-{
- auto res = isl_vec_set_element_val(copy(), pos, v.release());
- return manage(res);
-}
-
-isl::vec vec::set_si(int v) const
-{
- auto res = isl_vec_set_si(copy(), v);
- return manage(res);
-}
-
-isl::vec vec::set_val(isl::val v) const
-{
- auto res = isl_vec_set_val(copy(), v.release());
- return manage(res);
-}
-
-isl_size vec::size() const
-{
- auto res = isl_vec_size(get());
- return res;
-}
-
-isl::vec vec::sort() const
-{
- auto res = isl_vec_sort(copy());
- return manage(res);
-}
-
-isl::vec vec::zero(isl::ctx ctx, unsigned int size)
-{
- auto res = isl_vec_zero(ctx.release(), size);
return manage(res);
}
-isl::vec vec::zero_extend(unsigned int size) const
+inline std::ostream &operator<<(std::ostream &os, const val_list &obj)
{
- auto res = isl_vec_zero_extend(copy(), size);
- return manage(res);
+ char *str = isl_val_list_to_str(obj.get());
+ if (!str) {
+ os.setstate(std::ios_base::badbit);
+ return os;
+ }
+ os << str;
+ free(str);
+ return os;
}
-} // namespace noexceptions
} // namespace isl
#endif /* ISL_CPP_CHECKED */