37#include <isl_config.h>
52#define EL_BASE pw_multi_aff
58#define EL_BASE union_pw_aff
64#define EL_BASE union_pw_multi_aff
115 "domain of affine expression should be a set",
340 "expecting rational value or NaN",
goto error);
384 "expecting (parameter) set space",
goto error);
429 "parameter not found in space",
goto error);
474 uint32_t hash, ls_hash, v_hash;
493 return aff ?
aff->ls : NULL;
732 if (equal_params < 0)
864 "output/set dimension does not have a coefficient",
893 "output/set dimension does not have a coefficient",
945 "expecting rational value",
goto error);
966 aff->v->el + 1, v->d,
aff->v->size - 1);
1031 aff->v->el + 1, v->d,
aff->v->size - 1);
1077 if (is_nan < 0 || is_zero < 0)
1079 if (is_nan || is_zero)
1084 if (is_nan < 0 || is_rat < 0)
1090 "expecting rational value or NaN",
goto error);
1192 "output/set dimension does not have a coefficient",
1229 "output/set dimension does not have a coefficient",
1269 "output/set dimension does not have a coefficient",
1283 "expecting rational value",
goto error);
1305 aff->v->el + 1, v->d,
aff->v->size - 1);
1334 "output/set dimension does not have a coefficient",
1376 "output/set dimension does not have a coefficient",
1390 "expecting rational value",
goto error);
1410 aff->v->el + 1, v->d,
aff->v->size - 1);
1487 if (
n < 0 || v_div < 0)
1501 if (active[v_div +
pos])
1526 if (
n < 0 || off < 0)
1529 for (i = 0; i <
n; ++i) {
1534 aff->ls->div->row[i], len, i + 1,
n - (i + 1));
1587 if (
n < 0 || off < 0)
1589 for (i = 1; i <
n; ++i) {
1590 for (j = 0; j < i; ++j) {
1595 aff->v->size, i, 1);
1658 aff->v->el[1 + off +
a],
aff->v->el[1 + off +
b]);
1681 for (i = 1; i <
n; ++i) {
1682 for (j = i - 1; j >= 0; --j) {
1765 for (i = 1; i <
aff->v->size; ++i) {
1806 "expecting integer modulo",
goto error);
1851 "expecting integer modulo",
goto error);
1913 if (
offset < 0 || old_n_div < 0 || new_n_div < 0)
1946 isl_seq_scale(aff1->v->el + 1, aff1->v->el + 1,
f, aff1->v->size - 1);
1948 isl_seq_addmul(aff1->v->el + 1,
f, aff2->v->el + 1, aff1->v->size - 1);
1991 "spaces don't match",
goto error);
2004 if (n_div1 < 0 || n_div2 < 0)
2006 if (n_div1 == 0 && n_div2 == 0)
2011 if ((n_div1 && !exp1) || (n_div2 && !exp2))
2088 "expecting rational factor",
goto error);
2155 "expecting rational factor",
goto error);
2158 "factor needs to be positive",
goto error);
2194 "cannot set name of output/set dimension",
2213 "cannot set name of output/set dimension",
2239 "cannot only set id of input tuple",
goto error);
2265 if (eq->n_eq == 0) {
2282 for (i = 0; i < eq->n_eq; ++i) {
2284 if (j < 0 || j == 0 || j >= o_div)
2352 int rational,
void *
user)
2367 "rational sets not supported",
goto error);
2444 int rational,
void *
user)
2627 if (isl_aff_check_range(
aff,
type, first,
n) < 0)
2635 for (i = 0; i <
n; ++i)
2636 if (active[first + i]) {
2668 "cannot drop output/set dimension",
2716 aff = isl_aff_drop_domain(
aff, 0,
n);
2744 "cannot insert output/set dimensions",
2804 "cannot move output/set dimension",
2816 if (dst_type == src_type)
2818 "moving dims within the same type not supported",
2824 if (src_off < 0 || dst_off < 0)
2827 g_src_pos = 1 + src_off + src_pos;
2828 g_dst_pos = 1 + dst_off + dst_pos;
2829 if (dst_type > src_type)
2834 src_type, src_pos,
n);
2864 if (
offset < 0 || n_in < 0 || n_out < 0)
2894#define isl_aff_involves_nan isl_aff_is_nan
2897#define PW isl_pw_aff
2901#define EL_IS_ZERO is_empty
2905#define IS_ZERO is_empty
2908#undef DEFAULT_IS_ZERO
2909#define DEFAULT_IS_ZERO 0
2951 isl_pw_aff_align_params_bin(&pwaff1, &pwaff2);
2952 return isl_pw_aff_union_opt_cmp(pwaff1, pwaff2, &
isl_aff_ge_set);
2964 isl_pw_aff_align_params_bin(&pwaff1, &pwaff2);
2965 return isl_pw_aff_union_opt_cmp(pwaff1, pwaff2, &
isl_aff_le_set);
2985#define TYPE isl_pw_aff
2998 int complement,
void *
user)
3008 for (i = 0; i < pwaff->n; ++i) {
3087 int rational,
void *
user)
3095 "rational binding not supported",
goto error);
3158 isl_pw_aff_align_params_bin(&pwaff1, &pwaff2);
3168 isl_pw_aff_align_params_bin(&pwaff1, &pwaff2);
3178 isl_pw_aff_align_params_bin(&pwaff1, &pwaff2);
3213 isl_pw_aff_align_params_bin(&pa1, &pa2);
3221 set = order(pa1, pa2);
3287 if (!list1 || !list2)
3290 ctx = isl_pw_aff_list_get_ctx(list1);
3291 if (list1->n < 1 || list2->n < 1)
3293 "list should contain at least one element",
goto error);
3296 for (i = 0; i < list1->n; ++i)
3297 for (j = 0; j < list2->n; ++j) {
3305 isl_pw_aff_list_free(list1);
3306 isl_pw_aff_list_free(list2);
3309 isl_pw_aff_list_free(list1);
3310 isl_pw_aff_list_free(list2);
3367 isl_pw_aff_align_params_bin(&pwaff1, &pwaff2);
3383 "factor needs to be positive",
3385 pwaff = isl_pw_aff_cow(pwaff);
3391 for (i = 0; i < pwaff->n; ++i) {
3393 if (!pwaff->p[i].aff)
3402 struct isl_pw_aff_un_op_control control = { .fn_base = &
isl_aff_floor };
3403 return isl_pw_aff_un_op(pwaff, &control);
3408 struct isl_pw_aff_un_op_control control = { .fn_base = &
isl_aff_ceil };
3409 return isl_pw_aff_un_op(pwaff, &control);
3441 isl_set *cond_true, *cond_false;
3473 cond_false, pwaff_false);
3501 for (i = 0; i < pwaff->n; ++i) {
3503 if (is_cst < 0 || !is_cst)
3536 "at least one affine expression should be constant",
3582 "second argument should be a constant",
goto error);
3614 isl_pw_aff_align_params_bin(&pwaff1, &pwaff2);
3615 return isl_pw_aff_on_shared_domain(pwaff1, pwaff2, &
isl_aff_add);
3621 isl_pw_aff_align_params_bin(&pwaff1, &pwaff2);
3622 return isl_pw_aff_on_shared_domain(pwaff1, pwaff2, &
isl_aff_mul);
3637 "second argument should be a piecewise constant",
3639 isl_pw_aff_align_params_bin(&pa1, &pa2);
3640 return isl_pw_aff_on_shared_domain(pa1, pa2, &
isl_aff_div);
3668 "second argument should be a piecewise constant",
3703 "second argument should be a piecewise constant",
3723 if (has_nan < 0 || has_nan)
3802 isl_pw_aff_align_params_bin(&pa1, &pa2);
3855 for (i = 1; i <
n; ++i) {
3862 isl_pw_aff_list_free(list);
3875 pa1 = isl_pw_aff_list_get_at(list, pos1);
3876 pa2 = isl_pw_aff_list_get_at(list, pos2);
3918 n = isl_pw_aff_list_size(list);
3923 "list should contain at least one element",
goto error);
3931 pa = isl_pw_aff_list_get_at(list, 0);
3936 for (i = 0; i <
n; ++i) {
3937 pa = isl_pw_aff_list_get_at(list, i);
3938 for (j = 0; j <
n; ++j) {
3944 dom =
less(list, j, i);
3946 dom =
less(list, i, j);
3953 isl_pw_aff_list_free(list);
3956 isl_pw_aff_list_free(list);
3984 pwaff = isl_pw_aff_cow(pwaff);
3990 for (i = 0; i < pwaff->n; ++i) {
3992 if (!pwaff->p[i].set)
4012 for (i = 0; i <
n; ++i) {
4015 pa = isl_pw_aff_list_get_pw_aff(list, i);
4017 list = isl_pw_aff_list_set_pw_aff(list, i,
pa);
4060 "parameters don't match",
goto error);
4067 "domains don't match",
goto error);
4086 space = isl_multi_aff_get_space(
ma);
4087 isl_multi_aff_free(
ma);
4127#define DOMBASE basic_set
4151 if (n_row < 0 || n_col < 0 || n_out < 0 ||
total < 0)
4155 "insufficient number of rows",
goto error);
4158 "insufficient number of columns",
goto error);
4159 if (1 + n_out != n_row || 2 +
total != n_row + n_col)
4161 "dimension mismatch",
goto error);
4167 for (i = 0; i < n_row - 1; ++i) {
4178 ma = isl_multi_aff_set_aff(
ma, i,
aff);
4189 isl_multi_aff_free(
ma);
4203 n = isl_multi_aff_size(
ma);
4208 mv = isl_multi_val_zero(space);
4210 for (i = 0; i <
n; ++i) {
4214 aff = isl_multi_aff_get_at(
ma, i);
4217 mv = isl_multi_val_set_at(mv, i,
val);
4235 if (!
ma->space->nested[0])
4238 space = isl_multi_aff_get_space(
ma);
4240 ma = isl_multi_aff_reset_space(
ma, space);
4259 "not a map space",
goto error);
4274 for (i = 0; i < n_in; ++i) {
4279 ma = isl_multi_aff_set_aff(
ma, i,
aff);
4311 "not a map space",
goto error);
4315 if (n_in < 0 || n_out < 0)
4327 for (i = 0; i < n_out; ++i) {
4332 ma = isl_multi_aff_set_aff(
ma, i,
aff);
4391 unsigned first,
unsigned n)
4402 "expecting set space",
goto error);
4405 "only set dimensions can be projected out",
goto error);
4417 return isl_multi_aff_alloc(space);
4423 for (i = 0; i < first; ++i) {
4428 ma = isl_multi_aff_set_aff(
ma, i,
aff);
4431 for (i = 0; i < dim - (first +
n); ++i) {
4436 ma = isl_multi_aff_set_aff(
ma, first + i,
aff);
4451 unsigned first,
unsigned n)
4485 ma = isl_multi_aff_identity_on_domain_space(space);
4507 n = isl_multi_aff_size(maff);
4511 for (i = 0; i <
n; ++i) {
4514 aff = isl_multi_aff_take_at(maff, i);
4517 maff = isl_multi_aff_restore_at(maff, i,
aff);
4524 isl_multi_aff_free(maff);
4534 n = isl_multi_aff_size(maff);
4536 return isl_multi_aff_free(maff);
4538 for (i = 0; i <
n; ++i) {
4541 aff = isl_multi_aff_take_at(maff, i);
4543 maff = isl_multi_aff_restore_at(maff, i,
aff);
4552 maff1 = isl_multi_aff_add(maff1, maff2);
4595 space = isl_multi_aff_get_domain_space(
ma1);
4597 isl_multi_aff_free(
ma1);
4598 isl_multi_aff_free(ma2);
4616 aff1 = isl_multi_aff_get_at(
ma1, i);
4617 aff2 = isl_multi_aff_get_at(ma2, i);
4618 return cmp(aff1, aff2);
4643 if (isl_multi_aff_check_equal_space(
ma1, ma2) < 0)
4645 n = isl_multi_aff_size(
ma1);
4651 space = isl_multi_aff_get_domain_space(
ma1);
4655 for (i = 0; i + 1 <
n; ++i) {
4666 if (empty >= 0 && empty)
4674 isl_multi_aff_free(
ma1);
4675 isl_multi_aff_free(ma2);
4680 isl_multi_aff_free(
ma1);
4681 isl_multi_aff_free(ma2);
4703#define isl_multi_aff_zero_in_space isl_multi_aff_zero
4706#define PW isl_pw_multi_aff
4708#define BASE multi_aff
4710#define EL_IS_ZERO is_empty
4714#define IS_ZERO is_empty
4717#undef DEFAULT_IS_ZERO
4718#define DEFAULT_IS_ZERO 0
4739#define BASE pw_multi_aff
4747#define BASE multi_aff
4766 if (check_space(
pma) < 0)
4769 space = isl_pw_multi_aff_take_space(
pma);
4770 space = space_factor(space);
4772 for (i = 0;
pma && i <
pma->n; ++i) {
4775 ma = isl_pw_multi_aff_take_base_at(
pma, i);
4776 ma = multi_aff_factor(
ma);
4777 pma = isl_pw_multi_aff_restore_base_at(
pma, i,
ma);
4780 pma = isl_pw_multi_aff_restore_space(
pma, space);
4816 &isl_multi_aff_range_factor_domain);
4826 &isl_multi_aff_range_factor_range);
4839 isl_pw_multi_aff_align_params_bin(&pma1, &pma2);
4840 return isl_pw_multi_aff_union_opt_cmp(pma1, pma2,
4854 isl_pw_multi_aff_align_params_bin(&pma1, &pma2);
4855 return isl_pw_multi_aff_union_opt_cmp(pma1, pma2,
4862 isl_pw_multi_aff_align_params_bin(&pma1, &pma2);
4863 return isl_pw_multi_aff_on_shared_domain(pma1, pma2,
4864 &isl_multi_aff_add);
4872 isl_pw_multi_aff_align_params_bin(&pma1, &pma2);
4873 return isl_pw_multi_aff_on_shared_domain(pma1, pma2,
4874 &isl_multi_aff_sub);
4887 if (isl_pw_multi_aff_align_params_bin(&pma1, &pma2) < 0)
4890 n = pma1->n * pma2->n;
4893 res = isl_pw_multi_aff_alloc_size(space,
n);
4895 for (i = 0; i < pma1->n; ++i) {
4896 for (j = 0; j < pma2->n; ++j) {
4902 ma = isl_multi_aff_product(
4903 isl_multi_aff_copy(pma1->p[i].maff),
4904 isl_multi_aff_copy(pma2->p[j].maff));
4937 for (i = first; i <
n; ++i) {
4942 aff_i = isl_multi_aff_get_aff(
ma, i);
5042 if (n_out < 0 || n_div < 0)
5047 bmap->eq[eq] + o_out + n_out, n_div);
5051 bmap->eq[eq] + o_out + n_out, n_div);
5057 bmap->eq[eq][o_out +
pos]);
5064 bmap->ineq[ineq] + o_out + n_out, n_div);
5067 bmap->ineq[ineq] + o_out, ctx->
negone);
5070 bmap->eq[eq][o_out + n_out + div]);
5105 if (eq >= bmap->n_eq)
5107 "unable to find suitable equality",
return NULL);
5132 ma = isl_multi_aff_free(
ma);
5134 for (i = 0; i < n_out; ++i) {
5138 ma = isl_multi_aff_set_aff(
ma, i,
aff);
5205 "map is not single-valued",
goto error);
5212 for (i = 0; i <
map->n; ++i) {
5267 ma = isl_multi_aff_range_product(
id,
ma);
5335 isl_maybe_isl_aff
sub;
5376 unsigned n_in,
unsigned n_out,
int is_set)
5389 ma = isl_multi_aff_alloc(space);
5390 ma = isl_multi_aff_set_aff(
ma, d,
aff);
5392 for (i = 0; i < n_out; ++i) {
5397 ma = isl_multi_aff_set_aff(
ma, i,
aff);
5482 if (n_in < 0 || n_out < 0)
5491 ma = isl_multi_aff_identity(space);
5559 if (n_div < 0 || n_out < 0)
5572 for (i = 0; i < n_out; ++i) {
5573 for (j = 0; j <
hull->n_eq; ++j) {
5808 aff->v->size, subs->v->size, v);
5824 n = isl_multi_aff_size(maff);
5826 return isl_multi_aff_free(maff);
5831 for (i = 0; i <
n; ++i) {
5834 aff = isl_multi_aff_take_at(maff, i);
5836 maff = isl_multi_aff_restore_at(maff, i,
aff);
5870 n =
pma->n * subs->n;
5873 for (i = 0; i <
pma->n; ++i) {
5874 for (j = 0; j < subs->n; ++j) {
5883 pos, subs->p[j].aff);
5885 if (empty < 0 || empty) {
5893 isl_multi_aff_copy(
pma->p[i].maff),
5896 res = isl_pw_multi_aff_add_piece(
res, common, res_ij);
5946 int n_div_ma,
int n_div_bmap,
5956 if (n_param < 0 || n_in < 0 || n_out < 0)
5959 isl_seq_cpy(dst, src, has_denom + 1 + n_param + n_before);
5960 o_dst = o_src = has_denom + 1 + n_param + n_before;
5969 isl_seq_cpy(dst + o_dst, src + o_src, n_div_bmap);
5973 for (i = 0; i < n_out; ++i) {
5974 int offset = has_denom + 1 + n_param + n_before + i;
5988 c2,
ma->u.p[i]->v->el + o_src, 1 + n_param);
5989 o_dst += 1 + n_param;
5990 o_src += 1 + n_param;
5994 c2,
ma->u.p[i]->v->el + o_src, n_in);
6000 c2,
ma->u.p[i]->v->el + o_src, n_div_ma);
6044 if (n_div_aff < 0 || n_div_ma < 0)
6059 n_div_ma, n_div_aff,
f,
c1,
c2, g, 1) < 0)
6068 isl_multi_aff_free(
ma);
6073 isl_multi_aff_free(
ma);
6104 isl_multi_aff_align_params_bin(&
ma1, &ma2);
6106 n = isl_multi_aff_size(
ma1);
6111 isl_multi_aff_get_space(
ma1));
6113 for (i = 0; i <
n; ++i) {
6116 aff = isl_multi_aff_take_at(
ma1, i);
6118 ma1 = isl_multi_aff_restore_at(
ma1, i,
aff);
6121 ma1 = isl_multi_aff_reset_space(
ma1, space);
6122 isl_multi_aff_free(ma2);
6126 isl_multi_aff_free(ma2);
6127 isl_multi_aff_free(
ma1);
6156 "spaces don't match",
goto error);
6163 if (
equal < 0 || src_n_div < 0 || dst_n_div < 0)
6170 if (!exp1 || (dst_n_div && !exp2))
6195 n = isl_multi_aff_size(maff);
6197 return isl_multi_aff_free(maff);
6201 aff_0 = isl_multi_aff_take_at(maff, 0);
6202 for (i = 1; i <
n; ++i) {
6205 aff_i = isl_multi_aff_peek_at(maff, i);
6208 maff = isl_multi_aff_restore_at(maff, 0, aff_0);
6210 aff_0 = isl_multi_aff_peek_at(maff, 0);
6211 for (i = 1; i <
n; ++i) {
6214 aff_i = isl_multi_aff_take_at(maff, i);
6216 maff = isl_multi_aff_restore_at(maff, i, aff_i);
6251 n = isl_multi_aff_size(maff);
6253 return isl_multi_aff_free(maff);
6257 isl_space *space = isl_multi_aff_get_domain_space(maff);
6260 return isl_multi_aff_free(maff);
6267 aff = isl_multi_aff_peek_at(maff, 0);
6270 return isl_multi_aff_free(maff);
6271 space = isl_multi_aff_get_space(maff);
6274 isl_multi_aff_get_space(maff));
6275 maff = isl_multi_aff_restore_space(maff, space);
6278 aff = isl_multi_aff_peek_at(maff, 0);
6281 return isl_multi_aff_free(maff);
6284 for (i = 0; i <
n; ++i) {
6285 aff = isl_multi_aff_take_at(maff, i);
6287 maff = isl_multi_aff_restore_at(maff, i,
aff);
6294#define TYPE isl_pw_multi_aff
6317 pos + 1, n_out -
pos - 1);
6321 for (i = 0; i <
pma->n; ++i) {
6323 aff = isl_multi_aff_get_aff(
pma->p[i].maff,
pos);
6349 ma = isl_multi_aff_zero(space);
6438 if (!upma1 || !
upma2)
6442 data.
res = isl_union_pw_multi_aff_alloc_same_size(upma1);
6465 isl_pw_multi_aff_align_params_bin(&pma1, &pma2);
6468 return isl_pw_multi_aff_on_shared_domain_in(pma1, pma2, space,
6469 &isl_multi_aff_range_product);
6480 isl_pw_multi_aff_align_params_bin(&pma1, &pma2);
6484 return isl_pw_multi_aff_on_shared_domain_in(pma1, pma2, space,
6485 &isl_multi_aff_flat_range_product);
6501 space1 = isl_pw_multi_aff_peek_space(data->
pma);
6502 space2 = isl_pw_multi_aff_peek_space(pma2);
6576 "domains don't match",
goto error);
6583 for (i = 0; i <
pma->n; ++i) {
6584 for (j = 0; j <
pa->n; ++j) {
6592 if (empty < 0 || empty) {
6599 res_ij = isl_multi_aff_set_aff(
6600 isl_multi_aff_copy(
pma->p[i].maff),
pos,
6605 res = isl_pw_multi_aff_add_piece(
res, common, res_ij);
6629 if (equal_params < 0)
6682 "parameters don't match",
goto error);
6689 "domains don't match",
goto error);
6753 n = isl_multi_pw_aff_size(mpa);
6755 mpa = isl_multi_pw_aff_free(mpa);
6756 ma = isl_multi_aff_alloc(isl_multi_pw_aff_get_space(mpa));
6757 for (i = 0; i <
n; ++i) {
6761 ma = isl_multi_aff_set_aff(
ma, i,
aff);
6763 isl_multi_pw_aff_free(mpa);
6775 if (!isl_multi_pw_aff_has_explicit_domain(mpa))
6801 if (!isl_multi_pw_aff_has_explicit_domain(mpa))
6851#define TYPE isl_pw_multi_aff
6864 if (isl_pw_multi_aff_check_match_range_multi_val(
pma, mv) < 0)
6871 for (i = 0; i <
n; ++i) {
6874 ma = isl_pw_multi_aff_take_base_at(
pma, i);
6875 ma =
fn(
ma, isl_multi_val_copy(mv));
6876 pma = isl_pw_multi_aff_restore_base_at(
pma, i,
ma);
6879 isl_multi_val_free(mv);
6882 isl_multi_val_free(mv);
6893 &isl_multi_aff_scale_multi_val);
6902 &isl_multi_aff_scale_down_multi_val);
6916 equal = isl_pw_multi_aff_match_range_multi_val(
pma, mv);
6934 struct isl_union_pw_multi_aff_transform_control control = {
6940 isl_multi_val_get_space(mv));
6941 mv = isl_multi_val_align_params(mv,
6946 return isl_union_pw_multi_aff_transform(upma, &control);
6948 isl_multi_val_free(mv);
6951 isl_multi_val_free(mv);
6979 pma = isl_pw_multi_aff_alloc_size(space,
pa->n);
6981 for (i = 0; i <
pa->n; ++i) {
7009 space = isl_multi_pw_aff_get_space(mpa);
7010 dom = isl_multi_pw_aff_get_explicit_domain(mpa);
7011 isl_multi_pw_aff_free(mpa);
7013 ma = isl_multi_aff_zero(space);
7035 space = isl_multi_pw_aff_get_space(mpa);
7036 pa = isl_multi_pw_aff_get_pw_aff(mpa, 0);
7039 for (i = 1; i < mpa->n; ++i) {
7042 pa = isl_multi_pw_aff_get_pw_aff(mpa, i);
7049 isl_multi_pw_aff_free(mpa);
7073 ma = isl_multi_aff_free(
ma);
7077 mpa = isl_multi_pw_aff_alloc(isl_multi_aff_get_space(
ma));
7079 for (i = 0; i <
n; ++i) {
7083 mpa = isl_multi_pw_aff_set_pw_aff(mpa, i,
pa);
7086 isl_multi_aff_free(
ma);
7118 mpa = isl_multi_pw_aff_alloc(space);
7120 for (i = 0; i <
n; ++i) {
7124 mpa = isl_multi_pw_aff_set_pw_aff(mpa, i,
pa);
7126 if (isl_multi_pw_aff_has_explicit_domain(mpa)) {
7200 if (equal_params < 0)
7202 if (!equal_params) {
7207 mpa1 = isl_multi_pw_aff_copy(mpa1);
7208 mpa2 = isl_multi_pw_aff_copy(mpa2);
7209 mpa1 = isl_multi_pw_aff_align_params(mpa1,
7210 isl_multi_pw_aff_get_space(mpa2));
7211 mpa2 = isl_multi_pw_aff_align_params(mpa2,
7212 isl_multi_pw_aff_get_space(mpa1));
7214 isl_multi_pw_aff_free(mpa1);
7215 isl_multi_pw_aff_free(mpa2);
7223 for (i = 0; i < mpa1->n; ++i) {
7255 if (has_nan >= 0 && !has_nan)
7257 if (has_nan < 0 || has_nan)
7270#define BASE multi_aff
7275#define BASE pw_multi_aff
7301 n_mpa_in = isl_multi_pw_aff_dim(mpa,
isl_dim_in);
7302 if (n_in < 0 || n_div < 0 || n_mpa_in < 0)
7313 for (i = 0; i < n_in; ++i) {
7319 pa_i = isl_multi_pw_aff_get_pw_aff(mpa, i);
7324 for (i = 0; i < n_div; ++i) {
7332 isl_multi_pw_aff_copy(mpa), div);
7339 isl_multi_pw_aff_free(mpa);
7344 isl_multi_pw_aff_free(mpa);
7361 if (equal_params < 0)
7372 isl_multi_pw_aff_free(mpa);
7399 for (i = 0; i <
pa->n; ++i) {
7404 isl_multi_pw_aff_copy(mpa),
7408 isl_multi_pw_aff_copy(mpa));
7414 isl_multi_pw_aff_free(mpa);
7418 isl_multi_pw_aff_free(mpa);
7434 if (equal_params < 0)
7445 isl_multi_pw_aff_free(mpa);
7461#define BASE multi_pw_aff
7479 mpa1 = isl_multi_pw_aff_align_params(mpa1,
7480 isl_multi_pw_aff_get_space(mpa2));
7481 mpa2 = isl_multi_pw_aff_align_params(mpa2,
7482 isl_multi_pw_aff_get_space(mpa1));
7491 "range spaces don't match",
goto error);
7496 res = order(mpa1, mpa2, space1);
7497 isl_multi_pw_aff_free(mpa1);
7498 isl_multi_pw_aff_free(mpa2);
7501 isl_multi_pw_aff_free(mpa1);
7502 isl_multi_pw_aff_free(mpa2);
7526 for (i = 0; i <
n; ++i) {
7530 pa1 = isl_multi_pw_aff_get_pw_aff(mpa1, i);
7531 pa2 = isl_multi_pw_aff_get_pw_aff(mpa2, i);
7603 for (i = 0; i <
n; ++i) {
7610 pa1 = isl_multi_pw_aff_get_pw_aff(mpa1, i);
7611 pa2 = isl_multi_pw_aff_get_pw_aff(mpa2, i);
7612 map = last ? base(pa1, pa2) : strict_base(pa1, pa2);
7619 pa1 = isl_multi_pw_aff_get_pw_aff(mpa1, i);
7620 pa2 = isl_multi_pw_aff_get_pw_aff(mpa2, i);
7632#define STRICT_ORDER lt
7638#define STRICT_ORDER lt
7644#define STRICT_ORDER gt
7650#define STRICT_ORDER gt
7681 return last1 - last2;
7683 return isl_seq_cmp(aff1->v->el, aff2->v->el, aff1->v->size);
7712 if (pa1->n != pa2->n)
7713 return pa1->n - pa2->n;
7715 for (i = 0; i < pa1->n; ++i) {
7792 if (!space ||
n < 0)
7795 space2 = isl_multi_val_get_space(mv);
7801 for (i = 0; i <
n; ++i) {
7805 v = isl_multi_val_get_val(mv, i);
7807 ma = isl_multi_aff_set_aff(
ma, i,
aff);
7811 isl_multi_val_free(mv);
7815 isl_multi_val_free(mv);
7881 mv = isl_multi_val_copy(data->
mv);
7904 isl_multi_val_free(
mv);
7954#define BASE pw_multi_aff
7976 pma1_space = isl_pw_multi_aff_peek_space(pma1);
7977 pma2_space = isl_pw_multi_aff_peek_space(pma2);
7990 pma2 = isl_pw_multi_aff_copy_tuple_id(pma2,
isl_dim_in,
7992 pma2 = isl_pw_multi_aff_copy_tuple_id(pma2,
isl_dim_out,
8016 pma1_space = isl_pw_multi_aff_peek_space(data->
pma);
8017 pma2_space = isl_pw_multi_aff_peek_space(pma2);
8083 "parameters don't match",
goto error);
8178 return isl_union_pw_aff_transform_inplace(upa, &
floor_entry, NULL);
8197 "expecting integer modulo",
goto error);
8200 "expecting positive modulo",
goto error);
8236 if (data->
pos >= n_out) {
8263 "cannot extract at negative position",
return NULL);
8374 pa_space = isl_pw_aff_peek_space(
pa);
8380 "expecting parametric expression",
goto error);
8385 if (equal_params >= 0 && !equal_params) {
8396 if (equal_params < 0)
8635 data.
res = isl_union_pw_aff_alloc_same_size(upa);
8649#define BASE union_pw_aff
8651#define DOMBASE union_set
8689 if (!isl_multi_union_pw_aff_has_explicit_domain(
mupa))
8692 if (is_params < 0 || !is_params)
8719 "expecting 0D space",
goto error);
8721 return isl_multi_union_pw_aff_alloc(space);
8766 mpa = isl_multi_pw_aff_free(mpa);
8770 space = isl_multi_pw_aff_get_space(mpa);
8772 mupa = isl_multi_union_pw_aff_alloc(space);
8774 for (i = 0; i <
n; ++i) {
8778 pa = isl_multi_pw_aff_get_pw_aff(mpa, i);
8780 mupa = isl_multi_union_pw_aff_restore_check_space(
mupa, i, upa);
8782 if (isl_multi_union_pw_aff_has_explicit_domain(
mupa)) {
8786 copy = isl_multi_pw_aff_copy(mpa);
8791 isl_multi_pw_aff_free(mpa);
8851 "cannot extract range space from empty input",
8863 mupa = isl_multi_union_pw_aff_alloc(space);
8865 for (i = 0; i <
n; ++i) {
8869 mupa = isl_multi_union_pw_aff_set_union_pw_aff(
mupa, i, upa);
8871 if (isl_multi_union_pw_aff_has_explicit_domain(
mupa)) {
8945 space = isl_multi_val_get_space(mv);
8946 mupa = isl_multi_union_pw_aff_alloc(space);
8947 for (i = 0; i <
n; ++i) {
8951 v = isl_multi_val_get_val(mv, i);
8954 mupa = isl_multi_union_pw_aff_set_union_pw_aff(
mupa, i, upa);
8956 if (isl_multi_union_pw_aff_has_explicit_domain(
mupa))
8961 isl_multi_val_free(mv);
8965 isl_multi_val_free(mv);
8980 if (equal_params < 0)
8986 isl_multi_val_get_space(mv));
8991 isl_multi_val_free(mv);
9028 mupa = isl_multi_union_pw_aff_alloc(space);
9029 for (i = 0; i <
n; ++i) {
9036 mupa = isl_multi_union_pw_aff_set_union_pw_aff(
mupa, i, upa);
9038 if (isl_multi_union_pw_aff_has_explicit_domain(
mupa))
9061 space = isl_pw_multi_aff_peek_space(
pma);
9063 if (equal_params < 0)
9095 mupa = isl_multi_union_pw_aff_free(
mupa);
9102 upa = isl_multi_union_pw_aff_get_union_pw_aff(
mupa, 0);
9105 for (i = 1; i <
n; ++i) {
9108 upa = isl_multi_union_pw_aff_get_union_pw_aff(
mupa, i);
9114 isl_multi_union_pw_aff_free(
mupa);
9133 space = isl_multi_union_pw_aff_get_space(
mupa);
9142 "cannot create union map from expression without "
9143 "explicit domain elements",
9168 mupa = isl_multi_union_pw_aff_free(
mupa);
9175 upa = isl_multi_union_pw_aff_get_union_pw_aff(
mupa, 0);
9178 for (i = 1; i <
n; ++i) {
9181 upa = isl_multi_union_pw_aff_get_union_pw_aff(
mupa, i);
9186 space = isl_multi_union_pw_aff_get_space(
mupa);
9189 isl_multi_union_pw_aff_free(
mupa);
9264 space = isl_multi_union_pw_aff_get_space(
mupa);
9265 mv = isl_multi_val_zero(space);
9289 mupa = isl_multi_union_pw_aff_free(
mupa);
9296 space = isl_multi_union_pw_aff_get_space(
mupa);
9297 upa = isl_multi_union_pw_aff_get_union_pw_aff(
mupa, 0);
9300 for (i = 1; i <
n; ++i) {
9303 upa = isl_multi_union_pw_aff_get_union_pw_aff(
mupa, i);
9310 isl_multi_union_pw_aff_free(
mupa);
9353 "space don't match",
goto error);
9358 isl_multi_union_pw_aff_copy(
mupa));
9365 isl_multi_union_pw_aff_free(
mupa);
9383 dom = isl_multi_union_pw_aff_get_explicit_domain(
mupa);
9384 isl_multi_union_pw_aff_free(
mupa);
9403 mupa = isl_multi_union_pw_aff_free(
mupa);
9410 upa = isl_multi_union_pw_aff_get_union_pw_aff(
mupa, 0);
9412 for (i = 1; i <
n; ++i) {
9415 upa = isl_multi_union_pw_aff_get_union_pw_aff(
mupa, i);
9420 isl_multi_union_pw_aff_free(
mupa);
9448 if (n_in < 0 || n_div < 0)
9458 for (i = 0; i < n_in; ++i) {
9464 upa_i = isl_multi_union_pw_aff_get_union_pw_aff(
mupa, i);
9469 for (i = 0; i < n_div; ++i) {
9477 isl_multi_union_pw_aff_copy(
mupa), div);
9484 isl_multi_union_pw_aff_free(
mupa);
9489 isl_multi_union_pw_aff_free(
mupa);
9509 mupa = isl_multi_union_pw_aff_align_params(
mupa,
9515 space1 = isl_multi_union_pw_aff_get_space(
mupa);
9524 "spaces don't match",
goto error);
9530 "cannot determine domains",
goto error);
9534 isl_multi_union_pw_aff_free(
mupa);
9551 ma = isl_multi_aff_project_domain_on_params(
ma);
9569 mupa = isl_multi_union_pw_aff_align_params(
mupa,
9570 isl_multi_aff_get_space(
ma));
9571 ma = isl_multi_aff_align_params(
ma,
9572 isl_multi_union_pw_aff_get_space(
mupa));
9575 if (!
mupa || n_in < 0 || n_out < 0)
9578 space1 = isl_multi_union_pw_aff_get_space(
mupa);
9579 space2 = isl_multi_aff_get_domain_space(
ma);
9587 "spaces don't match",
goto error);
9592 res = isl_multi_union_pw_aff_alloc(space1);
9594 for (i = 0; i < n_out; ++i) {
9598 aff = isl_multi_aff_get_aff(
ma, i);
9600 isl_multi_union_pw_aff_copy(
mupa),
aff);
9601 res = isl_multi_union_pw_aff_set_union_pw_aff(
res, i, upa);
9604 isl_multi_aff_free(
ma);
9605 isl_multi_union_pw_aff_free(
mupa);
9608 isl_multi_union_pw_aff_free(
mupa);
9609 isl_multi_aff_free(
ma);
9644 mupa = isl_multi_union_pw_aff_align_params(
mupa,
9647 isl_multi_union_pw_aff_get_space(
mupa));
9651 space = isl_multi_union_pw_aff_get_space(
mupa);
9660 "spaces don't match",
goto error);
9670 for (i = 0; i <
pa->n; ++i) {
9676 mupa_i = isl_multi_union_pw_aff_copy(
mupa);
9684 isl_multi_union_pw_aff_free(
mupa);
9688 isl_multi_union_pw_aff_free(
mupa);
9725 mupa = isl_multi_union_pw_aff_align_params(
mupa,
9728 isl_multi_union_pw_aff_get_space(
mupa));
9732 space1 = isl_multi_union_pw_aff_get_space(
mupa);
9741 "spaces don't match",
goto error);
9744 if (n_in < 0 || n_out < 0)
9750 res = isl_multi_union_pw_aff_alloc(space1);
9752 for (i = 0; i < n_out; ++i) {
9758 isl_multi_union_pw_aff_copy(
mupa),
pa);
9759 res = isl_multi_union_pw_aff_set_union_pw_aff(
res, i, upa);
9763 isl_multi_union_pw_aff_free(
mupa);
9766 isl_multi_union_pw_aff_free(
mupa);
9781 if (isl_multi_union_pw_aff_check_has_explicit_domain(
mupa) < 0)
9782 return isl_multi_union_pw_aff_free(
mupa);
9784 mupa = isl_multi_union_pw_aff_cow(
mupa);
9790 return isl_multi_union_pw_aff_free(
mupa);
9800 return isl_multi_union_pw_aff_free(
mupa);
9821 mupa = isl_multi_union_pw_aff_align_params(
mupa,
9824 isl_multi_union_pw_aff_get_space(
mupa));
9825 mupa = isl_multi_union_pw_aff_cow(
mupa);
9830 for (i = 0; i <
n; ++i) {
9833 upa = isl_multi_union_pw_aff_get_union_pw_aff(
mupa, i);
9836 mupa = isl_multi_union_pw_aff_set_union_pw_aff(
mupa, i, upa);
9839 if (isl_multi_union_pw_aff_has_explicit_domain(
mupa))
9845 isl_multi_union_pw_aff_free(
mupa);
9865 if (
n < 0 || !space)
9868 space_mpa = isl_multi_union_pw_aff_get_space(
mupa);
9872 mpa = isl_multi_pw_aff_alloc(space_mpa);
9876 for (i = 0; i <
n; ++i) {
9880 upa = isl_multi_union_pw_aff_get_union_pw_aff(
mupa, i);
9883 mpa = isl_multi_pw_aff_set_pw_aff(mpa, i,
pa);
9929 return control->
fn(
pma);
9945 struct isl_union_pw_multi_aff_transform_control t_control = {
9947 .filter_user = control,
9952 return isl_union_pw_multi_aff_transform(upma, &t_control);
__isl_give isl_pw_aff * isl_pw_aff_align_params(__isl_take isl_pw_aff *pwaff, __isl_take isl_space *model)
__isl_constructor __isl_give isl_pw_multi_aff * isl_pw_multi_aff_from_multi_aff(__isl_take isl_multi_aff *ma)
__isl_overload __isl_give isl_pw_multi_aff * isl_pw_multi_aff_pullback_pw_multi_aff(__isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2)
__isl_give isl_union_pw_aff * isl_union_pw_aff_align_params(__isl_take isl_union_pw_aff *upa, __isl_take isl_space *model)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_empty(__isl_take isl_space *space)
__isl_give isl_set * isl_multi_aff_lex_le_set(__isl_take isl_multi_aff *ma1, __isl_take isl_multi_aff *ma2)
__isl_export isl_bool isl_pw_aff_isa_aff(__isl_keep isl_pw_aff *pa)
__isl_export __isl_give isl_space * isl_pw_multi_aff_get_space(__isl_keep isl_pw_multi_aff *pma)
__isl_export __isl_give isl_set * isl_pw_aff_ne_set(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2)
__isl_null isl_aff * isl_aff_free(__isl_take isl_aff *aff)
__isl_null isl_union_pw_multi_aff * isl_union_pw_multi_aff_free(__isl_take isl_union_pw_multi_aff *upma)
__isl_export __isl_give isl_space * isl_union_pw_multi_aff_get_space(__isl_keep isl_union_pw_multi_aff *upma)
__isl_export __isl_give isl_multi_pw_aff * isl_multi_pw_aff_intersect_domain(__isl_take isl_multi_pw_aff *mpa, __isl_take isl_set *domain)
__isl_null isl_union_pw_aff * isl_union_pw_aff_free(__isl_take isl_union_pw_aff *upa)
__isl_overload __isl_give isl_pw_aff * isl_pw_aff_scale_val(__isl_take isl_pw_aff *pa, __isl_take isl_val *v)
__isl_export __isl_give isl_pw_multi_aff * isl_pw_multi_aff_range_factor_domain(__isl_take isl_pw_multi_aff *pma)
isl_ctx * isl_pw_aff_get_ctx(__isl_keep isl_pw_aff *pwaff)
__isl_export __isl_give isl_union_pw_aff * isl_union_pw_aff_union_add(__isl_take isl_union_pw_aff *upa1, __isl_take isl_union_pw_aff *upa2)
__isl_export __isl_give isl_set * isl_pw_aff_eq_set(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_align_params(__isl_take isl_pw_multi_aff *pma, __isl_take isl_space *model)
isl_ctx * isl_pw_multi_aff_get_ctx(__isl_keep isl_pw_multi_aff *pma)
__isl_give isl_union_pw_aff * isl_union_pw_aff_scale_down_val(__isl_take isl_union_pw_aff *upa, __isl_take isl_val *v)
isl_stat isl_union_pw_aff_foreach_pw_aff(__isl_keep isl_union_pw_aff *upa, isl_stat(*fn)(__isl_take isl_pw_aff *pa, void *user), void *user)
__isl_constructor __isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_from_pw_multi_aff(__isl_take isl_pw_multi_aff *pma)
__isl_give isl_pw_aff * isl_union_pw_aff_extract_pw_aff(__isl_keep isl_union_pw_aff *upa, __isl_take isl_space *space)
__isl_export isl_bool isl_pw_aff_plain_is_equal(__isl_keep isl_pw_aff *pwaff1, __isl_keep isl_pw_aff *pwaff2)
__isl_give isl_set * isl_multi_aff_lex_ge_set(__isl_take isl_multi_aff *ma1, __isl_take isl_multi_aff *ma2)
__isl_overload __isl_give isl_pw_aff * isl_pw_aff_pullback_pw_multi_aff(__isl_take isl_pw_aff *pa, __isl_take isl_pw_multi_aff *pma)
isl_size isl_pw_aff_dim(__isl_keep isl_pw_aff *pwaff, enum isl_dim_type type)
__isl_export __isl_give isl_set * isl_aff_le_set(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
isl_bool isl_pw_aff_is_cst(__isl_keep isl_pw_aff *pwaff)
__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_space * isl_union_pw_aff_get_space(__isl_keep isl_union_pw_aff *upa)
__isl_give isl_pw_aff * isl_pw_aff_alloc(__isl_take isl_set *set, __isl_take isl_aff *aff)
__isl_export isl_size isl_pw_multi_aff_n_piece(__isl_keep isl_pw_multi_aff *pma)
__isl_export __isl_give isl_aff * isl_pw_aff_as_aff(__isl_take isl_pw_aff *pa)
__isl_export __isl_give isl_union_pw_aff * isl_union_pw_aff_sub(__isl_take isl_union_pw_aff *upa1, __isl_take isl_union_pw_aff *upa2)
__isl_export __isl_give isl_pw_aff * isl_pw_aff_intersect_domain(__isl_take isl_pw_aff *pa, __isl_take isl_set *set)
__isl_give isl_union_map * isl_union_map_from_union_pw_aff(__isl_take isl_union_pw_aff *upa)
__isl_give isl_pw_aff * isl_pw_aff_empty(__isl_take isl_space *space)
__isl_give isl_map * isl_multi_pw_aff_eq_map(__isl_take isl_multi_pw_aff *mpa1, __isl_take isl_multi_pw_aff *mpa2)
__isl_null isl_pw_aff * isl_pw_aff_free(__isl_take isl_pw_aff *pwaff)
__isl_export __isl_give isl_multi_aff * isl_multi_aff_gist(__isl_take isl_multi_aff *maff, __isl_take isl_set *context)
__isl_export __isl_give isl_space * isl_pw_aff_get_space(__isl_keep isl_pw_aff *pwaff)
__isl_export __isl_give isl_pw_aff * isl_pw_aff_neg(__isl_take isl_pw_aff *pwaff)
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_align_params(__isl_take isl_union_pw_multi_aff *upma, __isl_take isl_space *model)
isl_stat isl_union_pw_multi_aff_foreach_pw_multi_aff(__isl_keep isl_union_pw_multi_aff *upma, isl_stat(*fn)(__isl_take isl_pw_multi_aff *pma, void *user), void *user)
__isl_give isl_pw_aff * isl_pw_aff_add_dims(__isl_take isl_pw_aff *pwaff, enum isl_dim_type type, unsigned n)
isl_bool isl_pw_multi_aff_involves_nan(__isl_keep isl_pw_multi_aff *pma)
__isl_give isl_aff * isl_aff_copy(__isl_keep isl_aff *aff)
__isl_export __isl_give isl_set * isl_pw_aff_gt_set(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2)
isl_size isl_pw_multi_aff_dim(__isl_keep isl_pw_multi_aff *pma, enum isl_dim_type type)
__isl_constructor __isl_give isl_multi_pw_aff * isl_multi_pw_aff_from_pw_aff(__isl_take isl_pw_aff *pa)
__isl_export __isl_give isl_union_set * isl_union_pw_multi_aff_domain(__isl_take isl_union_pw_multi_aff *upma)
__isl_export __isl_give isl_aff * isl_aff_div(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
__isl_export __isl_give isl_aff * isl_aff_floor(__isl_take isl_aff *aff)
__isl_export __isl_give isl_pw_aff * isl_pw_aff_sub(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2)
__isl_give isl_space * isl_pw_multi_aff_get_domain_space(__isl_keep isl_pw_multi_aff *pma)
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_copy(__isl_keep isl_union_pw_multi_aff *upma)
__isl_export __isl_give isl_set * isl_aff_ge_set(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
isl_ctx * isl_union_pw_multi_aff_get_ctx(__isl_keep isl_union_pw_multi_aff *upma)
__isl_give isl_pw_aff * isl_pw_aff_project_domain_on_params(__isl_take isl_pw_aff *pa)
__isl_constructor __isl_give isl_pw_aff * isl_pw_aff_from_aff(__isl_take isl_aff *aff)
isl_bool isl_pw_aff_involves_nan(__isl_keep isl_pw_aff *pa)
isl_size isl_union_pw_multi_aff_n_pw_multi_aff(__isl_keep isl_union_pw_multi_aff *upma)
__isl_give isl_union_pw_aff * isl_union_pw_aff_copy(__isl_keep isl_union_pw_aff *upa)
__isl_export __isl_give isl_union_pw_aff * isl_union_pw_aff_add(__isl_take isl_union_pw_aff *upa1, __isl_take isl_union_pw_aff *upa2)
__isl_constructor __isl_give isl_multi_aff * isl_multi_aff_from_aff(__isl_take isl_aff *aff)
__isl_export __isl_give isl_set * isl_aff_gt_set(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
__isl_export isl_bool isl_pw_multi_aff_plain_is_equal(__isl_keep isl_pw_multi_aff *pma1, __isl_keep isl_pw_multi_aff *pma2)
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_empty(__isl_take isl_space *space)
__isl_export __isl_give isl_pw_multi_aff * isl_pw_multi_aff_flat_range_product(__isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2)
__isl_give isl_space * isl_pw_aff_get_domain_space(__isl_keep isl_pw_aff *pwaff)
__isl_give isl_pw_aff * isl_pw_aff_from_range(__isl_take isl_pw_aff *pwa)
__isl_constructor __isl_give isl_union_pw_aff * isl_union_pw_aff_from_pw_aff(__isl_take isl_pw_aff *pa)
__isl_export __isl_give isl_union_set * isl_union_pw_aff_domain(__isl_take isl_union_pw_aff *upa)
__isl_export __isl_give isl_aff * isl_aff_add(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_add_pw_multi_aff(__isl_take isl_union_pw_multi_aff *upma, __isl_take isl_pw_multi_aff *pma)
__isl_give isl_union_pw_aff * isl_union_pw_aff_scale_val(__isl_take isl_union_pw_aff *upa, __isl_take isl_val *v)
__isl_export __isl_give isl_set * isl_pw_aff_lt_set(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2)
__isl_export __isl_give isl_set * isl_aff_eq_set(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
__isl_null isl_pw_multi_aff * isl_pw_multi_aff_free(__isl_take isl_pw_multi_aff *pma)
__isl_overload __isl_give isl_pw_multi_aff * isl_pw_multi_aff_pullback_multi_aff(__isl_take isl_pw_multi_aff *pma, __isl_take isl_multi_aff *ma)
__isl_export __isl_give isl_aff * isl_aff_ceil(__isl_take isl_aff *aff)
__isl_export __isl_give isl_set * isl_pw_multi_aff_domain(__isl_take isl_pw_multi_aff *pma)
__isl_export __isl_give isl_set * isl_pw_aff_le_set(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2)
__isl_export __isl_give isl_multi_union_pw_aff * isl_multi_union_pw_aff_intersect_params(__isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_set *params)
__isl_export __isl_give isl_pw_multi_aff * isl_pw_multi_aff_range_factor_range(__isl_take isl_pw_multi_aff *pma)
__isl_export __isl_give isl_multi_union_pw_aff * isl_multi_union_pw_aff_intersect_domain(__isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_union_set *uset)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_copy(__isl_keep isl_pw_multi_aff *pma)
__isl_export __isl_give isl_set * isl_multi_pw_aff_domain(__isl_take isl_multi_pw_aff *mpa)
__isl_export __isl_give isl_set * isl_pw_aff_domain(__isl_take isl_pw_aff *pwaff)
__isl_export __isl_give isl_multi_aff * isl_multi_aff_floor(__isl_take isl_multi_aff *ma)
__isl_give isl_union_pw_aff * isl_union_pw_aff_empty(__isl_take isl_space *space)
__isl_export __isl_give isl_aff * isl_aff_mul(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
__isl_export __isl_give isl_pw_multi_aff * isl_pw_multi_aff_range_product(__isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2)
__isl_give isl_pw_aff * isl_pw_aff_copy(__isl_keep isl_pw_aff *pwaff)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_project_domain_on_params(__isl_take isl_pw_multi_aff *pma)
__isl_export __isl_give isl_set * isl_pw_aff_ge_set(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_alloc(__isl_take isl_set *set, __isl_take isl_multi_aff *maff)
__isl_give isl_union_pw_aff * isl_union_pw_aff_add_pw_aff(__isl_take isl_union_pw_aff *upa, __isl_take isl_pw_aff *pa)
struct isl_union_pw_multi_aff isl_union_pw_multi_aff
struct isl_union_pw_aff isl_union_pw_aff
struct isl_multi_aff isl_multi_aff
struct isl_multi_pw_aff isl_multi_pw_aff
struct isl_multi_union_pw_aff isl_multi_union_pw_aff
__isl_give isl_constraint * isl_inequality_from_aff(__isl_take isl_aff *aff)
__isl_give isl_constraint * isl_constraint_set_constant_val(__isl_take isl_constraint *constraint, __isl_take isl_val *v)
__isl_give isl_constraint * isl_equality_from_aff(__isl_take isl_aff *aff)
__isl_give isl_val * isl_constraint_get_constant_val(__isl_keep isl_constraint *constraint)
__isl_give isl_basic_set * isl_basic_set_from_constraint(__isl_take isl_constraint *constraint)
isl_stat isl_stat_non_null(void *obj)
#define isl_calloc_type(ctx, type)
#define isl_die(ctx, errno, msg, code)
isl_bool isl_bool_ok(int b)
#define isl_alloc_array(ctx, type, n)
isl_bool isl_bool_not(isl_bool b)
#define isl_hash_hash(h, h2)
__isl_export __isl_give ISL_HMAP __isl_take ISL_KEY __isl_take ISL_VAL * val
isl_stat isl_stat(* fn)(__isl_take ISL_KEY *key, __isl_take ISL_VAL *val, void *user)
isl_stat isl_stat void * user
__isl_null isl_id * isl_id_free(__isl_take isl_id *id)
__isl_give isl_id * isl_id_copy(isl_id *id)
int GMPQAPI cmp(mp_rat op1, mp_rat op2)
void GMPZAPI neg(mp_int rop, mp_int op)
void GMPZAPI gcd(mp_int rop, mp_int op1, mp_int op2)
void GMPZAPI sub(mp_int rop, mp_int op1, mp_int op2)
__isl_give isl_pw_aff * isl_pw_aff_scale_down(__isl_take isl_pw_aff *pwaff, isl_int v)
static __isl_give isl_map * isl_multi_pw_aff_eq_map_on_space(__isl_keep isl_multi_pw_aff *mpa1, __isl_keep isl_multi_pw_aff *mpa2, __isl_take isl_space *space)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_identity_on_domain_space(__isl_take isl_space *space)
__isl_give isl_aff * isl_aff_add_constant_si(__isl_take isl_aff *aff, int v)
__isl_give isl_set * isl_pw_aff_list_gt_set(__isl_take isl_pw_aff_list *list1, __isl_take isl_pw_aff_list *list2)
__isl_give isl_pw_aff * isl_pw_aff_union_opt(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2, int max)
__isl_give isl_aff * isl_aff_substitute_equalities(__isl_take isl_aff *aff, __isl_take isl_basic_set *eq)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_set_pw_aff(__isl_take isl_pw_multi_aff *pma, unsigned pos, __isl_take isl_pw_aff *pa)
__isl_give isl_aff * isl_aff_scale(__isl_take isl_aff *aff, isl_int f)
static isl_stat get_union_pw_aff(__isl_take isl_pw_multi_aff *pma, void *user)
static __isl_give isl_aff * isl_aff_zero_in_space(__isl_take isl_space *space)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_add(__isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2)
static __isl_give isl_basic_set * aff_nonneg_basic_set(__isl_take isl_aff *aff, int rational, void *user)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_product(__isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2)
__isl_give isl_set * isl_pw_aff_list_eq_set(__isl_take isl_pw_aff_list *list1, __isl_take isl_pw_aff_list *list2)
__isl_give isl_pw_aff * isl_pw_aff_pullback_multi_pw_aff(__isl_take isl_pw_aff *pa, __isl_take isl_multi_pw_aff *mpa)
__isl_give isl_union_set * isl_multi_union_pw_aff_zero_union_set(__isl_take isl_multi_union_pw_aff *mupa)
isl_ctx * isl_aff_get_ctx(__isl_keep isl_aff *aff)
__isl_give isl_multi_aff * isl_multi_aff_range_map(__isl_take isl_space *space)
__isl_give isl_pw_aff * isl_pw_aff_var_on_domain(__isl_take isl_local_space *ls, enum isl_dim_type type, unsigned pos)
__isl_give isl_aff * isl_aff_align_params(__isl_take isl_aff *aff, __isl_take isl_space *model)
isl_bool isl_pw_aff_is_equal(__isl_keep isl_pw_aff *pa1, __isl_keep isl_pw_aff *pa2)
static isl_bool isl_aff_domain_is_product(__isl_keep isl_aff *aff)
static __isl_give isl_basic_set * isl_multi_aff_domain(__isl_take isl_multi_aff *ma)
__isl_give isl_set * isl_multi_aff_lex_le_set(__isl_take isl_multi_aff *ma1, __isl_take isl_multi_aff *ma2)
__isl_give isl_pw_aff * isl_pw_aff_set_rational(__isl_take isl_pw_aff *pwaff)
__isl_give isl_aff * isl_aff_pullback_aff(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
__isl_give isl_pw_aff * isl_multi_pw_aff_apply_aff(__isl_take isl_multi_pw_aff *mpa, __isl_take isl_aff *aff)
static __isl_give isl_aff * swap_div(__isl_take isl_aff *aff, int a, int b)
static __isl_give isl_pw_aff * nan_on_domain_set(__isl_take isl_set *dom)
static __isl_give isl_aff * subtract_initial(__isl_take isl_aff *aff, __isl_keep isl_multi_aff *ma, int n, isl_int *c, isl_int denom)
__isl_give isl_aff * isl_aff_project_domain_on_params(__isl_take isl_aff *aff)
__isl_null isl_aff * isl_aff_free(__isl_take isl_aff *aff)
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_flat_range_product(__isl_take isl_union_pw_multi_aff *upma1, __isl_take isl_union_pw_multi_aff *upma2)
__isl_give isl_pw_multi_aff * isl_space_range_map_pw_multi_aff(__isl_take isl_space *space)
__isl_give isl_aff * isl_aff_from_range(__isl_take isl_aff *aff)
__isl_give isl_map * isl_pw_aff_le_map(__isl_take isl_pw_aff *pa1, __isl_take isl_pw_aff *pa2)
__isl_give isl_set * isl_pw_aff_ne_set(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2)
__isl_give isl_aff * isl_aff_move_dims(__isl_take isl_aff *aff, enum isl_dim_type dst_type, unsigned dst_pos, enum isl_dim_type src_type, unsigned src_pos, unsigned n)
__isl_give isl_aff * isl_aff_gist_params(__isl_take isl_aff *aff, __isl_take isl_set *context)
static __isl_give isl_pw_aff * isl_pw_aff_list_opt(__isl_take isl_pw_aff_list *list, int max)
static __isl_give isl_union_pw_aff * isl_union_pw_aff_pw_aff_on_domain_aligned(__isl_take isl_union_set *domain, __isl_take isl_pw_aff *pa)
__isl_give isl_pw_aff * isl_pw_aff_val_on_domain(__isl_take isl_set *domain, __isl_take isl_val *v)
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_range_product(__isl_take isl_union_pw_multi_aff *upma1, __isl_take isl_union_pw_multi_aff *upma2)
static __isl_give isl_pw_multi_aff * isl_union_pw_multi_aff_un_op_drop_user(__isl_take isl_pw_multi_aff *pma, void *user)
isl_size isl_aff_domain_dim(__isl_keep isl_aff *aff, enum isl_dim_type type)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_zero(__isl_take isl_space *space)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_scale_multi_val(__isl_take isl_pw_multi_aff *pma, __isl_take isl_multi_val *mv)
static __isl_give isl_pw_multi_aff * pw_multi_aff_from_map_base(__isl_take isl_map *map)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_substitute(__isl_take isl_pw_multi_aff *pma, unsigned pos, __isl_keep isl_pw_aff *subs)
static __isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_reset_range_space(__isl_take isl_union_pw_multi_aff *upma, __isl_take isl_space *space)
static __isl_give isl_pw_aff * replace_list_by_nan(__isl_take isl_pw_aff_list *list, int n)
__isl_give isl_aff * isl_aff_scale_val(__isl_take isl_aff *aff, __isl_take isl_val *v)
__isl_give isl_map * isl_pw_aff_gt_map(__isl_take isl_pw_aff *pa1, __isl_take isl_pw_aff *pa2)
__isl_give isl_pw_multi_aff * isl_multi_aff_to_pw_multi_aff(__isl_take isl_multi_aff *ma)
static isl_stat pw_multi_aff_from_pw_aff_entry(__isl_take isl_pw_aff *pa, void *user)
static __isl_give isl_basic_set * aff_pos_basic_set(__isl_take isl_aff *aff, int rational, void *user)
int isl_pw_aff_plain_cmp(__isl_keep isl_pw_aff *pa1, __isl_keep isl_pw_aff *pa2)
__isl_give isl_aff * isl_aff_drop_dims(__isl_take isl_aff *aff, enum isl_dim_type type, unsigned first, unsigned n)
isl_bool isl_aff_involves_locals(__isl_keep isl_aff *aff)
__isl_give isl_basic_set * isl_aff_bind_id(__isl_take isl_aff *aff, __isl_take isl_id *id)
__isl_give isl_aff * isl_aff_add(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
isl_stat isl_seq_preimage(isl_int *dst, isl_int *src, __isl_keep isl_multi_aff *ma, int n_before, int n_after, int n_div_ma, int n_div_bmap, isl_int f, isl_int c1, isl_int c2, isl_int g, int has_denom)
__isl_give isl_aff * isl_aff_insert_dims(__isl_take isl_aff *aff, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_local_space * isl_aff_get_domain_local_space(__isl_keep isl_aff *aff)
__isl_give isl_aff * isl_aff_val_on_domain_space(__isl_take isl_space *space, __isl_take isl_val *val)
static __isl_give isl_union_pw_aff * isl_union_pw_aff_reset_domain_space(__isl_take isl_union_pw_aff *upa, __isl_take isl_space *space)
__isl_give isl_aff * isl_aff_cow(__isl_take isl_aff *aff)
__isl_give isl_pw_multi_aff * isl_set_pw_multi_aff_on_domain_multi_val(__isl_take isl_set *domain, __isl_take isl_multi_val *mv)
static __isl_give isl_aff * add_expanded(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
static __isl_give isl_multi_union_pw_aff * mupa_intersect_range_0D(__isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_set *range)
__isl_give isl_aff * isl_aff_nan_on_domain_space(__isl_take isl_space *space)
__isl_give isl_multi_union_pw_aff * isl_union_pw_multi_aff_as_multi_union_pw_aff(__isl_take isl_union_pw_multi_aff *upma)
__isl_give isl_pw_aff * isl_pw_aff_list_min(__isl_take isl_pw_aff_list *list)
static __isl_give isl_multi_union_pw_aff * mupa_apply_pw_multi_aff_0D(__isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_pw_multi_aff *pma)
__isl_give isl_union_set * isl_union_pw_aff_zero_union_set(__isl_take isl_union_pw_aff *upa)
__isl_give isl_pw_aff * isl_pw_aff_mul(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2)
static __isl_give isl_pw_aff * pw_aff_min(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2)
__isl_give isl_pw_aff * isl_pw_aff_union_min(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2)
isl_bool isl_pw_multi_aff_is_equal(__isl_keep isl_pw_multi_aff *pma1, __isl_keep isl_pw_multi_aff *pma2)
__isl_give isl_pw_aff * isl_pw_aff_floor(__isl_take isl_pw_aff *pwaff)
__isl_give isl_map * isl_pw_aff_ge_map(__isl_take isl_pw_aff *pa1, __isl_take isl_pw_aff *pa2)
__isl_give isl_aff * isl_aff_nan_on_domain(__isl_take isl_local_space *ls)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_range_product(__isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2)
__isl_give isl_set * isl_pw_aff_gt_set(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2)
__isl_give isl_pw_aff * isl_pw_aff_min(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2)
__isl_give isl_union_pw_aff * isl_union_pw_multi_aff_get_union_pw_aff(__isl_keep isl_union_pw_multi_aff *upma, int pos)
__isl_give isl_aff * isl_aff_val_on_domain(__isl_take isl_local_space *ls, __isl_take isl_val *val)
int isl_aff_plain_cmp(__isl_keep isl_aff *aff1, __isl_keep isl_aff *aff2)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_from_domain(__isl_take isl_set *set)
__isl_give isl_union_pw_aff * isl_union_pw_aff_mod_val(__isl_take isl_union_pw_aff *upa, __isl_take isl_val *m)
__isl_give isl_union_pw_aff * isl_union_pw_aff_pw_aff_on_domain(__isl_take isl_union_set *domain, __isl_take isl_pw_aff *pa)
__isl_give isl_union_pw_aff * isl_union_pw_aff_floor(__isl_take isl_union_pw_aff *upa)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_range_factor_domain(__isl_take isl_pw_multi_aff *pma)
isl_bool isl_aff_plain_is_equal(__isl_keep isl_aff *aff1, __isl_keep isl_aff *aff2)
static __isl_give isl_pw_aff * floor_entry(__isl_take isl_pw_aff *pa, void *user)
__isl_give isl_aff * isl_aff_lift(__isl_take isl_aff *aff)
__isl_give isl_multi_pw_aff * isl_map_max_multi_pw_aff(__isl_take isl_map *map)
int isl_aff_find_dim_by_name(__isl_keep isl_aff *aff, enum isl_dim_type type, const char *name)
__isl_give isl_aff * isl_aff_mod_val(__isl_take isl_aff *aff, __isl_take isl_val *m)
__isl_give isl_multi_union_pw_aff * isl_multi_union_pw_aff_pullback_union_pw_multi_aff(__isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_union_pw_multi_aff *upma)
static __isl_give isl_val * eval_void(__isl_take isl_aff *aff, __isl_take isl_point *pnt)
__isl_give isl_aff * isl_aff_align_divs(__isl_take isl_aff *dst, __isl_keep isl_aff *src)
__isl_give isl_set * isl_multi_aff_lex_ge_set(__isl_take isl_multi_aff *ma1, __isl_take isl_multi_aff *ma2)
static __isl_give isl_union_map * isl_union_map_from_multi_union_pw_aff_0D(__isl_take isl_multi_union_pw_aff *mupa)
__isl_give isl_pw_aff * isl_pw_aff_ceil(__isl_take isl_pw_aff *pwaff)
__isl_give isl_aff * isl_space_param_aff_on_domain_id(__isl_take isl_space *space, __isl_take isl_id *id)
__isl_give isl_pw_aff * isl_pw_aff_list_max(__isl_take isl_pw_aff_list *list)
__isl_give isl_set * isl_pw_aff_list_ge_set(__isl_take isl_pw_aff_list *list1, __isl_take isl_pw_aff_list *list2)
__isl_give isl_aff * isl_aff_set_constant_si(__isl_take isl_aff *aff, int v)
static isl_stat flat_range_product_entry(__isl_take isl_pw_multi_aff *pma2, void *user)
__isl_give isl_pw_aff * isl_pw_aff_param_on_domain_id(__isl_take isl_set *domain, __isl_take isl_id *id)
__isl_give isl_union_set * isl_union_pw_aff_bind_id(__isl_take isl_union_pw_aff *upa, __isl_take isl_id *id)
__isl_give isl_aff * isl_aff_ceil(__isl_take isl_aff *aff)
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_range_factor_domain(__isl_take isl_union_pw_multi_aff *upma)
static isl_bool isl_aff_involves_dims(__isl_keep isl_aff *aff, enum isl_dim_type type, unsigned first, unsigned n)
__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_add_constant_num(__isl_take isl_aff *aff, isl_int v)
__isl_give isl_val * isl_aff_get_constant_val(__isl_keep isl_aff *aff)
__isl_give isl_pw_aff * isl_multi_pw_aff_apply_pw_aff(__isl_take isl_multi_pw_aff *mpa, __isl_take isl_pw_aff *pa)
static __isl_give isl_pw_multi_aff * pw_multi_aff_from_map_check_div_mod(__isl_take isl_map *map)
__isl_give isl_set * isl_aff_ne_set(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
__isl_give isl_basic_set * isl_aff_zero_basic_set(__isl_take isl_aff *aff)
isl_bool isl_pw_aff_is_cst(__isl_keep isl_pw_aff *pwaff)
__isl_give isl_aff * isl_aff_var_on_domain(__isl_take isl_local_space *ls, enum isl_dim_type type, unsigned pos)
static __isl_give isl_union_pw_aff * isl_multi_union_pw_aff_apply_pw_aff_0D(__isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_pw_aff *pa)
static __isl_give isl_map * isl_multi_pw_aff_lex_map_on_space(__isl_keep isl_multi_pw_aff *mpa1, __isl_keep isl_multi_pw_aff *mpa2, __isl_give isl_map *(*strict_base)(__isl_take isl_pw_aff *pa1, __isl_take isl_pw_aff *pa2), __isl_give isl_map *(*base)(__isl_take isl_pw_aff *pa1, __isl_take isl_pw_aff *pa2), __isl_take isl_space *space)
__isl_give isl_pw_aff * isl_pw_aff_max(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2)
static __isl_give isl_pw_aff * isl_multi_pw_aff_apply_pw_aff_aligned(__isl_take isl_multi_pw_aff *mpa, __isl_take isl_pw_aff *pa)
static isl_bool isl_pw_aff_domain_is_product(__isl_keep isl_pw_aff *pa)
__isl_give isl_set * isl_aff_le_set(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
__isl_give isl_multi_union_pw_aff * isl_multi_aff_to_multi_union_pw_aff(__isl_take isl_multi_aff *ma)
__isl_give isl_aff * isl_aff_normalize(__isl_take isl_aff *aff)
static __isl_keep isl_space * isl_aff_peek_domain_space(__isl_keep isl_aff *aff)
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_multi_val_on_domain(__isl_take isl_union_set *domain, __isl_take isl_multi_val *mv)
static __isl_give isl_map * isl_map_order_at_multi_pw_aff(__isl_take isl_map *map, __isl_take isl_multi_pw_aff *mpa, __isl_give isl_map *(*order)(__isl_take isl_multi_pw_aff *mpa1, __isl_take isl_multi_pw_aff *mpa2))
__isl_give isl_set * isl_aff_ge_set(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
static __isl_give isl_union_pw_aff * multi_union_pw_aff_apply_aff(__isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_aff *aff)
static __isl_give isl_multi_union_pw_aff * isl_multi_union_pw_aff_multi_val_on_domain_aligned(__isl_take isl_union_set *domain, __isl_take isl_multi_val *mv)
static __isl_give isl_set * pw_aff_gte_set(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2, int strict, int equal)
__isl_give isl_union_pw_aff * isl_multi_union_pw_aff_apply_pw_aff(__isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_pw_aff *pa)
static isl_stat upa_pb_upma(__isl_take isl_pw_aff *pa, void *user)
__isl_give isl_set * isl_multi_aff_lex_gt_set(__isl_take isl_multi_aff *ma1, __isl_take isl_multi_aff *ma2)
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_preimage_domain_wrapped_domain_union_pw_multi_aff(__isl_take isl_union_pw_multi_aff *upma1, __isl_take isl_union_pw_multi_aff *upma2)
__isl_give isl_set * isl_aff_eq_set(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
static __isl_give isl_basic_set * aff_zero_basic_set(__isl_take isl_aff *aff, int rational, void *user)
static __isl_keep isl_local_space * isl_aff_peek_domain_local_space(__isl_keep isl_aff *aff)
__isl_give isl_pw_aff * isl_pw_aff_add(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2)
__isl_give isl_aff * isl_aff_neg(__isl_take isl_aff *aff)
static __isl_give isl_set * isl_multi_aff_order_at(__isl_keep isl_multi_aff *ma1, __isl_keep isl_multi_aff *ma2, int i, __isl_give isl_set *(*cmp)(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2))
static __isl_give isl_multi_union_pw_aff * mupa_apply_multi_aff_0D(__isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_multi_aff *ma)
__isl_give isl_pw_aff_list * isl_pw_aff_list_set_rational(__isl_take isl_pw_aff_list *list)
__isl_give isl_val * isl_aff_get_denominator_val(__isl_keep isl_aff *aff)
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_scale_multi_val(__isl_take isl_union_pw_multi_aff *upma, __isl_take isl_multi_val *mv)
__isl_give isl_pw_aff * isl_pw_aff_union_max(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2)
__isl_give isl_aff * isl_aff_add_on_domain(__isl_keep isl_set *dom, __isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
static isl_stat gen_range_product_entry(__isl_take isl_pw_multi_aff *pma2, __isl_give isl_pw_multi_aff *(*range_product)(__isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2), void *user)
isl_bool isl_aff_plain_is_zero(__isl_keep isl_aff *aff)
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_range_factor_range(__isl_take isl_union_pw_multi_aff *upma)
__isl_give isl_pw_aff * isl_set_param_pw_aff_on_domain_id(__isl_take isl_set *domain, __isl_take isl_id *id)
__isl_give isl_set * isl_pw_aff_list_ne_set(__isl_take isl_pw_aff_list *list1, __isl_take isl_pw_aff_list *list2)
static __isl_give isl_pw_aff * isl_pw_multi_aff_get_at(__isl_keep isl_pw_multi_aff *pma, int pos)
static __isl_give isl_pw_multi_aff * pw_multi_aff_set_pw_aff(__isl_take isl_pw_multi_aff *pma, unsigned pos, __isl_take isl_pw_aff *pa)
__isl_give isl_aff * isl_aff_set_dim_id(__isl_take isl_aff *aff, enum isl_dim_type type, unsigned pos, __isl_take isl_id *id)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_from_pw_aff(__isl_take isl_pw_aff *pa)
__isl_give isl_aff * isl_aff_sub(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_range_factor_range(__isl_take isl_pw_multi_aff *pma)
static isl_bool isl_pw_multi_aff_range_is_wrapping(__isl_keep isl_pw_multi_aff *pma)
__isl_give isl_pw_multi_aff * isl_set_as_pw_multi_aff(__isl_take isl_set *set)
__isl_give isl_aff * isl_aff_restore_domain_local_space(__isl_keep isl_aff *aff, __isl_take isl_local_space *ls)
__isl_give isl_aff * isl_aff_param_on_domain_space_id(__isl_take isl_space *space, __isl_take isl_id *id)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_union_lexmax(__isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2)
__isl_give isl_multi_val * isl_multi_aff_get_constant_multi_val(__isl_keep isl_multi_aff *ma)
__isl_give isl_set * isl_aff_lt_set(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
__isl_give isl_pw_aff * isl_pw_aff_tdiv_q(__isl_take isl_pw_aff *pa1, __isl_take isl_pw_aff *pa2)
isl_bool isl_multi_pw_aff_has_non_trivial_domain(__isl_keep isl_multi_pw_aff *mpa)
__isl_give isl_multi_pw_aff * isl_multi_union_pw_aff_extract_multi_pw_aff(__isl_keep isl_multi_union_pw_aff *mupa, __isl_take isl_space *space)
__isl_give isl_aff * isl_aff_expand_divs(__isl_take isl_aff *aff, __isl_take isl_mat *div, int *exp)
__isl_give isl_multi_aff * isl_aff_as_domain_extension(__isl_take isl_aff *aff)
static isl_size isl_aff_domain_var_offset(__isl_keep isl_aff *aff, enum isl_dim_type type)
__isl_give isl_aff * isl_aff_set_coefficient_si(__isl_take isl_aff *aff, enum isl_dim_type type, int pos, int v)
__isl_give isl_aff * isl_space_zero_aff_on_domain(__isl_take isl_space *space)
__isl_give isl_multi_aff * isl_multi_aff_pullback_multi_aff(__isl_take isl_multi_aff *ma1, __isl_take isl_multi_aff *ma2)
static __isl_give isl_aff * extract_isl_aff_from_basic_map(__isl_keep isl_basic_map *bmap, int pos, __isl_keep isl_multi_aff *ma)
__isl_give isl_aff * isl_aff_reset_space_and_domain(__isl_take isl_aff *aff, __isl_take isl_space *space, __isl_take isl_space *domain)
isl_bool isl_multi_pw_aff_isa_multi_aff(__isl_keep isl_multi_pw_aff *mpa)
__isl_give isl_aff * isl_aff_add_coefficient(__isl_take isl_aff *aff, enum isl_dim_type type, int pos, isl_int v)
__isl_give isl_aff * isl_aff_scale_down(__isl_take isl_aff *aff, isl_int f)
static __isl_give isl_aff * set_nan_free(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
__isl_give isl_aff * isl_aff_set_constant(__isl_take isl_aff *aff, isl_int v)
__isl_give isl_union_pw_aff * isl_union_pw_aff_param_on_domain_id(__isl_take isl_union_set *domain, __isl_take isl_id *id)
static __isl_give isl_vec * isl_aff_get_rat_aff(__isl_keep isl_aff *aff)
static __isl_give isl_aff * isl_aff_restore_rat_aff(__isl_keep isl_aff *aff, __isl_take isl_vec *v)
static __isl_give isl_pw_multi_aff * isl_pw_multi_aff_op_multi_val(__isl_take isl_pw_multi_aff *pma, __isl_take isl_multi_val *mv, __isl_give isl_multi_aff *(*fn)(__isl_take isl_multi_aff *ma, __isl_take isl_multi_val *mv))
__isl_give isl_multi_union_pw_aff * isl_multi_union_pw_aff_from_union_map(__isl_take isl_union_map *umap)
__isl_give isl_set * isl_pw_aff_lt_set(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_scale_down_multi_val(__isl_take isl_pw_multi_aff *pma, __isl_take isl_multi_val *mv)
static __isl_give isl_vec * isl_aff_take_rat_aff(__isl_keep isl_aff *aff)
__isl_give isl_basic_set * isl_aff_eq_basic_set(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
isl_bool isl_multi_union_pw_aff_has_non_trivial_domain(__isl_keep isl_multi_union_pw_aff *mupa)
static isl_stat bin_entry(__isl_take isl_pw_multi_aff *pma, void *user)
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_from_union_set(__isl_take isl_union_set *uset)
__isl_give isl_pw_aff * isl_pw_aff_nan_on_domain_space(__isl_take isl_space *space)
__isl_give isl_map * isl_multi_pw_aff_eq_map(__isl_take isl_multi_pw_aff *mpa1, __isl_take isl_multi_pw_aff *mpa2)
__isl_give isl_multi_aff * isl_multi_aff_align_divs(__isl_take isl_multi_aff *maff)
__isl_give isl_union_pw_aff * isl_union_pw_aff_pullback_union_pw_multi_aff(__isl_take isl_union_pw_aff *upa, __isl_take isl_union_pw_multi_aff *upma)
static __isl_give isl_set * pw_aff_locus(__isl_take isl_pw_aff *pwaff, __isl_give isl_basic_set *(*fn)(__isl_take isl_aff *aff, int rational, void *user), int complement, void *user)
static __isl_give isl_pw_aff * pw_aff_max(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2)
__isl_give isl_aff * isl_aff_set_dim_name(__isl_take isl_aff *aff, enum isl_dim_type type, unsigned pos, const char *s)
__isl_give isl_multi_union_pw_aff * isl_multi_union_pw_aff_multi_val_on_domain(__isl_take isl_union_set *domain, __isl_take isl_multi_val *mv)
__isl_give isl_space * isl_aff_get_space(__isl_keep isl_aff *aff)
static isl_bool isl_pw_aff_list_involves_nan(__isl_keep isl_pw_aff_list *list)
static isl_stat pw_aff_val_on_domain(__isl_take isl_set *domain, void *user)
static __isl_give isl_pw_aff * isl_multi_pw_aff_apply_aff_aligned(__isl_take isl_multi_pw_aff *mpa, __isl_take isl_aff *aff)
static __isl_give isl_aff * plug_in_integral_divs(__isl_take isl_aff *aff)
__isl_give isl_pw_multi_aff * isl_space_identity_pw_multi_aff_on_domain(__isl_take isl_space *space)
__isl_give isl_aff * isl_aff_set_tuple_id(__isl_take isl_aff *aff, enum isl_dim_type type, __isl_take isl_id *id)
__isl_give isl_aff * isl_aff_div(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
__isl_give isl_basic_set * isl_aff_ge_basic_set(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
isl_bool isl_multi_aff_is_empty(__isl_keep isl_multi_aff *maff)
__isl_give isl_set * isl_pw_aff_ge_set(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_union_lexmin(__isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2)
__isl_give isl_multi_union_pw_aff * isl_multi_union_pw_aff_zero(__isl_take isl_space *space)
__isl_give isl_map * isl_map_intersect_multi_pw_aff_explicit_domain(__isl_take isl_map *map, __isl_keep isl_multi_pw_aff *mpa)
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_from_multi_union_pw_aff_0D(__isl_take isl_multi_union_pw_aff *mupa)
__isl_give isl_aff * isl_aff_copy(__isl_keep isl_aff *aff)
__isl_give isl_aff * isl_aff_add_constant(__isl_take isl_aff *aff, isl_int v)
__isl_give isl_space * isl_aff_get_domain_space(__isl_keep isl_aff *aff)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_project_out_map(__isl_take isl_space *space, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_multi_aff * isl_multi_aff_from_basic_set_equalities(__isl_take isl_basic_set *bset)
__isl_give isl_set * isl_pw_aff_pos_set(__isl_take isl_pw_aff *pa)
static isl_stat pw_multi_aff_check_range_product(__isl_keep isl_pw_multi_aff *pma)
__isl_give isl_aff * isl_aff_add_dims(__isl_take isl_aff *aff, enum isl_dim_type type, unsigned n)
__isl_give isl_pw_aff * isl_pw_aff_mod(__isl_take isl_pw_aff *pwaff, isl_int m)
isl_bool isl_aff_is_empty(__isl_keep isl_aff *aff)
isl_bool isl_aff_matching_params(__isl_keep isl_aff *aff, __isl_keep isl_space *space)
__isl_give isl_aff * isl_aff_scale_down_ui(__isl_take isl_aff *aff, unsigned f)
__isl_give isl_aff * isl_aff_substitute(__isl_take isl_aff *aff, enum isl_dim_type type, unsigned pos, __isl_keep isl_aff *subs)
__isl_give isl_multi_aff * isl_multi_aff_scale(__isl_take isl_multi_aff *maff, isl_int f)
isl_bool isl_pw_aff_matching_params(__isl_keep isl_pw_aff *pa, __isl_keep isl_space *space)
static __isl_give isl_val * eval(__isl_keep isl_vec *aff, __isl_keep isl_vec *pnt)
static __isl_give isl_aff * extract_aff_from_equality(__isl_keep isl_basic_map *bmap, int pos, int eq, int div, int ineq, __isl_keep isl_multi_aff *ma)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_domain_map(__isl_take isl_space *space)
static isl_stat preimage_domain_wrapped_domain_entry(__isl_take isl_pw_multi_aff *pma2, void *user)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_from_multi_pw_aff(__isl_take isl_multi_pw_aff *mpa)
__isl_give isl_multi_pw_aff * isl_map_min_multi_pw_aff(__isl_take isl_map *map)
__isl_give isl_aff * isl_aff_add_coefficient_si(__isl_take isl_aff *aff, enum isl_dim_type type, int pos, int v)
__isl_give isl_aff * isl_aff_set_coefficient_val(__isl_take isl_aff *aff, enum isl_dim_type type, int pos, __isl_take isl_val *v)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_sub(__isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2)
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_apply_union_pw_multi_aff(__isl_take isl_union_pw_multi_aff *upma1, __isl_take isl_union_pw_multi_aff *upma2)
__isl_give isl_multi_aff * isl_multi_aff_substitute(__isl_take isl_multi_aff *maff, enum isl_dim_type type, unsigned pos, __isl_keep isl_aff *subs)
isl_bool isl_multi_pw_aff_is_equal(__isl_keep isl_multi_pw_aff *mpa1, __isl_keep isl_multi_pw_aff *mpa2)
__isl_give isl_union_set * isl_multi_union_pw_aff_domain_0D(__isl_take isl_multi_union_pw_aff *mupa)
static __isl_give isl_pw_multi_aff * isl_pw_multi_aff_preimage_domain_wrapped_domain_pw_multi_aff(__isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2)
__isl_give isl_basic_set * isl_aff_nonneg_basic_set(__isl_take isl_aff *aff)
uint32_t isl_aff_get_hash(__isl_keep isl_aff *aff)
static __isl_give isl_map * isl_pw_aff_order_map(__isl_take isl_pw_aff *pa1, __isl_take isl_pw_aff *pa2, __isl_give isl_set *(*order)(__isl_take isl_pw_aff *pa1, __isl_take isl_pw_aff *pa2))
__isl_give isl_basic_set * isl_aff_neg_basic_set(__isl_take isl_aff *aff)
__isl_give isl_basic_set * isl_aff_gt_basic_set(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
static __isl_give isl_multi_aff * extract_isl_multi_aff_from_basic_map(__isl_take isl_basic_map *bmap)
static isl_stat add_pw_multi_aff_from_domain(__isl_take isl_set *set, void *user)
__isl_give isl_multi_union_pw_aff * isl_multi_union_pw_aff_from_union_pw_multi_aff(__isl_take isl_union_pw_multi_aff *upma)
__isl_give isl_multi_union_pw_aff * isl_multi_union_pw_aff_multi_aff_on_domain(__isl_take isl_union_set *domain, __isl_take isl_multi_aff *ma)
__isl_give isl_multi_union_pw_aff * isl_multi_union_pw_aff_apply_pw_multi_aff(__isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_pw_multi_aff *pma)
isl_bool isl_aff_is_cst(__isl_keep isl_aff *aff)
isl_stat isl_aff_check_match_domain_space(__isl_keep isl_aff *aff, __isl_keep isl_space *space)
__isl_give isl_aff * isl_aff_zero_on_domain_space(__isl_take isl_space *space)
__isl_give isl_pw_aff * isl_pw_aff_zero_on_domain(__isl_take isl_local_space *ls)
__isl_give isl_aff * isl_aff_remove_unused_divs(__isl_take isl_aff *aff)
static __isl_give isl_aff * isl_aff_set_nan(__isl_take isl_aff *aff)
__isl_give isl_set * isl_pw_aff_eq_set(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2)
__isl_give isl_union_pw_aff * isl_union_pw_aff_aff_on_domain(__isl_take isl_union_set *domain, __isl_take isl_aff *aff)
__isl_give isl_aff * isl_aff_zero_on_domain(__isl_take isl_local_space *ls)
static __isl_give isl_pw_multi_aff * pw_multi_aff_from_map_stride(__isl_take isl_map *map, __isl_take isl_basic_map *hull, int d, int i, isl_int gcd)
static isl_stat bind_id(__isl_take isl_pw_aff *pa, void *user)
__isl_give isl_aff * isl_aff_realign_domain(__isl_take isl_aff *aff, __isl_take isl_reordering *r)
static __isl_give isl_pw_aff * replace_by_nan(__isl_take isl_pw_aff *pa1, __isl_take isl_pw_aff *pa2)
isl_size isl_aff_dim(__isl_keep isl_aff *aff, enum isl_dim_type type)
const char * isl_aff_get_dim_name(__isl_keep isl_aff *aff, enum isl_dim_type type, unsigned pos)
__isl_give isl_multi_aff * isl_multi_aff_lift(__isl_take isl_multi_aff *maff, __isl_give isl_local_space **ls)
__isl_give isl_set * isl_pw_aff_nonneg_set(__isl_take isl_pw_aff *pwaff)
static isl_stat reset_range_space(__isl_take isl_pw_multi_aff *pma, void *user)
__isl_give isl_local_space * isl_aff_get_local_space(__isl_keep isl_aff *aff)
static __isl_give isl_pw_aff * pw_aff_min_max(__isl_take isl_pw_aff *pa1, __isl_take isl_pw_aff *pa2, int max)
__isl_give isl_aff * isl_aff_mul(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
static __isl_give isl_pw_multi_aff * isl_pw_multi_aff_from_multi_pw_aff_0D(__isl_take isl_multi_pw_aff *mpa)
__isl_give isl_pw_multi_aff * isl_map_as_pw_multi_aff(__isl_take isl_map *map)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_range_map(__isl_take isl_space *space)
static isl_stat pw_multi_aff_from_map(__isl_take isl_map *map, void *user)
static __isl_give isl_aff * plug_in_unit_divs(__isl_take isl_aff *aff)
__isl_give isl_aff * isl_aff_floor(__isl_take isl_aff *aff)
static isl_bool either_involves_nan(__isl_keep isl_pw_aff *pa1, __isl_keep isl_pw_aff *pa2)
__isl_give isl_aff * isl_aff_alloc_vec(__isl_take isl_local_space *ls, __isl_take isl_vec *v)
static isl_stat pw_aff_on_domain(__isl_take isl_set *domain, void *user)
__isl_give isl_aff * isl_aff_alloc(__isl_take isl_local_space *ls)
static __isl_give isl_pw_multi_aff * union_pw_multi_aff_scale_multi_val_entry(__isl_take isl_pw_multi_aff *pma, void *user)
static isl_bool isl_union_pw_multi_aff_un_op_filter_drop_user(__isl_take isl_pw_multi_aff *pma, void *user)
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_from_multi_union_pw_aff(__isl_take isl_multi_union_pw_aff *mupa)
__isl_give isl_set * isl_pw_aff_le_set(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_from_map(__isl_take isl_map *map)
__isl_give isl_multi_aff * isl_multi_aff_multi_val_on_domain_space(__isl_take isl_space *space, __isl_take isl_multi_val *mv)
static isl_bool pw_aff_no_nan(__isl_keep isl_pw_aff *pa, void *user)
__isl_give isl_basic_set * isl_aff_lt_basic_set(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
static isl_stat pullback_entry(__isl_take isl_pw_multi_aff *pma2, void *user)
__isl_give isl_set * isl_aff_gt_set(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
__isl_give isl_aff * isl_aff_add_coefficient_val(__isl_take isl_aff *aff, enum isl_dim_type type, int pos, __isl_take isl_val *v)
__isl_give isl_val * isl_aff_eval(__isl_take isl_aff *aff, __isl_take isl_point *pnt)
__isl_give isl_pw_multi_aff * isl_space_domain_map_pw_multi_aff(__isl_take isl_space *space)
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_from_aff(__isl_take isl_aff *aff)
static __isl_give isl_set * isl_multi_aff_lex_gte_set_0d(__isl_take isl_multi_aff *ma1, __isl_take isl_multi_aff *ma2, int equal)
__isl_give isl_multi_aff * isl_multi_aff_multi_val_on_space(__isl_take isl_space *space, __isl_take isl_multi_val *mv)
static __isl_give isl_aff * isl_aff_substitute_equalities_lifted(__isl_take isl_aff *aff, __isl_take isl_basic_set *eq)
__isl_give isl_multi_aff * isl_multi_aff_domain_map(__isl_take isl_space *space)
static isl_stat zero_union_set(__isl_take isl_pw_aff *pa, void *user)
static isl_stat extract_space(__isl_take isl_pw_multi_aff *pma, void *user)
__isl_give isl_aff * isl_aff_set_coefficient(__isl_take isl_aff *aff, enum isl_dim_type type, int pos, isl_int v)
__isl_give isl_map * isl_map_eq_at_multi_pw_aff(__isl_take isl_map *map, __isl_take isl_multi_pw_aff *mpa)
__isl_give isl_multi_pw_aff * isl_set_max_multi_pw_aff(__isl_take isl_set *set)
__isl_give isl_multi_aff * isl_multi_aff_project_out_map(__isl_take isl_space *space, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_union_map * isl_union_map_from_multi_union_pw_aff(__isl_take isl_multi_union_pw_aff *mupa)
static __isl_give isl_pw_aff * isl_pw_aff_select(__isl_take isl_set *cond1, __isl_take isl_pw_aff *pwaff1, __isl_take isl_set *cond2, __isl_take isl_pw_aff *pwaff2)
__isl_give isl_set * isl_multi_aff_lex_lt_set(__isl_take isl_multi_aff *ma1, __isl_take isl_multi_aff *ma2)
isl_bool isl_multi_pw_aff_is_cst(__isl_keep isl_multi_pw_aff *mpa)
__isl_give isl_multi_aff * isl_space_domain_map_multi_aff(__isl_take isl_space *space)
__isl_give isl_multi_aff * isl_space_range_map_multi_aff(__isl_take isl_space *space)
__isl_give isl_multi_union_pw_aff * isl_multi_union_pw_aff_from_multi_aff(__isl_take isl_multi_aff *ma)
int isl_aff_coefficient_sgn(__isl_keep isl_aff *aff, enum isl_dim_type type, int pos)
isl_stat isl_pw_aff_check_match_domain_space(__isl_keep isl_pw_aff *pa, __isl_keep isl_space *space)
__isl_give isl_union_pw_aff * isl_multi_union_pw_aff_apply_aff(__isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_aff *aff)
static __isl_give isl_set * isl_multi_aff_lex_gte_set(__isl_take isl_multi_aff *ma1, __isl_take isl_multi_aff *ma2, int equal)
__isl_give isl_union_pw_aff * isl_union_pw_aff_val_on_domain(__isl_take isl_union_set *domain, __isl_take isl_val *v)
static isl_stat isl_union_pw_aff_check_match_domain_space(__isl_keep isl_union_pw_aff *upa, __isl_keep isl_space *space)
static __isl_give isl_multi_union_pw_aff * isl_multi_union_pw_aff_pw_multi_aff_on_domain_aligned(__isl_take isl_union_set *domain, __isl_take isl_pw_multi_aff *pma)
__isl_give isl_pw_aff * isl_set_pw_aff_on_domain_val(__isl_take isl_set *domain, __isl_take isl_val *v)
__isl_give isl_multi_union_pw_aff * isl_multi_union_pw_aff_intersect_range(__isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_set *range)
__isl_give isl_aff * isl_aff_gist(__isl_take isl_aff *aff, __isl_take isl_set *context)
__isl_give isl_aff * isl_aff_reset_domain_space(__isl_take isl_aff *aff, __isl_take isl_space *space)
__isl_give isl_aff * isl_aff_add_constant_num_si(__isl_take isl_aff *aff, int v)
isl_size isl_aff_domain_offset(__isl_keep isl_aff *aff, enum isl_dim_type type)
static __isl_give isl_aff * merge_divs(__isl_take isl_aff *aff, int a, int b)
__isl_give isl_multi_union_pw_aff * isl_multi_union_pw_aff_pw_multi_aff_on_domain(__isl_take isl_union_set *domain, __isl_take isl_pw_multi_aff *pma)
__isl_give isl_pw_aff * isl_pw_aff_nan_on_domain(__isl_take isl_local_space *ls)
__isl_give isl_map * isl_pw_aff_lt_map(__isl_take isl_pw_aff *pa1, __isl_take isl_pw_aff *pa2)
static __isl_give isl_map * isl_multi_pw_aff_order_map(__isl_take isl_multi_pw_aff *mpa1, __isl_take isl_multi_pw_aff *mpa2, __isl_give isl_map *(*order)(__isl_keep isl_multi_pw_aff *mpa1, __isl_keep isl_multi_pw_aff *mpa2, __isl_take isl_space *space))
__isl_give isl_multi_pw_aff * isl_multi_pw_aff_from_aff(__isl_take isl_aff *aff)
__isl_give isl_multi_aff * isl_multi_aff_flatten_domain(__isl_take isl_multi_aff *ma)
__isl_give isl_union_pw_multi_aff * isl_union_map_as_union_pw_multi_aff(__isl_take isl_union_map *umap)
__isl_give isl_basic_set * isl_aff_le_basic_set(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_from_domain(__isl_take isl_union_set *uset)
static isl_stat reset_params(__isl_take isl_pw_aff *pa, void *user)
__isl_give isl_union_set * isl_multi_union_pw_aff_domain(__isl_take isl_multi_union_pw_aff *mupa)
__isl_give isl_set * isl_pw_aff_zero_set(__isl_take isl_pw_aff *pwaff)
__isl_give isl_multi_aff * isl_multi_aff_add_on_domain(__isl_keep isl_set *dom, __isl_take isl_multi_aff *maff1, __isl_take isl_multi_aff *maff2)
__isl_give isl_set * isl_pw_aff_list_lt_set(__isl_take isl_pw_aff_list *list1, __isl_take isl_pw_aff_list *list2)
static __isl_give isl_set * less(__isl_keep isl_pw_aff_list *list, int pos1, int pos2)
__isl_give isl_set * isl_pw_aff_bind_id(__isl_take isl_pw_aff *pa, __isl_take isl_id *id)
static __isl_give isl_aff * isl_aff_add_rat_constant_val(__isl_take isl_aff *aff, __isl_take isl_val *v)
__isl_give isl_aff * isl_aff_get_div(__isl_keep isl_aff *aff, int pos)
static __isl_give isl_aff * set_nan_free_val(__isl_take isl_aff *aff, __isl_take isl_val *v)
__isl_give isl_multi_pw_aff * isl_multi_aff_to_multi_pw_aff(__isl_take isl_multi_aff *ma)
static __isl_give isl_pw_multi_aff * pw_multi_aff_from_map_plug_in(__isl_take isl_map *map, int d, __isl_take isl_aff *aff)
__isl_give isl_multi_pw_aff * isl_multi_pw_aff_from_pw_multi_aff(__isl_take isl_pw_multi_aff *pma)
__isl_give isl_multi_union_pw_aff * isl_multi_union_pw_aff_from_multi_pw_aff(__isl_take isl_multi_pw_aff *mpa)
__isl_give isl_multi_aff * isl_multi_pw_aff_as_multi_aff(__isl_take isl_multi_pw_aff *mpa)
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_pullback_union_pw_multi_aff(__isl_take isl_union_pw_multi_aff *upma1, __isl_take isl_union_pw_multi_aff *upma2)
__isl_give isl_multi_aff * isl_multi_aff_from_aff_mat(__isl_take isl_space *space, __isl_take isl_mat *mat)
static isl_stat range_product_entry(__isl_take isl_pw_multi_aff *pma2, void *user)
static __isl_give isl_aff * sort_divs(__isl_take isl_aff *aff)
__isl_give isl_pw_aff * isl_pw_aff_cond(__isl_take isl_pw_aff *cond, __isl_take isl_pw_aff *pwaff_true, __isl_take isl_pw_aff *pwaff_false)
static isl_stat isl_aff_check_has_domain_space(__isl_keep isl_aff *aff, __isl_keep isl_space *space)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_multi_val_on_domain(__isl_take isl_set *domain, __isl_take isl_multi_val *mv)
__isl_give isl_pw_aff * isl_pw_multi_aff_get_pw_aff(__isl_keep isl_pw_multi_aff *pma, int pos)
isl_stat isl_aff_get_denominator(__isl_keep isl_aff *aff, isl_int *v)
static __isl_give isl_aff * isl_aff_alloc_vec_validated(__isl_take isl_local_space *ls, __isl_take isl_vec *v)
__isl_give isl_map * isl_pw_aff_eq_map(__isl_take isl_pw_aff *pa1, __isl_take isl_pw_aff *pa2)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_flat_range_product(__isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2)
__isl_give isl_pw_aff * isl_pw_aff_div(__isl_take isl_pw_aff *pa1, __isl_take isl_pw_aff *pa2)
static __isl_give isl_multi_aff * isl_multi_aff_substitute_equalities(__isl_take isl_multi_aff *maff, __isl_take isl_basic_set *eq)
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_from_union_map(__isl_take isl_union_map *umap)
static isl_stat pa_pb_pma(__isl_take isl_pw_multi_aff *pma, void *user)
__isl_give isl_multi_pw_aff * isl_multi_pw_aff_from_multi_aff(__isl_take isl_multi_aff *ma)
__isl_give isl_basic_set * isl_aff_pos_basic_set(__isl_take isl_aff *aff)
__isl_give isl_aff * isl_aff_pullback_multi_aff(__isl_take isl_aff *aff, __isl_take isl_multi_aff *ma)
__isl_give isl_set * isl_pw_aff_list_le_set(__isl_take isl_pw_aff_list *list1, __isl_take isl_pw_aff_list *list2)
__isl_give isl_aff * isl_aff_scale_down_val(__isl_take isl_aff *aff, __isl_take isl_val *v)
static isl_stat pw_multi_aff_multi_val_on_domain(__isl_take isl_set *domain, void *user)
__isl_give isl_multi_pw_aff * isl_pw_multi_aff_to_multi_pw_aff(__isl_take isl_pw_multi_aff *pma)
static __isl_give isl_multi_union_pw_aff * preimage_explicit_domain(__isl_take isl_multi_union_pw_aff *mupa, __isl_keep isl_union_pw_multi_aff *upma)
__isl_give isl_pw_aff * isl_set_indicator_function(__isl_take isl_set *set)
__isl_give isl_aff * isl_aff_dup(__isl_keep isl_aff *aff)
static __isl_give isl_pw_multi_aff * pw_multi_aff_factor(__isl_take isl_pw_multi_aff *pma, isl_stat(*check_space)(__isl_keep isl_pw_multi_aff *pma), __isl_give isl_space *(*space_factor)(__isl_take isl_space *space), __isl_give isl_multi_aff *(*multi_aff_factor)(__isl_take isl_multi_aff *ma))
static __isl_give isl_basic_set * aff_bind_id(__isl_take isl_aff *aff, int rational, void *user)
__isl_give isl_multi_pw_aff * isl_set_min_multi_pw_aff(__isl_take isl_set *set)
static __isl_give isl_set * pw_aff_list_set(__isl_take isl_pw_aff_list *list1, __isl_take isl_pw_aff_list *list2, __isl_give isl_set *(*fn)(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2))
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_from_union_pw_aff(__isl_take isl_union_pw_aff *upa)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_from_set(__isl_take isl_set *set)
static __isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_un_op(__isl_take isl_union_pw_multi_aff *upma, struct isl_union_pw_multi_aff_un_op_control *control)
__isl_give isl_multi_union_pw_aff * isl_union_map_as_multi_union_pw_aff(__isl_take isl_union_map *umap)
static __isl_give isl_aff * pick_free(__isl_take isl_aff *aff, __isl_take isl_val *v)
static __isl_give isl_pw_multi_aff * pw_multi_aff_from_map_check_strides(__isl_take isl_map *map, __isl_take isl_basic_map *hull)
__isl_give isl_aff * isl_aff_set_constant_val(__isl_take isl_aff *aff, __isl_take isl_val *v)
__isl_give isl_pw_aff * isl_pw_aff_mod_val(__isl_take isl_pw_aff *pa, __isl_take isl_val *m)
static isl_bool isl_union_pw_aff_matching_params(__isl_keep isl_union_pw_aff *upa, __isl_keep isl_space *space)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_identity(__isl_take isl_space *space)
__isl_give isl_aff * isl_aff_add_constant_val(__isl_take isl_aff *aff, __isl_take isl_val *v)
__isl_give isl_pw_aff * isl_pw_aff_tdiv_r(__isl_take isl_pw_aff *pa1, __isl_take isl_pw_aff *pa2)
__isl_give isl_local_space * isl_aff_take_domain_local_space(__isl_keep isl_aff *aff)
__isl_give isl_multi_aff * isl_space_multi_aff_on_domain_multi_val(__isl_take isl_space *space, __isl_take isl_multi_val *mv)
__isl_give isl_set * isl_pw_aff_non_zero_set(__isl_take isl_pw_aff *pwaff)
__isl_give isl_multi_union_pw_aff * isl_multi_union_pw_aff_apply_multi_aff(__isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_multi_aff *ma)
static __isl_give isl_pw_multi_aff * plain_pw_multi_aff_from_map(__isl_take isl_set *domain, __isl_take isl_basic_map *bmap)
isl_bool isl_aff_is_nan(__isl_keep isl_aff *aff)
__isl_give isl_aff * isl_aff_domain_reverse(__isl_take isl_aff *aff)
__isl_give isl_map * isl_map_from_multi_aff_internal(__isl_take isl_multi_aff *maff)
__isl_give isl_map * isl_map_from_pw_multi_aff_internal(__isl_take isl_pw_multi_aff *pma)
__isl_give isl_map * isl_map_from_pw_aff_internal(__isl_take isl_pw_aff *pwaff)
isl_stat isl_pw_multi_aff_check_named_params(__isl_keep isl_pw_multi_aff *pma)
__isl_give isl_pw_aff * isl_pw_aff_alloc_size(__isl_take isl_space *space, int n)
isl_stat isl_pw_aff_check_named_params(__isl_keep isl_pw_aff *pa)
__isl_give isl_pw_aff * isl_pw_aff_scale(__isl_take isl_pw_aff *pwaff, isl_int f)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_add_disjoint(__isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2)
__isl_give isl_pw_aff * isl_pw_aff_reset_space(__isl_take isl_pw_aff *pwaff, __isl_take isl_space *space)
__isl_give isl_pw_aff * isl_pw_aff_reset_domain_space(__isl_take isl_pw_aff *pwaff, __isl_take isl_space *space)
__isl_give isl_pw_aff * isl_pw_aff_add_disjoint(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_reset_space(__isl_take isl_pw_multi_aff *pwmaff, __isl_take isl_space *space)
__isl_give isl_basic_map * isl_basic_map_plain_affine_hull(__isl_take isl_basic_map *bmap)
#define isl_int_is_zero(i)
#define isl_int_is_one(i)
#define isl_int_is_pos(i)
#define isl_int_is_negone(i)
#define isl_int_is_neg(i)
#define isl_int_gcd(r, i, j)
#define isl_int_neg(r, i)
#define isl_int_add_ui(r, i, j)
#define isl_int_add(r, i, j)
#define isl_int_addmul(r, i, j)
#define isl_int_is_divisible_by(i, j)
#define isl_int_fdiv_r(r, i, j)
#define isl_int_set(r, i)
#define isl_int_divexact(r, i, j)
#define isl_int_mul(r, i, j)
#define isl_int_set_si(r, i)
#define isl_int_sub_ui(r, i, j)
#define isl_int_fdiv_q(r, i, j)
#define isl_int_set_ui(r, i)
#define isl_int_swap(i, j)
#define isl_int_sub(r, i, j)
#define isl_int_abs(r, i)
#define isl_int_cmp_si(i, si)
__isl_give isl_local_space * isl_local_space_move_dims(__isl_take isl_local_space *ls, enum isl_dim_type dst_type, unsigned dst_pos, enum isl_dim_type src_type, unsigned src_pos, unsigned n)
isl_bool isl_local_space_divs_known(__isl_keep isl_local_space *ls)
__isl_give isl_local_space * isl_local_space_replace_divs(__isl_take isl_local_space *ls, __isl_take isl_mat *div)
__isl_give isl_point * isl_local_space_lift_point(__isl_take isl_local_space *ls, __isl_take isl_point *pnt)
int * isl_local_space_get_active(__isl_keep isl_local_space *ls, isl_int *l)
__isl_keep isl_space * isl_local_space_peek_space(__isl_keep isl_local_space *ls)
unsigned isl_local_space_offset(__isl_keep isl_local_space *ls, enum isl_dim_type type)
__isl_give isl_mat * isl_merge_divs(__isl_keep isl_mat *div1, __isl_keep isl_mat *div2, int *exp1, int *exp2)
__isl_give isl_set * isl_local_space_lift_set(__isl_take isl_local_space *ls, __isl_take isl_set *set)
int isl_mat_cmp_div(__isl_keep isl_mat *div, int i, int j)
__isl_give isl_local_space * isl_local_space_swap_div(__isl_take isl_local_space *ls, int a, int b)
__isl_give isl_local_space * isl_local_space_wrapped_reverse(__isl_take isl_local_space *ls)
__isl_give isl_local_space * isl_local_space_substitute_seq(__isl_take isl_local_space *ls, enum isl_dim_type type, unsigned pos, isl_int *subs, int subs_len, int first, int n)
__isl_give isl_local_space * isl_local_space_reset_space(__isl_take isl_local_space *ls, __isl_take isl_space *space)
int isl_local_space_cmp(__isl_keep isl_local_space *ls1, __isl_keep isl_local_space *ls2)
__isl_give isl_local_space * isl_local_space_preimage_multi_aff(__isl_take isl_local_space *ls, __isl_take isl_multi_aff *ma)
isl_bool isl_local_space_is_named_or_nested(__isl_keep isl_local_space *ls, enum isl_dim_type type)
__isl_give isl_local_space * isl_local_space_add_div(__isl_take isl_local_space *ls, __isl_take isl_vec *div)
__isl_give isl_local_space * isl_local_space_substitute(__isl_take isl_local_space *ls, enum isl_dim_type type, unsigned pos, __isl_keep isl_aff *subs)
uint32_t isl_local_space_get_hash(__isl_keep isl_local_space *ls)
__isl_give isl_local_space * isl_local_space_substitute_equalities(__isl_take isl_local_space *ls, __isl_take isl_basic_set *eq)
isl_size isl_local_space_var_offset(__isl_keep isl_local_space *ls, enum isl_dim_type type)
__isl_give isl_local_space * isl_local_space_lift(__isl_take isl_local_space *ls)
__isl_give isl_local_space * isl_local_space_realign(__isl_take isl_local_space *ls, __isl_take isl_reordering *r)
isl_stat isl_local_space_check_range(__isl_keep isl_local_space *ls, enum isl_dim_type type, unsigned first, unsigned n)
isl_bool isl_local_space_has_equal_space(__isl_keep isl_local_space *ls1, __isl_keep isl_local_space *ls2)
unsigned isl_basic_map_offset(__isl_keep isl_basic_map *bmap, enum isl_dim_type type)
isl_bool isl_set_has_rational(__isl_keep isl_set *set)
unsigned isl_basic_set_offset(__isl_keep isl_basic_set *bset, enum isl_dim_type type)
static unsigned pos(__isl_keep isl_space *space, enum isl_dim_type type)
__isl_give isl_maybe_isl_aff isl_basic_map_try_find_any_output_div_mod(__isl_keep isl_basic_map *bmap, int *pos)
int isl_basic_map_output_defining_equality(__isl_keep isl_basic_map *bmap, int pos, int *div, int *ineq)
__isl_give isl_basic_set * isl_basic_set_set_rational(__isl_take isl_basic_set *bset)
__isl_give isl_basic_map * isl_basic_map_sort_constraints(__isl_take isl_basic_map *bmap)
__isl_give isl_set * isl_set_set_rational(__isl_take isl_set *set)
__isl_give isl_set * isl_set_substitute(__isl_take isl_set *set, unsigned pos, __isl_keep isl_aff *subs)
isl_bool isl_map_is_set(__isl_keep isl_map *map)
isl_bool isl_basic_map_plain_is_single_valued(__isl_keep isl_basic_map *bmap)
__isl_give isl_basic_set * isl_basic_set_simplify(__isl_take isl_basic_set *bset)
__isl_give isl_basic_map * isl_basic_map_drop_constraints_involving_unknown_divs(__isl_take isl_basic_map *bmap)
static struct isl_arg_choice bound[]
__isl_keep isl_space * isl_point_peek_space(__isl_keep isl_point *pnt)
__isl_keep isl_vec * isl_point_peek_vec(__isl_keep isl_point *pnt)
__isl_null isl_reordering * isl_reordering_free(__isl_take isl_reordering *exp)
__isl_give isl_reordering * isl_reordering_extend(__isl_take isl_reordering *exp, unsigned extra)
__isl_give isl_reordering * isl_parameter_alignment_reordering(__isl_keep isl_space *alignee, __isl_keep isl_space *aligner)
__isl_give isl_reordering * isl_reordering_copy(__isl_keep isl_reordering *exp)
void isl_seq_combine(isl_int *dst, isl_int m1, isl_int *src1, isl_int m2, isl_int *src2, unsigned len)
int isl_seq_last_non_zero(isl_int *p, unsigned len)
void isl_seq_inner_product(isl_int *p1, isl_int *p2, unsigned len, isl_int *prod)
int isl_seq_first_non_zero(isl_int *p, unsigned len)
void isl_seq_scale_down(isl_int *dst, isl_int *src, isl_int m, unsigned len)
void isl_seq_gcd(isl_int *p, unsigned len, isl_int *gcd)
void isl_seq_substitute(isl_int *p, int pos, isl_int *subs, int p_len, int subs_len, isl_int v)
void isl_seq_clr(isl_int *p, unsigned len)
void isl_seq_scale(isl_int *dst, isl_int *src, isl_int m, unsigned len)
void isl_seq_elim(isl_int *dst, isl_int *src, unsigned pos, unsigned len, isl_int *m)
int isl_seq_cmp(isl_int *p1, isl_int *p2, unsigned len)
void isl_seq_cpy(isl_int *dst, isl_int *src, unsigned len)
int isl_seq_any_non_zero(isl_int *p, unsigned len)
void isl_seq_addmul(isl_int *dst, isl_int f, isl_int *src, unsigned len)
void isl_seq_neg(isl_int *dst, isl_int *src, unsigned len)
isl_size isl_space_wrapped_dim(__isl_keep isl_space *space, enum isl_dim_type outer, enum isl_dim_type inner)
__isl_give isl_space * isl_space_extend_domain_with_range(__isl_take isl_space *space, __isl_take isl_space *model)
isl_size isl_space_offset(__isl_keep isl_space *space, enum isl_dim_type type)
isl_stat isl_space_check_wrapped_tuple_is_equal(__isl_keep isl_space *space1, enum isl_dim_type outer, enum isl_dim_type inner, __isl_keep isl_space *space2, enum isl_dim_type type2)
isl_bool isl_space_has_named_params(__isl_keep isl_space *space)
static isl_bool match(__isl_keep isl_space *space1, enum isl_dim_type type1, __isl_keep isl_space *space2, enum isl_dim_type type2)
__isl_give isl_space * isl_space_lift(__isl_take isl_space *space, unsigned n_local)
__isl_give isl_space * isl_space_replace_params(__isl_take isl_space *dst, __isl_keep isl_space *src)
isl_bool isl_space_wrapped_tuple_is_equal(__isl_keep isl_space *space1, enum isl_dim_type outer, enum isl_dim_type inner, __isl_keep isl_space *space2, enum isl_dim_type type2)
isl_stat isl_space_check_domain_is_wrapping(__isl_keep isl_space *space)
isl_stat isl_space_check_is_proper_set(__isl_keep isl_space *space)
int isl_space_cmp(__isl_keep isl_space *space1, __isl_keep isl_space *space2)
isl_stat isl_space_check_range(__isl_keep isl_space *space, enum isl_dim_type type, unsigned first, unsigned n)
static __isl_give isl_union_map * total(__isl_take isl_union_map *umap, __isl_give isl_map *(*fn)(__isl_take isl_map *))
__isl_give isl_union_map * isl_union_map_reset_range_space(__isl_take isl_union_map *umap, __isl_take isl_space *space)
isl_bool isl_union_set_space_has_equal_params(__isl_keep isl_union_set *uset, __isl_keep isl_space *space)
__isl_give isl_val * isl_val_int_from_isl_int(isl_ctx *ctx, isl_int n)
__isl_give isl_val * isl_val_normalize(__isl_take isl_val *v)
__isl_give isl_val * isl_val_rat_from_isl_int(isl_ctx *ctx, isl_int n, isl_int d)
__isl_give isl_vec * isl_vec_expand(__isl_take isl_vec *vec, int pos, int n, int *exp, int expanded)
uint32_t isl_vec_get_hash(__isl_keep isl_vec *vec)
__isl_give isl_vec * isl_vec_cow(__isl_take isl_vec *vec)
__isl_give isl_vec * isl_vec_reorder(__isl_take isl_vec *vec, unsigned offset, __isl_take isl_reordering *r)
__isl_give isl_aff * isl_local_space_get_div(__isl_keep isl_local_space *ls, int pos)
__isl_give isl_local_space * isl_local_space_set_dim_id(__isl_take isl_local_space *ls, enum isl_dim_type type, unsigned pos, __isl_take isl_id *id)
isl_bool isl_local_space_is_set(__isl_keep isl_local_space *ls)
__isl_give isl_local_space * isl_local_space_from_space(__isl_take isl_space *space)
const char * isl_local_space_get_dim_name(__isl_keep isl_local_space *ls, enum isl_dim_type type, unsigned pos)
__isl_give isl_local_space * isl_local_space_drop_dims(__isl_take isl_local_space *ls, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_local_space * isl_local_space_set_from_params(__isl_take isl_local_space *ls)
__isl_give isl_local_space * isl_local_space_insert_dims(__isl_take isl_local_space *ls, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_local_space * isl_local_space_add_dims(__isl_take isl_local_space *ls, enum isl_dim_type type, unsigned n)
__isl_give isl_local_space * isl_local_space_domain(__isl_take isl_local_space *ls)
__isl_give isl_local_space * isl_local_space_set_tuple_id(__isl_take isl_local_space *ls, enum isl_dim_type type, __isl_take isl_id *id)
isl_ctx * isl_local_space_get_ctx(__isl_keep isl_local_space *ls)
isl_bool isl_local_space_is_equal(__isl_keep isl_local_space *ls1, __isl_keep isl_local_space *ls2)
int isl_local_space_find_dim_by_name(__isl_keep isl_local_space *ls, enum isl_dim_type type, const char *name)
isl_size isl_local_space_dim(__isl_keep isl_local_space *ls, enum isl_dim_type type)
__isl_give isl_local_space * isl_local_space_from_domain(__isl_take 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_space * isl_local_space_get_space(__isl_keep isl_local_space *ls)
__isl_give isl_local_space * isl_local_space_set_dim_name(__isl_take isl_local_space *ls, enum isl_dim_type type, unsigned pos, const char *s)
__isl_export __isl_give isl_map * isl_map_detect_equalities(__isl_take isl_map *map)
__isl_export __isl_give isl_set * isl_map_domain(__isl_take isl_map *bmap)
__isl_export __isl_give isl_map * isl_map_union(__isl_take isl_map *map1, __isl_take isl_map *map2)
__isl_give isl_space * isl_basic_map_get_space(__isl_keep isl_basic_map *bmap)
__isl_export isl_size isl_map_n_basic_map(__isl_keep isl_map *map)
__isl_give isl_pw_aff * isl_map_dim_min(__isl_take isl_map *map, int pos)
__isl_give isl_pw_multi_aff * isl_basic_map_lexmin_pw_multi_aff(__isl_take isl_basic_map *bmap)
__isl_export isl_bool isl_map_is_single_valued(__isl_keep isl_map *map)
__isl_export __isl_give isl_map * isl_map_apply_domain(__isl_take isl_map *map1, __isl_take isl_map *map2)
__isl_export __isl_give isl_map * isl_map_intersect(__isl_take isl_map *map1, __isl_take isl_map *map2)
__isl_give isl_map * isl_map_make_disjoint(__isl_take isl_map *map)
__isl_export __isl_give isl_map * isl_map_universe(__isl_take isl_space *space)
__isl_give isl_map * isl_map_copy(__isl_keep isl_map *map)
__isl_null isl_basic_map * isl_basic_map_free(__isl_take isl_basic_map *bmap)
isl_ctx * isl_basic_map_get_ctx(__isl_keep isl_basic_map *bmap)
__isl_export __isl_give isl_space * isl_map_get_space(__isl_keep isl_map *map)
isl_size isl_basic_map_dim(__isl_keep isl_basic_map *bmap, enum isl_dim_type type)
isl_ctx * isl_map_get_ctx(__isl_keep isl_map *map)
__isl_export __isl_give isl_map * isl_map_intersect_domain(__isl_take isl_map *map, __isl_take isl_set *set)
__isl_give isl_local_space * isl_basic_map_get_local_space(__isl_keep isl_basic_map *bmap)
__isl_export isl_bool isl_map_is_equal(__isl_keep isl_map *map1, __isl_keep isl_map *map2)
__isl_export __isl_give isl_map * isl_map_empty(__isl_take isl_space *space)
__isl_export __isl_give isl_map * isl_set_unwrap(__isl_take isl_set *set)
__isl_give isl_pw_aff * isl_map_dim_max(__isl_take isl_map *map, int pos)
__isl_export __isl_give isl_set * isl_map_wrap(__isl_take isl_map *map)
__isl_export __isl_give isl_basic_map * isl_map_unshifted_simple_hull(__isl_take isl_map *map)
__isl_give isl_map * isl_map_equate(__isl_take isl_map *map, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2)
__isl_null isl_map * isl_map_free(__isl_take isl_map *map)
__isl_give isl_basic_map * isl_basic_map_copy(__isl_keep isl_basic_map *bmap)
__isl_give isl_mat * isl_mat_copy(__isl_keep isl_mat *mat)
isl_size isl_mat_cols(__isl_keep isl_mat *mat)
isl_size isl_mat_rows(__isl_keep isl_mat *mat)
__isl_null isl_mat * isl_mat_free(__isl_take isl_mat *mat)
isl_ctx * isl_mat_get_ctx(__isl_keep isl_mat *mat)
isl_bool isl_point_is_void(__isl_keep isl_point *pnt)
__isl_null isl_point * isl_point_free(__isl_take isl_point *pnt)
isl_ctx * isl_point_get_ctx(__isl_keep isl_point *pnt)
__isl_export __isl_give isl_set * isl_set_universe(__isl_take isl_space *space)
__isl_export __isl_give isl_set * isl_set_coalesce(__isl_take isl_set *set)
__isl_export __isl_give isl_set * isl_set_product(__isl_take isl_set *set1, __isl_take isl_set *set2)
__isl_export __isl_give isl_set * isl_set_subtract(__isl_take isl_set *set1, __isl_take isl_set *set2)
__isl_export __isl_give isl_space * isl_set_get_space(__isl_keep isl_set *set)
isl_bool isl_set_plain_is_empty(__isl_keep isl_set *set)
__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_export __isl_give isl_set * isl_set_intersect_params(__isl_take isl_set *set, __isl_take isl_set *params)
__isl_null isl_basic_set * isl_basic_set_free(__isl_take isl_basic_set *bset)
__isl_give isl_pw_aff * isl_set_dim_min(__isl_take isl_set *set, int pos)
__isl_export __isl_give isl_set * isl_set_complement(__isl_take isl_set *set)
__isl_null isl_set * isl_set_free(__isl_take isl_set *set)
__isl_give isl_set * isl_set_copy(__isl_keep isl_set *set)
__isl_give isl_basic_set * isl_basic_set_add_dims(__isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned n)
__isl_give isl_basic_set * isl_basic_set_empty(__isl_take isl_space *space)
isl_size isl_set_dim(__isl_keep isl_set *set, enum isl_dim_type type)
int isl_set_plain_cmp(__isl_keep isl_set *set1, __isl_keep isl_set *set2)
__isl_overload __isl_give isl_set * isl_set_preimage_multi_pw_aff(__isl_take isl_set *set, __isl_take isl_multi_pw_aff *mpa)
__isl_give isl_set * isl_set_align_params(__isl_take isl_set *set, __isl_take isl_space *model)
isl_bool isl_set_plain_is_universe(__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_export __isl_give isl_set * isl_set_empty(__isl_take isl_space *space)
__isl_give isl_set * isl_set_union_disjoint(__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_give isl_basic_set * isl_basic_set_universe(__isl_take isl_space *space)
__isl_export __isl_give isl_basic_set * isl_set_affine_hull(__isl_take isl_set *set)
__isl_export __isl_give isl_set * isl_set_params(__isl_take isl_set *set)
__isl_export isl_bool isl_set_is_empty(__isl_keep isl_set *set)
__isl_give isl_pw_aff * isl_set_dim_max(__isl_take isl_set *set, int pos)
isl_bool isl_space_has_equal_params(__isl_keep isl_space *space1, __isl_keep isl_space *space2)
__isl_null isl_space * isl_space_free(__isl_take isl_space *space)
__isl_give isl_space * isl_space_from_domain(__isl_take isl_space *space)
__isl_export __isl_give isl_space * isl_space_flatten_range(__isl_take isl_space *space)
__isl_give isl_space * isl_space_range_factor_range(__isl_take isl_space *space)
__isl_give isl_space * isl_space_range_map(__isl_take isl_space *space)
__isl_export __isl_give isl_space * isl_space_params(__isl_take isl_space *space)
__isl_export __isl_give isl_space * isl_space_product(__isl_take isl_space *left, __isl_take isl_space *right)
__isl_overload __isl_give isl_space * isl_space_add_param_id(__isl_take isl_space *space, __isl_take isl_id *id)
isl_ctx * isl_space_get_ctx(__isl_keep isl_space *space)
isl_bool isl_space_range_is_wrapping(__isl_keep isl_space *space)
__isl_give isl_space * isl_space_copy(__isl_keep isl_space *space)
isl_bool isl_space_is_map(__isl_keep isl_space *space)
__isl_give isl_space * isl_space_align_params(__isl_take isl_space *space1, __isl_take isl_space *space2)
__isl_give isl_space * isl_space_map_from_domain_and_range(__isl_take isl_space *domain, __isl_take isl_space *range)
__isl_give isl_space * isl_space_join(__isl_take isl_space *left, __isl_take isl_space *right)
__isl_export __isl_give isl_space * isl_space_range(__isl_take isl_space *space)
isl_bool isl_space_is_params(__isl_keep isl_space *space)
__isl_export __isl_give isl_space * isl_space_unwrap(__isl_take isl_space *space)
__isl_export __isl_give isl_space * isl_space_flatten_domain(__isl_take isl_space *space)
__isl_export __isl_give isl_space * isl_space_map_from_set(__isl_take isl_space *space)
int isl_space_find_dim_by_id(__isl_keep isl_space *space, enum isl_dim_type type, __isl_keep isl_id *id)
__isl_export isl_bool isl_space_is_equal(__isl_keep isl_space *space1, __isl_keep isl_space *space2)
__isl_give isl_space * isl_space_range_factor_domain(__isl_take isl_space *space)
__isl_give isl_space * isl_space_drop_dims(__isl_take isl_space *space, enum isl_dim_type type, unsigned first, unsigned num)
__isl_give isl_space * isl_space_range_product(__isl_take isl_space *left, __isl_take isl_space *right)
__isl_give isl_space * isl_space_domain_map(__isl_take isl_space *space)
isl_size isl_space_dim(__isl_keep isl_space *space, enum isl_dim_type type)
isl_bool isl_space_is_set(__isl_keep isl_space *space)
__isl_export __isl_give isl_space * isl_space_drop_all_params(__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)
isl_bool isl_space_domain_is_wrapping(__isl_keep isl_space *space)
__isl_give isl_space * isl_space_add_dims(__isl_take isl_space *space, enum isl_dim_type type, unsigned n)
isl_bool isl_space_is_product(__isl_keep isl_space *space)
__isl_export __isl_give isl_space * isl_space_domain(__isl_take isl_space *space)
isl_union_pw_multi_aff * upma
isl_union_pw_multi_aff * upma2
isl_union_pw_multi_aff * res
isl_stat(* fn)(__isl_take isl_pw_multi_aff *pma, void *user)
isl_union_pw_multi_aff * res
isl_union_pw_multi_aff * res
__isl_give isl_pw_multi_aff *(* fn)(__isl_take isl_pw_multi_aff *pma)
isl_bool(* filter)(__isl_keep isl_pw_multi_aff *part)
static std::vector< Signature > bin_op
static Signature range_product
static Signature range_map
__isl_null isl_union_map * isl_union_map_free(__isl_take isl_union_map *umap)
__isl_export __isl_give isl_space * isl_union_map_get_space(__isl_keep isl_union_map *umap)
__isl_export isl_stat isl_union_map_foreach_map(__isl_keep isl_union_map *umap, isl_stat(*fn)(__isl_take isl_map *map, void *user), void *user)
__isl_give isl_union_map * isl_union_map_flat_range_product(__isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2)
__isl_give isl_union_set * isl_union_set_align_params(__isl_take isl_union_set *uset, __isl_take isl_space *model)
__isl_export __isl_give isl_union_map * isl_union_map_from_domain_and_range(__isl_take isl_union_set *domain, __isl_take isl_union_set *range)
__isl_give isl_set * isl_set_from_union_set(__isl_take isl_union_set *uset)
__isl_overload __isl_give isl_union_set * isl_union_set_preimage_union_pw_multi_aff(__isl_take isl_union_set *uset, __isl_take isl_union_pw_multi_aff *upma)
isl_bool isl_union_set_is_params(__isl_keep isl_union_set *uset)
__isl_export isl_stat isl_union_set_foreach_set(__isl_keep isl_union_set *uset, isl_stat(*fn)(__isl_take isl_set *set, void *user), void *user)
__isl_give isl_union_set * isl_union_set_add_set(__isl_take isl_union_set *uset, __isl_take isl_set *set)
__isl_export __isl_give isl_union_set * isl_union_set_intersect(__isl_take isl_union_set *uset1, __isl_take isl_union_set *uset2)
__isl_give isl_union_set * isl_union_set_empty(__isl_take isl_space *space)
__isl_export __isl_give isl_space * isl_union_set_get_space(__isl_keep isl_union_set *uset)
__isl_constructor __isl_give isl_union_set * isl_union_set_from_set(__isl_take isl_set *set)
isl_ctx * isl_union_set_get_ctx(__isl_keep isl_union_set *uset)
__isl_give isl_union_set * isl_union_set_copy(__isl_keep isl_union_set *uset)
__isl_export __isl_give isl_union_set * isl_union_set_intersect_params(__isl_take isl_union_set *uset, __isl_take isl_set *set)
__isl_export __isl_give isl_set * isl_union_set_params(__isl_take isl_union_set *uset)
__isl_null isl_union_set * isl_union_set_free(__isl_take isl_union_set *uset)
__isl_export __isl_give isl_val * isl_val_abs(__isl_take isl_val *v)
__isl_export isl_bool isl_val_is_nan(__isl_keep isl_val *v)
__isl_give isl_val * isl_val_copy(__isl_keep isl_val *v)
__isl_give isl_val * isl_val_sub_ui(__isl_take isl_val *v1, unsigned long v2)
__isl_export isl_bool isl_val_is_pos(__isl_keep isl_val *v)
isl_ctx * isl_val_get_ctx(__isl_keep isl_val *val)
__isl_export __isl_give isl_val * isl_val_nan(isl_ctx *ctx)
__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_bool isl_val_is_one(__isl_keep isl_val *v)
__isl_export isl_bool isl_val_is_int(__isl_keep isl_val *v)
__isl_export isl_bool isl_val_is_rat(__isl_keep isl_val *v)
struct isl_multi_val isl_multi_val
isl_ctx * isl_vec_get_ctx(__isl_keep isl_vec *vec)
__isl_null isl_vec * isl_vec_free(__isl_take isl_vec *vec)
__isl_give isl_vec * isl_vec_copy(__isl_keep isl_vec *vec)
isl_bool isl_vec_is_equal(__isl_keep isl_vec *vec1, __isl_keep isl_vec *vec2)
__isl_give isl_vec * isl_vec_drop_els(__isl_take isl_vec *vec, unsigned pos, unsigned n)
__isl_give isl_vec * isl_vec_normalize(__isl_take isl_vec *vec)
__isl_give isl_vec * isl_vec_extend(__isl_take isl_vec *vec, unsigned size)
__isl_give isl_vec * isl_vec_clr(__isl_take isl_vec *vec)
__isl_give isl_vec * isl_vec_alloc(isl_ctx *ctx, unsigned size)
__isl_give isl_vec * isl_vec_insert_zero_els(__isl_take isl_vec *vec, unsigned pos, unsigned n)
__isl_give isl_vec * isl_vec_move_els(__isl_take isl_vec *vec, unsigned dst_col, unsigned src_col, unsigned n)