92 if (is_zero < 0 || is_zero) {
218 if (non_neg >= 0 && !non_neg) {
222 if (non_neg >= 0 && non_neg) {
229 if (non_neg >= 0 && !non_neg) {
231 if (non_neg >= 0 && non_neg)
290 if (!expr1 || !expr2)
324 if (!expr1 || !expr2)
448 term =
scale(term, v);
451 term =
scale(term, v);
752 for (
t = 0;
t < 2; ++
t) {
756 for (
i = 0;
i <
n[
t]; ++
i) {
768 if (parallel || opposite) {
777 for (
t = 0;
t < 2; ++
t) {
778 for (
i = 0;
i <
n[
t]; ++
i) {
781 if (!parallel && !opposite)
798 if (parallel < 0 || opposite < 0)
806 data->
sign = parallel ? 1 : -1;
924 if (!data->
sign || r < 0) {
933 if (data->
sign < 0) {
950 if (data->
sign < 0) {
1048 for (data.
i = 0; data.
i <
n; ++data.
i) {
1090 for (
i = 0;
i < 3; ++
i) {
1096 for (j = 0; j <
n; ++j) {
1100 pos = reverse ?
n - 1 - j : j;
1244 return terms_data.
expr;
1354 if (zero < 0 || zero)
1357 if (zero < 0 || zero)
1398 if (eq >= 0 && eq) {
1424 for (i = 0; i <
n; ++i)
1431 for (i = 0; i <
n; ++i)
1505 int pos_is_cst, neg_is_cst;
1509 if (pos_is_cst && !neg_is_cst) {
1563 expr_pos =
add_terms(expr_pos, aff_pos, &data);
1565 expr_neg =
add_terms(expr_neg, aff_neg, &data);
1620 for (i = 0; i <
n; ++i) {
1677 isl_constraint_list *list;
1684 n = isl_constraint_list_n_constraint(list);
1688 isl_ctx *ctx = isl_constraint_list_get_ctx(list);
1689 isl_constraint_list_free(list);
1695 c = isl_constraint_list_get_constraint(list, 0);
1701 for (i = 1; i <
n; ++i) {
1704 c = isl_constraint_list_get_constraint(list, i);
1712 isl_constraint_list_free(list);
1751 n = isl_basic_set_list_n_basic_set(list);
1756 isl_basic_set_list_free(list);
1762 bset = isl_basic_set_list_get_basic_set(list, 0);
1766 for (i = 1; i <
n; ++i) {
1773 bset = isl_basic_set_list_get_basic_set(list, i);
1783 isl_basic_set_list_free(list);
1805 if (needs_map < 0) {
1807 }
else if (needs_map) {
1897 data->
build = build;
1914 for (i = 0; i < data->
max; ++i) {
1984 set_n = isl_set_list_get_set(data->
p[
n].
set_list, 0);
1987 isl_set_list_set_set(data->
p[
n].
set_list, 0, set_n);
2017 aff = isl_aff_list_get_aff(list, 0);
2018 isl_aff_list_free(list);
2021 n = isl_aff_list_n_aff(list);
2028 for (i = 0; i <
n; ++i) {
2031 aff = isl_aff_list_get_aff(list, i);
2036 isl_aff_list_free(list);
2039 isl_aff_list_free(list);
2059 int pos, isl_ast_expr_list **next)
2084 *next = isl_ast_expr_list_add(*next,
ternary);
2099 int pos, isl_ast_expr_list **next)
2113 *next = isl_ast_expr_list_add(*next, last);
2164 isl_ast_expr_list *res_list;
2165 isl_ast_expr_list **next = &res_list;
2173 "cannot handle void expression",
return NULL);
2175 for (i = 0; i < data->
n; ++i) {
2182 if (
isl_sort(data->
p, data->
n,
sizeof(data->
p[0]),
2186 res_list = isl_ast_expr_list_alloc(ctx, 1);
2189 for (i = 0; i + 1 < data->
n; ++i) {
2198 res = isl_ast_expr_list_get_at(res_list, 0);
2199 isl_ast_expr_list_free(res_list);
2202 isl_ast_expr_list_free(res_list);
2215 set_n = isl_set_list_get_set(data->
p[data->
n].
set_list, 0);
2245 n = isl_aff_list_n_aff(list);
2250 aff = isl_aff_list_get_aff(list, 0);
2297 n = isl_set_list_n_set(data->
p[data->
n].
set_list);
2304 for (i = 0; i <
n ; ++i) {
2310 aff_i = isl_aff_list_get_aff(data->
p[data->
n].
aff_list, i);
2312 required = isl_set_list_get_set(data->
p[data->
n].
set_list, i);
2318 if (is_valid < 0 || !is_valid) {
2323 aff_i = isl_aff_list_get_aff(data->
p[data->
n].
aff_list, i);
2327 if (is_valid < 0 || !is_valid) {
2388 state = data->
p[data->
n].
state;
2393 aff0 = isl_aff_list_get_aff(data->
p[data->
n].
aff_list, 0);
2396 if (subset1 >= 0 && !subset1)
2399 if (subset1 < 0 || subset2 < 0)
2475 if (needs_map < 0) {
2477 }
else if (needs_map) {
2499 return isl_multi_pw_aff_free(mpa);
2500 for (i = 0; i <
n; ++i) {
2504 mpa = isl_multi_pw_aff_set_dim_id(mpa,
isl_dim_in, i,
id);
2529 for (i = 0; i <
n; ++i) {
2533 pa = isl_multi_pw_aff_get_pw_aff(mpa, i);
2538 isl_multi_pw_aff_free(mpa);
2562 domain = isl_multi_pw_aff_copy(mpa);
2566 mpa = isl_multi_pw_aff_range_factor_range(mpa);
2567 if (!isl_multi_pw_aff_has_tuple_id(mpa,
isl_dim_out))
2569 "missing field name",
goto error);
2570 id = isl_multi_pw_aff_get_tuple_id(mpa,
isl_dim_out);
2576 isl_multi_pw_aff_free(mpa);
2602 isl_multi_pw_aff_range_is_wrapping(mpa))
2611 if (isl_multi_pw_aff_has_tuple_id(mpa,
isl_dim_out))
2612 id = isl_multi_pw_aff_get_tuple_id(mpa,
isl_dim_out);
2619 isl_multi_pw_aff_free(mpa);
2657 space_mpa = isl_multi_pw_aff_get_space(mpa);
2666 "spaces don't match",
goto error);
2680 isl_multi_pw_aff_free(mpa);
static void replace(std::string &str, StringRef find, StringRef replace)
__isl_give isl_aff * isl_aff_add_constant_si(__isl_take isl_aff *aff, int v)
isl_ctx * isl_aff_get_ctx(__isl_keep isl_aff *aff)
__isl_null isl_aff * isl_aff_free(__isl_take isl_aff *aff)
isl_ctx * isl_pw_aff_get_ctx(__isl_keep isl_pw_aff *pwaff)
__isl_give isl_local_space * isl_aff_get_domain_local_space(__isl_keep isl_aff *aff)
__isl_export __isl_give isl_pw_multi_aff * isl_pw_multi_aff_intersect_domain(__isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set)
__isl_give isl_aff * isl_aff_val_on_domain(__isl_take isl_local_space *ls, __isl_take isl_val *val)
isl_bool isl_aff_plain_is_equal(__isl_keep isl_aff *aff1, __isl_keep isl_aff *aff2)
__isl_give isl_aff * isl_aff_set_constant_si(__isl_take isl_aff *aff, int v)
__isl_give isl_val * isl_aff_get_coefficient_val(__isl_keep isl_aff *aff, enum isl_dim_type type, int pos)
__isl_give isl_aff * isl_aff_var_on_domain(__isl_take isl_local_space *ls, enum isl_dim_type type, unsigned pos)
__isl_overload __isl_give isl_pw_aff * isl_pw_aff_pullback_multi_aff(__isl_take isl_pw_aff *pa, __isl_take isl_multi_aff *ma)
__isl_export __isl_give isl_aff * isl_aff_neg(__isl_take isl_aff *aff)
__isl_overload __isl_give isl_aff * isl_aff_add_constant_val(__isl_take isl_aff *aff, __isl_take isl_val *v)
__isl_overload __isl_give isl_aff * isl_aff_scale_val(__isl_take isl_aff *aff, __isl_take isl_val *v)
__isl_give isl_val * isl_aff_get_denominator_val(__isl_keep isl_aff *aff)
isl_stat isl_pw_aff_foreach_piece(__isl_keep isl_pw_aff *pwaff, isl_stat(*fn)(__isl_take isl_set *set, __isl_take isl_aff *aff, void *user), void *user)
__isl_give isl_aff * isl_aff_set_coefficient_si(__isl_take isl_aff *aff, enum isl_dim_type type, int pos, int v)
__isl_null isl_pw_aff * isl_pw_aff_free(__isl_take isl_pw_aff *pwaff)
__isl_overload __isl_give isl_aff * isl_aff_scale_down_val(__isl_take isl_aff *aff, __isl_take isl_val *v)
__isl_give isl_basic_set * isl_aff_ge_basic_set(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
__isl_give isl_aff * isl_aff_copy(__isl_keep isl_aff *aff)
__isl_give isl_aff * isl_aff_zero_on_domain(__isl_take isl_local_space *ls)
isl_size isl_aff_dim(__isl_keep isl_aff *aff, enum isl_dim_type type)
__isl_export __isl_give isl_aff * isl_aff_sub(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
__isl_constructor __isl_give isl_multi_pw_aff * isl_multi_pw_aff_from_pw_multi_aff(__isl_take isl_pw_multi_aff *pma)
__isl_export __isl_give isl_val * isl_aff_get_constant_val(__isl_keep isl_aff *aff)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_from_map(__isl_take isl_map *map)
__isl_export __isl_give isl_aff * isl_aff_add(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
__isl_export __isl_give isl_set * isl_aff_eq_set(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
int isl_aff_coefficient_sgn(__isl_keep isl_aff *aff, enum isl_dim_type type, int pos)
__isl_give isl_basic_set * isl_aff_le_basic_set(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
__isl_export __isl_give isl_pw_aff * isl_pw_aff_coalesce(__isl_take isl_pw_aff *pa)
isl_bool isl_aff_involves_dims(__isl_keep isl_aff *aff, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_aff * isl_aff_get_div(__isl_keep isl_aff *aff, int pos)
isl_size isl_pw_aff_n_piece(__isl_keep isl_pw_aff *pwaff)
__isl_export __isl_give isl_set * isl_pw_aff_domain(__isl_take isl_pw_aff *pwaff)
__isl_overload __isl_give isl_multi_pw_aff * isl_multi_pw_aff_pullback_multi_aff(__isl_take isl_multi_pw_aff *mpa, __isl_take isl_multi_aff *ma)
__isl_give isl_pw_aff * isl_pw_aff_copy(__isl_keep isl_pw_aff *pwaff)
__isl_give isl_aff * isl_aff_set_constant_val(__isl_take isl_aff *aff, __isl_take isl_val *v)
struct isl_multi_aff isl_multi_aff
struct isl_multi_pw_aff isl_multi_pw_aff
__isl_null isl_ast_expr * isl_ast_expr_free(__isl_take isl_ast_expr *expr)
__isl_give isl_ast_expr * isl_ast_expr_neg(__isl_take isl_ast_expr *expr)
__isl_give isl_ast_expr * isl_ast_expr_or(__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
__isl_give isl_ast_expr * isl_ast_expr_mul(__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
__isl_give isl_ast_expr * isl_ast_expr_add(__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
__isl_give isl_ast_expr * isl_ast_expr_from_id(__isl_take isl_id *id)
__isl_give isl_ast_expr * isl_ast_expr_sub(__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
__isl_give isl_ast_expr * isl_ast_expr_from_val(__isl_take isl_val *v)
__isl_give isl_ast_expr * isl_ast_expr_and(__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
__isl_give isl_ast_node * isl_ast_node_alloc_user(__isl_take isl_ast_expr *expr)
__isl_give isl_ast_build * isl_ast_build_copy(__isl_keep isl_ast_build *build)
__isl_null isl_ast_build * isl_ast_build_free(__isl_take isl_ast_build *build)
isl_ctx * isl_ast_build_get_ctx(__isl_keep isl_ast_build *build)
int isl_options_get_ast_build_prefer_pdiv(isl_ctx *ctx)
int isl_options_get_ast_build_detect_min_max(isl_ctx *ctx)
isl_size isl_constraint_dim(__isl_keep isl_constraint *constraint, enum isl_dim_type type)
int isl_constraint_plain_cmp(__isl_keep isl_constraint *c1, __isl_keep isl_constraint *c2)
__isl_null isl_constraint * isl_constraint_free(__isl_take isl_constraint *c)
__isl_give isl_constraint * isl_constraint_copy(__isl_keep isl_constraint *c)
__isl_give isl_val * isl_constraint_get_constant_val(__isl_keep isl_constraint *constraint)
isl_bool isl_constraint_involves_dims(__isl_keep isl_constraint *constraint, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_constraint_list * isl_basic_set_get_constraint_list(__isl_keep isl_basic_set *bset)
isl_stat isl_basic_set_foreach_constraint(__isl_keep isl_basic_set *bset, isl_stat(*fn)(__isl_take isl_constraint *c, void *user), void *user)
__isl_give isl_basic_set * isl_basic_set_from_constraint(__isl_take isl_constraint *constraint)
__isl_give isl_val * isl_constraint_get_coefficient_val(__isl_keep isl_constraint *constraint, enum isl_dim_type type, int pos)
__isl_give isl_aff * isl_constraint_get_aff(__isl_keep isl_constraint *constraint)
int isl_constraint_cmp_last_non_zero(__isl_keep isl_constraint *c1, __isl_keep isl_constraint *c2)
isl_bool isl_constraint_is_equality(__isl_keep isl_constraint *constraint)
#define isl_die(ctx, errno, msg, code)
#define isl_calloc_array(ctx, type, n)
isl_bool isl_bool_not(isl_bool b)
isl_stat isl_stat(* fn)(__isl_take ISL_KEY *key, __isl_take ISL_VAL *val, void *user)
isl_stat isl_stat(*) void user)
isl_bool isl_bool(* test)(__isl_keep ISL_KEY *key, __isl_keep ISL_VAL *val, void *user)
__isl_give isl_id * isl_id_alloc(isl_ctx *ctx, __isl_keep const char *name, void *user)
__isl_export __isl_give isl_val * isl_set_min_val(__isl_keep isl_set *set, __isl_keep isl_aff *obj)
void GMPZAPI() neg(mp_int rop, mp_int op)
int GMPQAPI() cmp(mp_rat op1, mp_rat op2)
enum isl_ast_expr_type isl_ast_expr_get_type(__isl_keep isl_ast_expr *expr)
__isl_give isl_ast_expr * isl_ast_expr_op_add_arg(__isl_take isl_ast_expr *expr, __isl_take isl_ast_expr *arg)
__isl_give isl_ast_expr * isl_ast_expr_alloc_int_si(isl_ctx *ctx, int i)
__isl_give isl_ast_expr * isl_ast_expr_alloc_binary(enum isl_ast_expr_op_type type, __isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
__isl_give isl_ast_expr * isl_ast_expr_alloc_op(isl_ctx *ctx, enum isl_ast_expr_op_type op, int n_arg)
isl_bool isl_ast_build_need_schedule_map(__isl_keep isl_ast_build *build)
isl_bool isl_ast_build_aff_is_nonneg(__isl_keep isl_ast_build *build, __isl_keep isl_aff *aff)
__isl_give isl_pw_aff * isl_ast_build_compute_gist_pw_aff(__isl_keep isl_ast_build *build, __isl_take isl_pw_aff *pa)
__isl_give isl_set * isl_ast_build_compute_gist(__isl_keep isl_ast_build *build, __isl_take isl_set *set)
__isl_give isl_space * isl_ast_build_get_space(__isl_keep isl_ast_build *build, int internal)
__isl_give isl_set * isl_ast_build_get_domain(__isl_keep isl_ast_build *build)
__isl_give isl_ast_build * isl_ast_build_restrict_generated(__isl_take isl_ast_build *build, __isl_take isl_set *set)
__isl_give isl_id * isl_ast_build_get_iterator_id(__isl_keep isl_ast_build *build, int pos)
__isl_give isl_pw_multi_aff * isl_ast_build_compute_gist_pw_multi_aff(__isl_keep isl_ast_build *build, __isl_take isl_pw_multi_aff *pma)
__isl_give isl_multi_aff * isl_ast_build_get_schedule_map_multi_aff(__isl_keep isl_ast_build *build)
static isl_bool extends(struct isl_from_pw_aff_data *data, __isl_keep isl_set *set, __isl_keep isl_aff *aff, __isl_give isl_basic_set *(*test)(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2))
static __isl_give isl_ast_expr * var(struct isl_ast_add_term_data *data, enum isl_dim_type type, int pos)
static isl_stat extend_min(struct isl_from_pw_aff_data *data, __isl_take isl_set *set, __isl_take isl_aff *aff)
static __isl_give isl_ast_expr * isl_ast_expr_from_constraint_no_stride(int eq, __isl_take isl_aff *aff, __isl_keep isl_ast_build *build)
static isl_bool aff_is_rational(__isl_keep isl_aff *aff)
static __isl_give isl_ast_expr * isl_ast_build_from_multi_pw_aff_internal(__isl_keep isl_ast_build *build, enum isl_ast_expr_op_type type, __isl_take isl_multi_pw_aff *mpa)
static __isl_give isl_ast_expr * construct_constraint_expr(int eq, __isl_take isl_ast_expr *expr_pos, __isl_take isl_ast_expr *expr_neg)
__isl_give isl_ast_expr * isl_ast_build_expr_from_pw_aff_internal(__isl_keep isl_ast_build *build, __isl_take isl_pw_aff *pa)
static __isl_give isl_ast_expr * isl_ast_expr_add_term(__isl_take isl_ast_expr *expr, enum isl_dim_type type, int pos, __isl_take isl_val *v, struct isl_ast_add_term_data *data)
static isl_stat extend_domain(struct isl_from_pw_aff_data *data, __isl_take isl_set *set, __isl_take isl_aff *aff, int replace)
static isl_bool add_term(enum isl_dim_type type, int pos, __isl_take isl_val *v, void *user)
static isl_bool every_non_zero_coefficient(__isl_keep isl_aff *aff, int reverse, isl_bool(*fn)(enum isl_dim_type type, int pos, __isl_take isl_val *v, void *user), void *user)
__isl_give isl_ast_expr * isl_ast_build_call_from_pw_multi_aff(__isl_keep isl_ast_build *build, __isl_take isl_pw_multi_aff *pma)
static isl_bool clear_opposite_sign(enum isl_dim_type type, int pos, __isl_take isl_val *v, void *user)
static void set_single(struct isl_from_pw_aff_data *data, __isl_take isl_set *set, __isl_take isl_aff *aff)
static __isl_give isl_ast_expr * isl_ast_build_from_multi_pw_aff_member(__isl_keep isl_ast_build *build, __isl_take isl_multi_pw_aff *mpa)
static __isl_give isl_aff * extract_rational(__isl_take isl_aff *aff, __isl_keep isl_ast_expr **expr, __isl_keep isl_ast_build *build)
static isl_bool ast_expr_is_zero(__isl_keep isl_ast_expr *expr)
static int extract_modulo(struct isl_extract_mod_data *data)
static int sort_pieces_cmp(const void *p1, const void *p2, void *arg)
static __isl_give isl_ast_expr * div_mod(enum isl_ast_expr_op_type type, __isl_take isl_aff *aff, __isl_take isl_val *v, __isl_keep isl_ast_build *build)
__isl_give isl_ast_expr * isl_ast_build_access_from_pw_multi_aff(__isl_keep isl_ast_build *build, __isl_take isl_pw_multi_aff *pma)
static void set_none(struct isl_from_pw_aff_data *data)
static isl_bool constant_is_considered_positive(__isl_keep isl_val *v, __isl_keep isl_ast_expr *pos, __isl_keep isl_ast_expr *neg)
static isl_bool extends_max(struct isl_from_pw_aff_data *data, __isl_keep isl_set *set, __isl_keep isl_aff *aff)
static __isl_give isl_ast_expr * isl_ast_build_with_arguments(__isl_keep isl_ast_build *build, enum isl_ast_expr_op_type type, __isl_take isl_ast_expr *arg0, __isl_take isl_multi_pw_aff *mpa)
static __isl_give isl_aff * steal_from_cst(__isl_take isl_aff *aff, __isl_keep isl_val *d, struct isl_ast_add_term_data *data)
static isl_bool single_is_subset(struct isl_from_pw_aff_data *data, __isl_keep isl_set *set)
static __isl_give isl_aff * coefficients_of_sign(__isl_take isl_aff *aff, int sign)
static int cmp_constraint(__isl_keep isl_constraint *a, __isl_keep isl_constraint *b, void *user)
static isl_stat check_parallel_or_opposite(__isl_take isl_constraint *c, void *user)
__isl_give isl_ast_expr * isl_ast_build_expr_from_set(__isl_keep isl_ast_build *build, __isl_take isl_set *set)
__isl_give isl_ast_expr * isl_ast_build_expr_from_pw_aff(__isl_keep isl_ast_build *build, __isl_take isl_pw_aff *pa)
static isl_stat isl_from_pw_aff_data_init(struct isl_from_pw_aff_data *data, __isl_keep isl_ast_build *build, __isl_keep isl_pw_aff *pa)
static isl_bool is_stride_constraint(__isl_keep isl_aff *aff, int pos)
__isl_give isl_ast_expr * isl_ast_expr_from_aff(__isl_take isl_aff *aff, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_expr * extract_stride_constraint(__isl_take isl_aff *aff, int pos, __isl_keep isl_ast_build *build)
static isl_bool is_even_test(struct isl_extract_mod_data *data, __isl_keep isl_aff *arg)
static __isl_give isl_ast_expr * isl_ast_build_from_pw_multi_aff_internal(__isl_keep isl_ast_build *build, enum isl_ast_expr_op_type type, __isl_take isl_pw_multi_aff *pma)
static __isl_give isl_ast_expr * scale(__isl_take isl_ast_expr *expr, __isl_take isl_val *v)
__isl_give isl_ast_expr * isl_ast_build_expr_from_basic_set(__isl_keep isl_ast_build *build, __isl_take isl_basic_set *bset)
static isl_bool all_negative_coefficients(__isl_keep isl_aff *aff)
static __isl_give isl_ast_expr * isl_ast_expr_mod(__isl_keep isl_val *v, __isl_keep isl_aff *aff, __isl_keep isl_val *d, __isl_keep isl_ast_build *build)
static isl_ast_expr * build_pieces(struct isl_from_pw_aff_data *data)
static isl_stat add_last_piece(struct isl_from_pw_aff_data *data, int pos, isl_ast_expr_list **next)
static __isl_give isl_ast_expr * isl_ast_expr_add_int(__isl_take isl_ast_expr *expr, __isl_take isl_val *v)
static isl_stat ast_expr_from_pw_aff(__isl_take isl_set *set, __isl_take isl_aff *aff, void *user)
static isl_bool is_single_rational_aff(__isl_keep isl_aff_list *list)
static isl_ast_expr_list ** add_intermediate_piece(struct isl_from_pw_aff_data *data, int pos, isl_ast_expr_list **next)
static isl_bool is_non_neg_after_stealing(__isl_keep isl_aff *aff, __isl_keep isl_val *d, struct isl_ast_add_term_data *data)
static isl_stat extract_mod(struct isl_extract_mod_data *data)
__isl_give isl_ast_expr * isl_ast_build_expr_from_set_internal(__isl_keep isl_ast_build *build, __isl_take isl_set *set)
static __isl_give isl_aff * extract_modulos(__isl_take isl_aff *aff, __isl_keep isl_ast_expr **pos, __isl_keep isl_ast_expr **neg, __isl_keep isl_ast_build *build)
__isl_give isl_ast_node * isl_ast_build_call_from_executed(__isl_keep isl_ast_build *build, __isl_take isl_map *executed)
static isl_bool extends_min(struct isl_from_pw_aff_data *data, __isl_keep isl_set *set, __isl_keep isl_aff *aff)
static isl_bool add_rational(enum isl_dim_type type, int pos, __isl_take isl_val *v, void *user)
static __isl_give isl_aff * oppose_div_arg(__isl_take isl_aff *aff, __isl_take isl_val *d)
static __isl_give isl_ast_expr * isl_ast_build_from_pw_multi_aff(__isl_keep isl_ast_build *build, enum isl_ast_expr_op_type type, __isl_take isl_pw_multi_aff *pma)
static __isl_give isl_ast_expr * ast_expr_add(__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
static isl_stat extract_nonneg_mod(struct isl_extract_mod_data *data)
__isl_give isl_ast_expr * isl_ast_build_access_from_multi_pw_aff(__isl_keep isl_ast_build *build, __isl_take isl_multi_pw_aff *mpa)
static __isl_give isl_ast_expr * isl_ast_build_from_multi_pw_aff(__isl_keep isl_ast_build *build, enum isl_ast_expr_op_type type, __isl_take isl_multi_pw_aff *mpa)
static isl_stat extend_max(struct isl_from_pw_aff_data *data, __isl_take isl_set *set, __isl_take isl_aff *aff)
static isl_stat try_extract_mod(struct isl_extract_mod_data *data)
__isl_give isl_ast_expr * isl_ast_build_call_from_multi_pw_aff(__isl_keep isl_ast_build *build, __isl_take isl_multi_pw_aff *mpa)
static __isl_give isl_ast_expr * isl_ast_expr_from_constraint(__isl_take isl_constraint *constraint, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_expr * var_div(struct isl_ast_add_term_data *data, int pos)
static int mod_constraint_is_simpler(struct isl_extract_mod_data *data, __isl_keep isl_constraint *c)
static isl_stat extract_term_and_mod(struct isl_extract_mod_data *data, __isl_take isl_aff *term, __isl_take isl_aff *arg)
static void isl_from_pw_aff_data_clear(struct isl_from_pw_aff_data *data)
static __isl_give isl_ast_expr * ast_expr_sub(__isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
static __isl_give isl_multi_pw_aff * set_iterator_names(__isl_keep isl_ast_build *build, __isl_take isl_multi_pw_aff *mpa)
static __isl_give isl_ast_expr * add_terms(__isl_take isl_ast_expr *expr, __isl_keep isl_aff *aff, struct isl_ast_add_term_data *data)
static __isl_give isl_ast_expr * ast_expr_from_aff_list(__isl_take isl_aff_list *list, enum isl_from_pw_aff_state state, __isl_keep isl_ast_build *build)
static unsigned pos(__isl_keep isl_space *space, enum isl_dim_type type)
#define isl_basic_set_list
static int all_neg(int *row, int n)
int isl_sort(void *const pbase, size_t total_elems, size_t size, int(*cmp)(const void *, const void *, void *arg), void *arg)
__isl_give isl_aff * isl_local_space_get_div(__isl_keep isl_local_space *ls, int pos)
isl_ctx * isl_local_space_get_ctx(__isl_keep isl_local_space *ls)
__isl_null isl_local_space * isl_local_space_free(__isl_take isl_local_space *ls)
__isl_give isl_local_space * isl_local_space_copy(__isl_keep isl_local_space *ls)
__isl_give isl_id * isl_local_space_get_dim_id(__isl_keep isl_local_space *ls, enum isl_dim_type type, unsigned pos)
isl_bool isl_local_space_has_dim_id(__isl_keep isl_local_space *ls, enum isl_dim_type type, unsigned pos)
struct isl_basic_set isl_basic_set
__isl_export __isl_give isl_set * isl_set_coalesce(__isl_take isl_set *set)
__isl_give isl_set * isl_set_list_union(__isl_take isl_set_list *list)
__isl_export __isl_give isl_set * isl_set_subtract(__isl_take isl_set *set1, __isl_take isl_set *set2)
__isl_export __isl_give isl_set * isl_set_union(__isl_take isl_set *set1, __isl_take isl_set *set2)
__isl_overload __isl_give isl_set * isl_set_preimage_multi_aff(__isl_take isl_set *set, __isl_take isl_multi_aff *ma)
__isl_null isl_basic_set * isl_basic_set_free(__isl_take isl_basic_set *bset)
__isl_give isl_basic_set * isl_set_simple_hull(__isl_take isl_set *set)
__isl_null isl_set * isl_set_free(__isl_take isl_set *set)
__isl_export isl_bool isl_set_is_subset(__isl_keep isl_set *set1, __isl_keep isl_set *set2)
__isl_give isl_set * isl_set_copy(__isl_keep isl_set *set)
__isl_give isl_basic_set_list * isl_set_get_basic_set_list(__isl_keep isl_set *set)
__isl_export __isl_give isl_set * isl_set_gist(__isl_take isl_set *set, __isl_take isl_set *context)
__isl_give isl_set * isl_set_compute_divs(__isl_take isl_set *set)
__isl_give isl_basic_set * isl_basic_set_remove_divs(__isl_take isl_basic_set *bset)
__isl_export __isl_give isl_basic_set * isl_basic_set_gist(__isl_take isl_basic_set *bset, __isl_take isl_basic_set *context)
__isl_export isl_size isl_set_n_basic_set(__isl_keep isl_set *set)
__isl_export __isl_give isl_set * isl_set_intersect(__isl_take isl_set *set1, __isl_take isl_set *set2)
__isl_constructor __isl_give isl_set * isl_set_from_basic_set(__isl_take isl_basic_set *bset)
__isl_give isl_basic_set * isl_basic_set_copy(__isl_keep isl_basic_set *bset)
__isl_null isl_space * isl_space_free(__isl_take isl_space *space)
isl_bool isl_space_tuple_is_equal(__isl_keep isl_space *space1, enum isl_dim_type type1, __isl_keep isl_space *space2, enum isl_dim_type type2)
struct isl_ast_add_term_data * term
struct isl_from_pw_aff_piece * p
enum isl_from_pw_aff_state state
__isl_export __isl_give isl_val * isl_val_abs(__isl_take isl_val *v)
__isl_export isl_bool isl_val_lt(__isl_keep isl_val *v1, __isl_keep isl_val *v2)
__isl_export __isl_give isl_val * isl_val_mod(__isl_take isl_val *v1, __isl_take isl_val *v2)
__isl_give isl_val * isl_val_copy(__isl_keep isl_val *v)
__isl_export int isl_val_cmp_si(__isl_keep isl_val *v, long i)
__isl_export isl_bool isl_val_is_negone(__isl_keep isl_val *v)
__isl_export __isl_give isl_val * isl_val_floor(__isl_take isl_val *v)
__isl_export __isl_give isl_val * isl_val_ceil(__isl_take isl_val *v)
__isl_export __isl_give isl_val * isl_val_div(__isl_take isl_val *v1, __isl_take isl_val *v2)
__isl_give isl_val * isl_val_sub_ui(__isl_take isl_val *v1, unsigned long v2)
__isl_export __isl_give isl_val * isl_val_add(__isl_take isl_val *v1, __isl_take isl_val *v2)
__isl_export isl_bool isl_val_is_pos(__isl_keep isl_val *v)
__isl_export __isl_give isl_val * isl_val_zero(isl_ctx *ctx)
__isl_export isl_bool isl_val_abs_eq(__isl_keep isl_val *v1, __isl_keep isl_val *v2)
__isl_export int isl_val_sgn(__isl_keep isl_val *v)
__isl_export isl_bool isl_val_is_divisible_by(__isl_keep isl_val *v1, __isl_keep isl_val *v2)
__isl_export isl_bool isl_val_is_neg(__isl_keep isl_val *v)
isl_bool isl_val_eq_si(__isl_keep isl_val *v, long i)
__isl_null isl_val * isl_val_free(__isl_take isl_val *v)
__isl_export isl_bool isl_val_is_zero(__isl_keep isl_val *v)
__isl_export __isl_give isl_val * isl_val_sub(__isl_take isl_val *v1, __isl_take isl_val *v2)
__isl_export isl_bool isl_val_is_one(__isl_keep isl_val *v)
__isl_export __isl_give isl_val * isl_val_neg(__isl_take isl_val *v)
__isl_export __isl_give isl_val * isl_val_mul(__isl_take isl_val *v1, __isl_take isl_val *v2)