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",
281 "expecting rational value or NaN",
goto error);
325 "expecting (parameter) set space",
goto error);
370 "parameter not found in space",
goto error);
415 uint32_t hash, ls_hash, v_hash;
434 return aff ?
aff->ls : NULL;
659 if (equal_params < 0)
791 "output/set dimension does not have a coefficient",
820 "output/set dimension does not have a coefficient",
872 "expecting rational value",
goto error);
893 aff->v->el + 1, v->d,
aff->v->size - 1);
958 aff->v->el + 1, v->d,
aff->v->size - 1);
1004 if (is_nan < 0 || is_zero < 0)
1006 if (is_nan || is_zero)
1011 if (is_nan < 0 || is_rat < 0)
1017 "expecting rational value or NaN",
goto error);
1119 "output/set dimension does not have a coefficient",
1156 "output/set dimension does not have a coefficient",
1196 "output/set dimension does not have a coefficient",
1210 "expecting rational value",
goto error);
1232 aff->v->el + 1, v->d,
aff->v->size - 1);
1261 "output/set dimension does not have a coefficient",
1303 "output/set dimension does not have a coefficient",
1317 "expecting rational value",
goto error);
1337 aff->v->el + 1, v->d,
aff->v->size - 1);
1411 if (
n < 0 || off < 0)
1446 if (
n < 0 || off < 0)
1449 for (i = 0; i <
n; ++i) {
1454 aff->ls->div->row[i], len, i + 1,
n - (i + 1));
1507 if (
n < 0 || off < 0)
1509 for (i = 1; i <
n; ++i) {
1510 for (j = 0; j < i; ++j) {
1515 aff->v->size, i, 1);
1578 aff->v->el[1 + off +
a],
aff->v->el[1 + off +
b]);
1601 for (i = 1; i <
n; ++i) {
1602 for (j = i - 1; j >= 0; --j) {
1685 for (i = 1; i <
aff->v->size; ++i) {
1726 "expecting integer modulo",
goto error);
1771 "expecting integer modulo",
goto error);
1833 if (
offset < 0 || old_n_div < 0 || new_n_div < 0)
1866 isl_seq_scale(aff1->v->el + 1, aff1->v->el + 1,
f, aff1->v->size - 1);
1868 isl_seq_addmul(aff1->v->el + 1,
f, aff2->v->el + 1, aff1->v->size - 1);
1911 "spaces don't match",
goto error);
1924 if (n_div1 < 0 || n_div2 < 0)
1926 if (n_div1 == 0 && n_div2 == 0)
1931 if ((n_div1 && !exp1) || (n_div2 && !exp2))
2008 "expecting rational factor",
goto error);
2075 "expecting rational factor",
goto error);
2078 "factor needs to be positive",
goto error);
2114 "cannot set name of output/set dimension",
2133 "cannot set name of output/set dimension",
2159 "cannot only set id of input tuple",
goto error);
2185 if (eq->n_eq == 0) {
2202 for (i = 0; i < eq->n_eq; ++i) {
2204 if (j < 0 || j == 0 || j >= o_div)
2272 int rational,
void *
user)
2287 "rational sets not supported",
goto error);
2364 int rational,
void *
user)
2547 if (isl_aff_check_range(
aff,
type, first,
n) < 0)
2555 for (i = 0; i <
n; ++i)
2556 if (active[first + i]) {
2588 "cannot drop output/set dimension",
2636 aff = isl_aff_drop_domain(
aff, 0,
n);
2664 "cannot insert output/set dimensions",
2724 "cannot move output/set dimension",
2736 if (dst_type == src_type)
2738 "moving dims within the same type not supported",
2744 if (src_off < 0 || dst_off < 0)
2747 g_src_pos = 1 + src_off + src_pos;
2748 g_dst_pos = 1 + dst_off + dst_pos;
2749 if (dst_type > src_type)
2754 src_type, src_pos,
n);
2776#define isl_aff_involves_nan isl_aff_is_nan
2779#define PW isl_pw_aff
2783#define EL_IS_ZERO is_empty
2787#define IS_ZERO is_empty
2790#undef DEFAULT_IS_ZERO
2791#define DEFAULT_IS_ZERO 0
2832 isl_pw_aff_align_params_bin(&pwaff1, &pwaff2);
2833 return isl_pw_aff_union_opt_cmp(pwaff1, pwaff2, &
isl_aff_ge_set);
2845 isl_pw_aff_align_params_bin(&pwaff1, &pwaff2);
2846 return isl_pw_aff_union_opt_cmp(pwaff1, pwaff2, &
isl_aff_le_set);
2866#define TYPE isl_pw_aff
2879 int complement,
void *
user)
2889 for (i = 0; i < pwaff->n; ++i) {
2968 int rational,
void *
user)
2976 "rational binding not supported",
goto error);
3039 isl_pw_aff_align_params_bin(&pwaff1, &pwaff2);
3049 isl_pw_aff_align_params_bin(&pwaff1, &pwaff2);
3059 isl_pw_aff_align_params_bin(&pwaff1, &pwaff2);
3094 isl_pw_aff_align_params_bin(&pa1, &pa2);
3102 set = order(pa1, pa2);
3168 if (!list1 || !list2)
3171 ctx = isl_pw_aff_list_get_ctx(list1);
3172 if (list1->n < 1 || list2->n < 1)
3174 "list should contain at least one element",
goto error);
3177 for (i = 0; i < list1->n; ++i)
3178 for (j = 0; j < list2->n; ++j) {
3186 isl_pw_aff_list_free(list1);
3187 isl_pw_aff_list_free(list2);
3190 isl_pw_aff_list_free(list1);
3191 isl_pw_aff_list_free(list2);
3248 isl_pw_aff_align_params_bin(&pwaff1, &pwaff2);
3264 "factor needs to be positive",
3266 pwaff = isl_pw_aff_cow(pwaff);
3272 for (i = 0; i < pwaff->n; ++i) {
3274 if (!pwaff->p[i].aff)
3320 isl_set *cond_true, *cond_false;
3352 cond_false, pwaff_false);
3380 for (i = 0; i < pwaff->n; ++i) {
3382 if (is_cst < 0 || !is_cst)
3415 "at least one affine expression should be constant",
3461 "second argument should be a constant",
goto error);
3493 isl_pw_aff_align_params_bin(&pwaff1, &pwaff2);
3494 return isl_pw_aff_on_shared_domain(pwaff1, pwaff2, &
isl_aff_add);
3500 isl_pw_aff_align_params_bin(&pwaff1, &pwaff2);
3501 return isl_pw_aff_on_shared_domain(pwaff1, pwaff2, &
isl_aff_mul);
3516 "second argument should be a piecewise constant",
3518 isl_pw_aff_align_params_bin(&pa1, &pa2);
3519 return isl_pw_aff_on_shared_domain(pa1, pa2, &
isl_aff_div);
3547 "second argument should be a piecewise constant",
3582 "second argument should be a piecewise constant",
3602 if (has_nan < 0 || has_nan)
3681 isl_pw_aff_align_params_bin(&pa1, &pa2);
3734 for (i = 1; i <
n; ++i) {
3741 isl_pw_aff_list_free(list);
3754 pa1 = isl_pw_aff_list_get_at(list, pos1);
3755 pa2 = isl_pw_aff_list_get_at(list, pos2);
3797 n = isl_pw_aff_list_size(list);
3802 "list should contain at least one element",
goto error);
3810 pa = isl_pw_aff_list_get_at(list, 0);
3815 for (i = 0; i <
n; ++i) {
3816 pa = isl_pw_aff_list_get_at(list, i);
3817 for (j = 0; j <
n; ++j) {
3823 dom =
less(list, j, i);
3825 dom =
less(list, i, j);
3832 isl_pw_aff_list_free(list);
3835 isl_pw_aff_list_free(list);
3863 pwaff = isl_pw_aff_cow(pwaff);
3869 for (i = 0; i < pwaff->n; ++i) {
3871 if (!pwaff->p[i].set)
3891 for (i = 0; i <
n; ++i) {
3894 pa = isl_pw_aff_list_get_pw_aff(list, i);
3896 list = isl_pw_aff_list_set_pw_aff(list, i, pa);
3939 "parameters don't match",
goto error);
3946 "domains don't match",
goto error);
3965 space = isl_multi_aff_get_space(
ma);
3966 isl_multi_aff_free(
ma);
4003#define DOMBASE basic_set
4027 if (n_row < 0 || n_col < 0 || n_out < 0 ||
total < 0)
4031 "insufficient number of rows",
goto error);
4034 "insufficient number of columns",
goto error);
4035 if (1 + n_out != n_row || 2 +
total != n_row + n_col)
4037 "dimension mismatch",
goto error);
4043 for (i = 0; i < n_row - 1; ++i) {
4054 ma = isl_multi_aff_set_aff(
ma, i,
aff);
4065 isl_multi_aff_free(
ma);
4079 n = isl_multi_aff_size(
ma);
4084 mv = isl_multi_val_zero(space);
4086 for (i = 0; i <
n; ++i) {
4090 aff = isl_multi_aff_get_at(
ma, i);
4093 mv = isl_multi_val_set_at(mv, i,
val);
4111 if (!
ma->space->nested[0])
4114 space = isl_multi_aff_get_space(
ma);
4116 ma = isl_multi_aff_reset_space(
ma, space);
4135 "not a map space",
goto error);
4150 for (i = 0; i < n_in; ++i) {
4155 ma = isl_multi_aff_set_aff(
ma, i,
aff);
4187 "not a map space",
goto error);
4191 if (n_in < 0 || n_out < 0)
4203 for (i = 0; i < n_out; ++i) {
4208 ma = isl_multi_aff_set_aff(
ma, i,
aff);
4267 unsigned first,
unsigned n)
4278 "expecting set space",
goto error);
4281 "only set dimensions can be projected out",
goto error);
4293 return isl_multi_aff_alloc(space);
4299 for (i = 0; i < first; ++i) {
4304 ma = isl_multi_aff_set_aff(
ma, i,
aff);
4307 for (i = 0; i < dim - (first +
n); ++i) {
4312 ma = isl_multi_aff_set_aff(
ma, first + i,
aff);
4327 unsigned first,
unsigned n)
4361 ma = isl_multi_aff_identity_on_domain_space(space);
4383 n = isl_multi_aff_size(maff);
4387 for (i = 0; i <
n; ++i) {
4390 aff = isl_multi_aff_take_at(maff, i);
4393 maff = isl_multi_aff_restore_at(maff, i,
aff);
4400 isl_multi_aff_free(maff);
4410 n = isl_multi_aff_size(maff);
4412 return isl_multi_aff_free(maff);
4414 for (i = 0; i <
n; ++i) {
4417 aff = isl_multi_aff_take_at(maff, i);
4419 maff = isl_multi_aff_restore_at(maff, i,
aff);
4428 maff1 = isl_multi_aff_add(maff1, maff2);
4471 space = isl_multi_aff_get_domain_space(
ma1);
4473 isl_multi_aff_free(
ma1);
4474 isl_multi_aff_free(ma2);
4492 aff1 = isl_multi_aff_get_at(
ma1, i);
4493 aff2 = isl_multi_aff_get_at(ma2, i);
4494 return cmp(aff1, aff2);
4519 if (isl_multi_aff_check_equal_space(
ma1, ma2) < 0)
4521 n = isl_multi_aff_size(
ma1);
4527 space = isl_multi_aff_get_domain_space(
ma1);
4531 for (i = 0; i + 1 <
n; ++i) {
4542 if (empty >= 0 && empty)
4550 isl_multi_aff_free(
ma1);
4551 isl_multi_aff_free(ma2);
4556 isl_multi_aff_free(
ma1);
4557 isl_multi_aff_free(ma2);
4579#define isl_multi_aff_zero_in_space isl_multi_aff_zero
4582#define PW isl_pw_multi_aff
4584#define BASE multi_aff
4586#define EL_IS_ZERO is_empty
4590#define IS_ZERO is_empty
4593#undef DEFAULT_IS_ZERO
4594#define DEFAULT_IS_ZERO 0
4614#define BASE pw_multi_aff
4622#define BASE multi_aff
4641 if (check_space(
pma) < 0)
4644 space = isl_pw_multi_aff_take_space(
pma);
4645 space = space_factor(space);
4647 for (i = 0;
pma && i <
pma->n; ++i) {
4650 ma = isl_pw_multi_aff_take_base_at(
pma, i);
4651 ma = multi_aff_factor(
ma);
4652 pma = isl_pw_multi_aff_restore_base_at(
pma, i,
ma);
4655 pma = isl_pw_multi_aff_restore_space(
pma, space);
4691 &isl_multi_aff_range_factor_domain);
4701 &isl_multi_aff_range_factor_range);
4714 isl_pw_multi_aff_align_params_bin(&pma1, &pma2);
4715 return isl_pw_multi_aff_union_opt_cmp(pma1, pma2,
4729 isl_pw_multi_aff_align_params_bin(&pma1, &pma2);
4730 return isl_pw_multi_aff_union_opt_cmp(pma1, pma2,
4737 isl_pw_multi_aff_align_params_bin(&pma1, &pma2);
4738 return isl_pw_multi_aff_on_shared_domain(pma1, pma2,
4739 &isl_multi_aff_add);
4747 isl_pw_multi_aff_align_params_bin(&pma1, &pma2);
4748 return isl_pw_multi_aff_on_shared_domain(pma1, pma2,
4749 &isl_multi_aff_sub);
4762 if (isl_pw_multi_aff_align_params_bin(&pma1, &pma2) < 0)
4765 n = pma1->n * pma2->n;
4768 res = isl_pw_multi_aff_alloc_size(space,
n);
4770 for (i = 0; i < pma1->n; ++i) {
4771 for (j = 0; j < pma2->n; ++j) {
4777 ma = isl_multi_aff_product(
4778 isl_multi_aff_copy(pma1->p[i].maff),
4779 isl_multi_aff_copy(pma2->p[j].maff));
4812 for (i = first; i <
n; ++i) {
4817 aff_i = isl_multi_aff_get_aff(
ma, i);
4917 if (n_out < 0 || n_div < 0)
4922 bmap->eq[eq] + o_out + n_out, n_div);
4926 bmap->eq[eq] + o_out + n_out, n_div);
4932 bmap->eq[eq][o_out +
pos]);
4939 bmap->ineq[ineq] + o_out + n_out, n_div);
4942 bmap->ineq[ineq] + o_out, ctx->
negone);
4945 bmap->eq[eq][o_out + n_out + div]);
4980 if (eq >= bmap->n_eq)
4982 "unable to find suitable equality",
return NULL);
5007 ma = isl_multi_aff_free(
ma);
5009 for (i = 0; i < n_out; ++i) {
5013 ma = isl_multi_aff_set_aff(
ma, i,
aff);
5080 "map is not single-valued",
goto error);
5087 for (i = 0; i <
map->n; ++i) {
5154 if (n_in < 0 ||
n < 0)
5172 ma = isl_multi_aff_range_product(
ma,
5266 if (dim < 0 ||
total < 0)
5272 for (d = 0; d < dim; ++d) {
5273 for (i = 0; i <
n; ++i) {
5277 for (j = i + 1; j <
n; ++j) {
5327 unsigned n_in,
unsigned n_out,
int is_set)
5340 ma = isl_multi_aff_alloc(space);
5341 ma = isl_multi_aff_set_aff(
ma, d,
aff);
5343 for (i = 0; i < n_out; ++i) {
5348 ma = isl_multi_aff_set_aff(
ma, i,
aff);
5433 if (n_in < 0 || n_out < 0)
5442 ma = isl_multi_aff_identity(space);
5510 if (n_div < 0 || n_out < 0)
5523 for (i = 0; i < n_out; ++i) {
5524 for (j = 0; j <
hull->n_eq; ++j) {
5534 n_out - (i + 1)) != -1)
5759 aff->v->size, subs->v->size, v);
5775 n = isl_multi_aff_size(maff);
5777 return isl_multi_aff_free(maff);
5782 for (i = 0; i <
n; ++i) {
5785 aff = isl_multi_aff_take_at(maff, i);
5787 maff = isl_multi_aff_restore_at(maff, i,
aff);
5821 n =
pma->n * subs->n;
5824 for (i = 0; i <
pma->n; ++i) {
5825 for (j = 0; j < subs->n; ++j) {
5834 pos, subs->p[j].aff);
5836 if (empty < 0 || empty) {
5844 isl_multi_aff_copy(
pma->p[i].maff),
5847 res = isl_pw_multi_aff_add_piece(
res, common, res_ij);
5897 int n_div_ma,
int n_div_bmap,
5907 if (n_param < 0 || n_in < 0 || n_out < 0)
5910 isl_seq_cpy(dst, src, has_denom + 1 + n_param + n_before);
5911 o_dst = o_src = has_denom + 1 + n_param + n_before;
5920 isl_seq_cpy(dst + o_dst, src + o_src, n_div_bmap);
5924 for (i = 0; i < n_out; ++i) {
5925 int offset = has_denom + 1 + n_param + n_before + i;
5939 c2,
ma->u.p[i]->v->el + o_src, 1 + n_param);
5940 o_dst += 1 + n_param;
5941 o_src += 1 + n_param;
5945 c2,
ma->u.p[i]->v->el + o_src, n_in);
5951 c2,
ma->u.p[i]->v->el + o_src, n_div_ma);
5995 if (n_div_aff < 0 || n_div_ma < 0)
6010 n_div_ma, n_div_aff,
f,
c1,
c2, g, 1) < 0)
6019 isl_multi_aff_free(
ma);
6024 isl_multi_aff_free(
ma);
6055 isl_multi_aff_align_params_bin(&
ma1, &ma2);
6057 n = isl_multi_aff_size(
ma1);
6062 isl_multi_aff_get_space(
ma1));
6064 for (i = 0; i <
n; ++i) {
6067 aff = isl_multi_aff_take_at(
ma1, i);
6069 ma1 = isl_multi_aff_restore_at(
ma1, i,
aff);
6072 ma1 = isl_multi_aff_reset_space(
ma1, space);
6073 isl_multi_aff_free(ma2);
6077 isl_multi_aff_free(ma2);
6078 isl_multi_aff_free(
ma1);
6107 "spaces don't match",
goto error);
6114 if (
equal < 0 || src_n_div < 0 || dst_n_div < 0)
6121 if (!exp1 || (dst_n_div && !exp2))
6146 n = isl_multi_aff_size(maff);
6148 return isl_multi_aff_free(maff);
6152 aff_0 = isl_multi_aff_take_at(maff, 0);
6153 for (i = 1; i <
n; ++i) {
6156 aff_i = isl_multi_aff_peek_at(maff, i);
6159 maff = isl_multi_aff_restore_at(maff, 0, aff_0);
6161 aff_0 = isl_multi_aff_peek_at(maff, 0);
6162 for (i = 1; i <
n; ++i) {
6165 aff_i = isl_multi_aff_take_at(maff, i);
6167 maff = isl_multi_aff_restore_at(maff, i, aff_i);
6202 n = isl_multi_aff_size(maff);
6204 return isl_multi_aff_free(maff);
6208 isl_space *space = isl_multi_aff_get_domain_space(maff);
6211 return isl_multi_aff_free(maff);
6218 aff = isl_multi_aff_peek_at(maff, 0);
6221 return isl_multi_aff_free(maff);
6222 space = isl_multi_aff_get_space(maff);
6225 isl_multi_aff_get_space(maff));
6226 maff = isl_multi_aff_restore_space(maff, space);
6229 aff = isl_multi_aff_peek_at(maff, 0);
6232 return isl_multi_aff_free(maff);
6235 for (i = 0; i <
n; ++i) {
6236 aff = isl_multi_aff_take_at(maff, i);
6238 maff = isl_multi_aff_restore_at(maff, i,
aff);
6245#define TYPE isl_pw_multi_aff
6268 pos + 1, n_out -
pos - 1);
6272 for (i = 0; i <
pma->n; ++i) {
6274 aff = isl_multi_aff_get_aff(
pma->p[i].maff,
pos);
6300 ma = isl_multi_aff_zero(space);
6389 if (!upma1 || !
upma2)
6393 data.
res = isl_union_pw_multi_aff_alloc_same_size(upma1);
6416 isl_pw_multi_aff_align_params_bin(&pma1, &pma2);
6419 return isl_pw_multi_aff_on_shared_domain_in(pma1, pma2, space,
6420 &isl_multi_aff_range_product);
6431 isl_pw_multi_aff_align_params_bin(&pma1, &pma2);
6435 return isl_pw_multi_aff_on_shared_domain_in(pma1, pma2, space,
6436 &isl_multi_aff_flat_range_product);
6452 space1 = isl_pw_multi_aff_peek_space(data->
pma);
6453 space2 = isl_pw_multi_aff_peek_space(pma2);
6527 "domains don't match",
goto error);
6534 for (i = 0; i <
pma->n; ++i) {
6535 for (j = 0; j < pa->n; ++j) {
6543 if (empty < 0 || empty) {
6550 res_ij = isl_multi_aff_set_aff(
6551 isl_multi_aff_copy(
pma->p[i].maff),
pos,
6556 res = isl_pw_multi_aff_add_piece(
res, common, res_ij);
6580 if (equal_params < 0)
6633 "parameters don't match",
goto error);
6640 "domains don't match",
goto error);
6702 n = isl_multi_pw_aff_size(mpa);
6704 mpa = isl_multi_pw_aff_free(mpa);
6705 ma = isl_multi_aff_alloc(isl_multi_pw_aff_get_space(mpa));
6706 for (i = 0; i <
n; ++i) {
6710 ma = isl_multi_aff_set_aff(
ma, i,
aff);
6712 isl_multi_pw_aff_free(mpa);
6724 if (!isl_multi_pw_aff_has_explicit_domain(mpa))
6750 if (!isl_multi_pw_aff_has_explicit_domain(mpa))
6800#define TYPE isl_pw_multi_aff
6813 if (isl_pw_multi_aff_check_match_range_multi_val(
pma, mv) < 0)
6820 for (i = 0; i <
n; ++i) {
6823 ma = isl_pw_multi_aff_take_base_at(
pma, i);
6824 ma =
fn(
ma, isl_multi_val_copy(mv));
6825 pma = isl_pw_multi_aff_restore_base_at(
pma, i,
ma);
6828 isl_multi_val_free(mv);
6831 isl_multi_val_free(mv);
6842 &isl_multi_aff_scale_multi_val);
6851 &isl_multi_aff_scale_down_multi_val);
6865 equal = isl_pw_multi_aff_match_range_multi_val(
pma, mv);
6883 struct isl_union_pw_multi_aff_transform_control control = {
6889 isl_multi_val_get_space(mv));
6890 mv = isl_multi_val_align_params(mv,
6895 return isl_union_pw_multi_aff_transform(upma, &control);
6897 isl_multi_val_free(mv);
6900 isl_multi_val_free(mv);
6928 pma = isl_pw_multi_aff_alloc_size(space, pa->n);
6930 for (i = 0; i < pa->n; ++i) {
6958 space = isl_multi_pw_aff_get_space(mpa);
6959 dom = isl_multi_pw_aff_get_explicit_domain(mpa);
6960 isl_multi_pw_aff_free(mpa);
6962 ma = isl_multi_aff_zero(space);
6984 space = isl_multi_pw_aff_get_space(mpa);
6985 pa = isl_multi_pw_aff_get_pw_aff(mpa, 0);
6988 for (i = 1; i < mpa->n; ++i) {
6991 pa = isl_multi_pw_aff_get_pw_aff(mpa, i);
6998 isl_multi_pw_aff_free(mpa);
7022 ma = isl_multi_aff_free(
ma);
7026 mpa = isl_multi_pw_aff_alloc(isl_multi_aff_get_space(
ma));
7028 for (i = 0; i <
n; ++i) {
7032 mpa = isl_multi_pw_aff_set_pw_aff(mpa, i, pa);
7035 isl_multi_aff_free(
ma);
7067 mpa = isl_multi_pw_aff_alloc(space);
7069 for (i = 0; i <
n; ++i) {
7073 mpa = isl_multi_pw_aff_set_pw_aff(mpa, i, pa);
7075 if (isl_multi_pw_aff_has_explicit_domain(mpa)) {
7149 if (equal_params < 0)
7151 if (!equal_params) {
7156 mpa1 = isl_multi_pw_aff_copy(mpa1);
7157 mpa2 = isl_multi_pw_aff_copy(mpa2);
7158 mpa1 = isl_multi_pw_aff_align_params(mpa1,
7159 isl_multi_pw_aff_get_space(mpa2));
7160 mpa2 = isl_multi_pw_aff_align_params(mpa2,
7161 isl_multi_pw_aff_get_space(mpa1));
7163 isl_multi_pw_aff_free(mpa1);
7164 isl_multi_pw_aff_free(mpa2);
7172 for (i = 0; i < mpa1->n; ++i) {
7204 if (has_nan >= 0 && !has_nan)
7206 if (has_nan < 0 || has_nan)
7219#define BASE multi_aff
7224#define BASE pw_multi_aff
7250 n_mpa_in = isl_multi_pw_aff_dim(mpa,
isl_dim_in);
7251 if (n_in < 0 || n_div < 0 || n_mpa_in < 0)
7262 for (i = 0; i < n_in; ++i) {
7268 pa_i = isl_multi_pw_aff_get_pw_aff(mpa, i);
7273 for (i = 0; i < n_div; ++i) {
7281 isl_multi_pw_aff_copy(mpa), div);
7288 isl_multi_pw_aff_free(mpa);
7293 isl_multi_pw_aff_free(mpa);
7310 if (equal_params < 0)
7321 isl_multi_pw_aff_free(mpa);
7348 for (i = 0; i < pa->n; ++i) {
7353 isl_multi_pw_aff_copy(mpa),
7357 isl_multi_pw_aff_copy(mpa));
7363 isl_multi_pw_aff_free(mpa);
7367 isl_multi_pw_aff_free(mpa);
7383 if (equal_params < 0)
7394 isl_multi_pw_aff_free(mpa);
7410#define BASE multi_pw_aff
7428 mpa1 = isl_multi_pw_aff_align_params(mpa1,
7429 isl_multi_pw_aff_get_space(mpa2));
7430 mpa2 = isl_multi_pw_aff_align_params(mpa2,
7431 isl_multi_pw_aff_get_space(mpa1));
7440 "range spaces don't match",
goto error);
7445 res = order(mpa1, mpa2, space1);
7446 isl_multi_pw_aff_free(mpa1);
7447 isl_multi_pw_aff_free(mpa2);
7450 isl_multi_pw_aff_free(mpa1);
7451 isl_multi_pw_aff_free(mpa2);
7475 for (i = 0; i <
n; ++i) {
7479 pa1 = isl_multi_pw_aff_get_pw_aff(mpa1, i);
7480 pa2 = isl_multi_pw_aff_get_pw_aff(mpa2, i);
7552 for (i = 0; i <
n; ++i) {
7559 pa1 = isl_multi_pw_aff_get_pw_aff(mpa1, i);
7560 pa2 = isl_multi_pw_aff_get_pw_aff(mpa2, i);
7561 map = last ? base(pa1, pa2) : strict_base(pa1, pa2);
7568 pa1 = isl_multi_pw_aff_get_pw_aff(mpa1, i);
7569 pa2 = isl_multi_pw_aff_get_pw_aff(mpa2, i);
7581#define STRICT_ORDER lt
7587#define STRICT_ORDER lt
7593#define STRICT_ORDER gt
7599#define STRICT_ORDER gt
7630 return last1 - last2;
7632 return isl_seq_cmp(aff1->v->el, aff2->v->el, aff1->v->size);
7661 if (pa1->n != pa2->n)
7662 return pa1->n - pa2->n;
7664 for (i = 0; i < pa1->n; ++i) {
7741 if (!space ||
n < 0)
7744 space2 = isl_multi_val_get_space(mv);
7750 for (i = 0; i <
n; ++i) {
7754 v = isl_multi_val_get_val(mv, i);
7756 ma = isl_multi_aff_set_aff(
ma, i,
aff);
7760 isl_multi_val_free(mv);
7764 isl_multi_val_free(mv);
7830 mv = isl_multi_val_copy(data->
mv);
7853 isl_multi_val_free(
mv);
7903#define TYPE isl_pw_multi_aff
7925 pma1_space = isl_pw_multi_aff_peek_space(pma1);
7926 pma2_space = isl_pw_multi_aff_peek_space(pma2);
7939 pma2 = isl_pw_multi_aff_copy_tuple_id(pma2,
isl_dim_in,
7941 pma2 = isl_pw_multi_aff_copy_tuple_id(pma2,
isl_dim_out,
7965 pma1_space = isl_pw_multi_aff_peek_space(data->
pma);
7966 pma2_space = isl_pw_multi_aff_peek_space(pma2);
8032 "parameters don't match",
goto error);
8127 return isl_union_pw_aff_transform_inplace(upa, &
floor_entry, NULL);
8146 "expecting integer modulo",
goto error);
8149 "expecting positive modulo",
goto error);
8185 if (data->
pos >= n_out) {
8212 "cannot extract at negative position",
return NULL);
8323 pa_space = isl_pw_aff_peek_space(
pa);
8329 "expecting parametric expression",
goto error);
8334 if (equal_params >= 0 && !equal_params) {
8345 if (equal_params < 0)
8584 data.
res = isl_union_pw_aff_alloc_same_size(upa);
8598#define BASE union_pw_aff
8600#define DOMBASE union_set
8637 if (!isl_multi_union_pw_aff_has_explicit_domain(
mupa))
8640 if (is_params < 0 || !is_params)
8669 "expecting proper set space",
goto error);
8672 "expecting set space",
goto error);
8678 "expecting 0D space",
goto error);
8680 return isl_multi_union_pw_aff_alloc(space);
8725 mpa = isl_multi_pw_aff_free(mpa);
8729 space = isl_multi_pw_aff_get_space(mpa);
8731 mupa = isl_multi_union_pw_aff_alloc(space);
8733 for (i = 0; i <
n; ++i) {
8737 pa = isl_multi_pw_aff_get_pw_aff(mpa, i);
8739 mupa = isl_multi_union_pw_aff_restore_check_space(
mupa, i, upa);
8741 if (isl_multi_union_pw_aff_has_explicit_domain(
mupa)) {
8745 copy = isl_multi_pw_aff_copy(mpa);
8750 isl_multi_pw_aff_free(mpa);
8810 "cannot extract range space from empty input",
8822 mupa = isl_multi_union_pw_aff_alloc(space);
8824 for (i = 0; i <
n; ++i) {
8828 mupa = isl_multi_union_pw_aff_set_union_pw_aff(
mupa, i, upa);
8830 if (isl_multi_union_pw_aff_has_explicit_domain(
mupa)) {
8904 space = isl_multi_val_get_space(mv);
8905 mupa = isl_multi_union_pw_aff_alloc(space);
8906 for (i = 0; i <
n; ++i) {
8910 v = isl_multi_val_get_val(mv, i);
8913 mupa = isl_multi_union_pw_aff_set_union_pw_aff(
mupa, i, upa);
8915 if (isl_multi_union_pw_aff_has_explicit_domain(
mupa))
8920 isl_multi_val_free(mv);
8924 isl_multi_val_free(mv);
8939 if (equal_params < 0)
8945 isl_multi_val_get_space(mv));
8950 isl_multi_val_free(mv);
8987 mupa = isl_multi_union_pw_aff_alloc(space);
8988 for (i = 0; i <
n; ++i) {
8995 mupa = isl_multi_union_pw_aff_set_union_pw_aff(
mupa, i, upa);
8997 if (isl_multi_union_pw_aff_has_explicit_domain(
mupa))
9020 space = isl_pw_multi_aff_peek_space(
pma);
9022 if (equal_params < 0)
9054 mupa = isl_multi_union_pw_aff_free(
mupa);
9061 upa = isl_multi_union_pw_aff_get_union_pw_aff(
mupa, 0);
9064 for (i = 1; i <
n; ++i) {
9067 upa = isl_multi_union_pw_aff_get_union_pw_aff(
mupa, i);
9073 isl_multi_union_pw_aff_free(
mupa);
9092 space = isl_multi_union_pw_aff_get_space(
mupa);
9101 "cannot create union map from expression without "
9102 "explicit domain elements",
9127 mupa = isl_multi_union_pw_aff_free(
mupa);
9134 upa = isl_multi_union_pw_aff_get_union_pw_aff(
mupa, 0);
9137 for (i = 1; i <
n; ++i) {
9140 upa = isl_multi_union_pw_aff_get_union_pw_aff(
mupa, i);
9145 space = isl_multi_union_pw_aff_get_space(
mupa);
9148 isl_multi_union_pw_aff_free(
mupa);
9223 space = isl_multi_union_pw_aff_get_space(
mupa);
9224 mv = isl_multi_val_zero(space);
9248 mupa = isl_multi_union_pw_aff_free(
mupa);
9255 space = isl_multi_union_pw_aff_get_space(
mupa);
9256 upa = isl_multi_union_pw_aff_get_union_pw_aff(
mupa, 0);
9259 for (i = 1; i <
n; ++i) {
9262 upa = isl_multi_union_pw_aff_get_union_pw_aff(
mupa, i);
9269 isl_multi_union_pw_aff_free(
mupa);
9312 "space don't match",
goto error);
9317 isl_multi_union_pw_aff_copy(
mupa));
9324 isl_multi_union_pw_aff_free(
mupa);
9342 dom = isl_multi_union_pw_aff_get_explicit_domain(
mupa);
9343 isl_multi_union_pw_aff_free(
mupa);
9362 mupa = isl_multi_union_pw_aff_free(
mupa);
9369 upa = isl_multi_union_pw_aff_get_union_pw_aff(
mupa, 0);
9371 for (i = 1; i <
n; ++i) {
9374 upa = isl_multi_union_pw_aff_get_union_pw_aff(
mupa, i);
9379 isl_multi_union_pw_aff_free(
mupa);
9407 if (n_in < 0 || n_div < 0)
9417 for (i = 0; i < n_in; ++i) {
9423 upa_i = isl_multi_union_pw_aff_get_union_pw_aff(
mupa, i);
9428 for (i = 0; i < n_div; ++i) {
9436 isl_multi_union_pw_aff_copy(
mupa), div);
9443 isl_multi_union_pw_aff_free(
mupa);
9448 isl_multi_union_pw_aff_free(
mupa);
9468 mupa = isl_multi_union_pw_aff_align_params(
mupa,
9474 space1 = isl_multi_union_pw_aff_get_space(
mupa);
9483 "spaces don't match",
goto error);
9489 "cannot determine domains",
goto error);
9493 isl_multi_union_pw_aff_free(
mupa);
9510 ma = isl_multi_aff_project_domain_on_params(
ma);
9528 mupa = isl_multi_union_pw_aff_align_params(
mupa,
9529 isl_multi_aff_get_space(
ma));
9530 ma = isl_multi_aff_align_params(
ma,
9531 isl_multi_union_pw_aff_get_space(
mupa));
9534 if (!
mupa || n_in < 0 || n_out < 0)
9537 space1 = isl_multi_union_pw_aff_get_space(
mupa);
9538 space2 = isl_multi_aff_get_domain_space(
ma);
9546 "spaces don't match",
goto error);
9551 res = isl_multi_union_pw_aff_alloc(space1);
9553 for (i = 0; i < n_out; ++i) {
9557 aff = isl_multi_aff_get_aff(
ma, i);
9559 isl_multi_union_pw_aff_copy(
mupa),
aff);
9560 res = isl_multi_union_pw_aff_set_union_pw_aff(
res, i, upa);
9563 isl_multi_aff_free(
ma);
9564 isl_multi_union_pw_aff_free(
mupa);
9567 isl_multi_union_pw_aff_free(
mupa);
9568 isl_multi_aff_free(
ma);
9603 mupa = isl_multi_union_pw_aff_align_params(
mupa,
9606 isl_multi_union_pw_aff_get_space(
mupa));
9610 space = isl_multi_union_pw_aff_get_space(
mupa);
9619 "spaces don't match",
goto error);
9629 for (i = 0; i < pa->n; ++i) {
9635 mupa_i = isl_multi_union_pw_aff_copy(
mupa);
9643 isl_multi_union_pw_aff_free(
mupa);
9647 isl_multi_union_pw_aff_free(
mupa);
9684 mupa = isl_multi_union_pw_aff_align_params(
mupa,
9687 isl_multi_union_pw_aff_get_space(
mupa));
9691 space1 = isl_multi_union_pw_aff_get_space(
mupa);
9700 "spaces don't match",
goto error);
9703 if (n_in < 0 || n_out < 0)
9709 res = isl_multi_union_pw_aff_alloc(space1);
9711 for (i = 0; i < n_out; ++i) {
9717 isl_multi_union_pw_aff_copy(
mupa), pa);
9718 res = isl_multi_union_pw_aff_set_union_pw_aff(
res, i, upa);
9722 isl_multi_union_pw_aff_free(
mupa);
9725 isl_multi_union_pw_aff_free(
mupa);
9740 if (isl_multi_union_pw_aff_check_has_explicit_domain(
mupa) < 0)
9741 return isl_multi_union_pw_aff_free(
mupa);
9743 mupa = isl_multi_union_pw_aff_cow(
mupa);
9749 return isl_multi_union_pw_aff_free(
mupa);
9759 return isl_multi_union_pw_aff_free(
mupa);
9780 mupa = isl_multi_union_pw_aff_align_params(
mupa,
9783 isl_multi_union_pw_aff_get_space(
mupa));
9784 mupa = isl_multi_union_pw_aff_cow(
mupa);
9789 for (i = 0; i <
n; ++i) {
9792 upa = isl_multi_union_pw_aff_get_union_pw_aff(
mupa, i);
9795 mupa = isl_multi_union_pw_aff_set_union_pw_aff(
mupa, i, upa);
9798 if (isl_multi_union_pw_aff_has_explicit_domain(
mupa))
9804 isl_multi_union_pw_aff_free(
mupa);
9824 if (
n < 0 || !space)
9827 space_mpa = isl_multi_union_pw_aff_get_space(
mupa);
9831 mpa = isl_multi_pw_aff_alloc(space_mpa);
9835 for (i = 0; i <
n; ++i) {
9839 upa = isl_multi_union_pw_aff_get_union_pw_aff(
mupa, i);
9842 mpa = isl_multi_pw_aff_set_pw_aff(mpa, i, pa);
9888 return control->
fn(
pma);
9904 struct isl_union_pw_multi_aff_transform_control t_control = {
9906 .filter_user = control,
9911 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_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_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_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_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_bool isl_pw_multi_aff_plain_is_equal(__isl_keep isl_pw_multi_aff *pma1, __isl_keep isl_pw_multi_aff *pma2)
__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_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_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_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_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_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_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_empty(__isl_take isl_space *space)
__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_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_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_bool isl_pw_aff_plain_is_equal(__isl_keep isl_pw_aff *pwaff1, __isl_keep isl_pw_aff *pwaff2)
__isl_export __isl_give isl_set * isl_pw_multi_aff_domain(__isl_take isl_pw_multi_aff *pma)
__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_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_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_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)
void GMPZAPI() neg(mp_int rop, mp_int op)
void GMPZAPI() gcd(mp_int rop, mp_int op1, mp_int op2)
int GMPQAPI() cmp(mp_rat op1, mp_rat 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)
__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)
static __isl_give isl_pw_multi_aff * pw_multi_aff_from_map_div(__isl_take isl_map *map, __isl_take isl_basic_map *hull, int d, int i)
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_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_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)
__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)
static int is_potential_div_constraint(isl_int *c, int offset, int d, int total)
__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)
__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)
static __isl_give isl_pw_multi_aff * pw_multi_aff_from_map_check_div(__isl_take isl_map *map)
__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_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_abs_lt(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_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_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)
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_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_is_neg(isl_int *p1, isl_int *p2, unsigned len)
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)
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_give isl_space * isl_space_extend_domain_with_range(__isl_take isl_space *space, __isl_take isl_space *model)
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)
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_size isl_map_dim(__isl_keep isl_map *map, enum isl_dim_type type)
__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)
struct isl_basic_set isl_basic_set
__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_give isl_space * isl_space_drop_all_params(__isl_take isl_space *space)
__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_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)
struct isl_union_set isl_union_set
__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_give isl_set * isl_union_set_params(__isl_take isl_union_set *uset)
__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_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)