67#define TYPE isl_basic_map
75 case isl_dim_out:
return 1 + space->nparam + space->n_in;
100 return map ?
map->dim : NULL;
241 return dim + bmap->n_div;
383 return bmap ? bmap->ctx : NULL;
388 return bset ? bset->ctx : NULL;
393 return map ?
map->ctx : NULL;
398 return set ?
set->ctx : NULL;
406 return bmap ? bmap->dim : NULL;
460 if (bmap->dim == space) {
493 cols = 1 + 1 + v_div + bmap->n_div;
498 for (i = 0; i < bmap->n_div; ++i)
551 for (i = 0; i < n_div; ++i) {
574 n_div, 0, 2 * n_div);
576 for (i = 0; i < n_div; ++i)
580 for (i = 0; i < n_div; ++i)
643 if (
map->dim == space) {
695 for (i = 0; i <
map->n; ++i) {
940 for (i = 0; i <
map->n; ++i) {
1085 if (nparam < 0 || d < 0 || n_div < 0)
1097 d - pos1 - 1) != -1)
1104 n_div - pos2 - 1) != -1)
1160 for (i = 1; i <
map->n; ++i) {
1166 if (rational != rational_i)
1168 "mixed rational and integer basic maps "
1213 if (bmap->n_eq ==
total) {
1215 for (i = 0; i < bmap->n_eq; ++i) {
1227 if (i == bmap->n_eq)
1232 return has_rational;
1244 for (i = 0; i <
map->n; ++i) {
1246 if (has_rational < 0 || has_rational)
1247 return has_rational;
1290 unsigned n_eq,
unsigned n_ineq)
1295 size_t row_size = 1 + n_var + extra;
1303 bmap->block =
isl_blk_alloc(ctx, (n_ineq + n_eq) * row_size);
1308 if ((n_ineq + n_eq) && !bmap->ineq)
1324 for (i = 0; i < n_ineq + n_eq; ++i)
1325 bmap->ineq[i] = bmap->block.data + i * row_size;
1327 for (i = 0; i < extra; ++i)
1328 bmap->div[i] = bmap->block2.data + i * (1 + row_size);
1332 bmap->c_size = n_eq + n_ineq;
1333 bmap->eq = bmap->ineq + n_ineq;
1334 bmap->extra = extra;
1338 bmap->sample = NULL;
1347 unsigned nparam,
unsigned dim,
unsigned extra,
1348 unsigned n_eq,
unsigned n_ineq)
1367 isl_assert(space->ctx, space->n_in == 0,
goto error);
1394 unsigned nparam,
unsigned in,
unsigned out,
unsigned extra,
1414 if (!dst ||
total < 0)
1417 for (i = 0; i < src->n_eq; ++i) {
1424 for (i = 0; i < src->n_ineq; ++i) {
1431 for (i = 0; i < src->n_div; ++i) {
1448 bmap->n_div, bmap->n_eq, bmap->n_ineq);
1452 dup->flags = bmap->flags;
1508 if (--bmap->ref > 0)
1530 return bmap->n_eq + bmap->n_ineq +
n <= bmap->c_size;
1544 "basic set should not have any parameters",
1560 "basic set should not have any local variables",
1571#define TYPE isl_basic_map
1641 isl_assert(ctx, (bmap->eq - bmap->ineq) + bmap->n_eq <= bmap->c_size,
1647 if ((bmap->eq - bmap->ineq) + bmap->n_eq == bmap->c_size) {
1653 bmap->ineq[j] = bmap->ineq[bmap->n_ineq - 1];
1654 bmap->ineq[bmap->n_ineq - 1] = bmap->eq[-1];
1662 bmap->extra - bmap->n_div);
1663 return bmap->n_eq++;
1678 "invalid number of equalities",
1701 isl_assert(bmap->ctx, pos < bmap->n_eq,
return -1);
1705 for (r =
pos; r < bmap->n_eq; ++r)
1706 bmap->eq[r] = bmap->eq[r + 1];
1707 bmap->eq[bmap->n_eq] =
t;
1724 t = bmap->ineq[
pos];
1725 bmap->ineq[
pos] = bmap->ineq[bmap->n_ineq - 1];
1726 bmap->ineq[bmap->n_ineq - 1] = bmap->eq[-1];
1739 return bmap->n_ineq +
n <= bmap->eq - bmap->ineq;
1757 bmap->extra - bmap->n_div);
1758 return bmap->n_ineq++;
1771 if (
n > bmap->n_ineq)
1773 "invalid number of inequalities",
1791 isl_assert(bmap->ctx, pos < bmap->n_ineq,
return -1);
1793 if (
pos != bmap->n_ineq - 1) {
1794 t = bmap->ineq[
pos];
1795 bmap->ineq[
pos] = bmap->ineq[bmap->n_ineq - 1];
1796 bmap->ineq[bmap->n_ineq - 1] =
t;
1876 isl_assert(bmap->ctx, bmap->n_div < bmap->extra,
return -1);
1878 bmap->extra - bmap->n_div);
1880 return bmap->n_div++;
1889#define TYPE isl_basic_map
1916 if (
total < 0 || !div)
1919 if (div->size != 1 + 1 +
total)
1932 for (i = k; i >
pos; --i)
1949 unsigned i_pos,
unsigned o_pos)
1952 unsigned o_in, o_out;
1958 if (!bmap1 || !space)
1968 if (
total < 0 || n_param < 0 || n_in < 0 || n_out < 0 || n_div < 0)
1985 unsigned extra,
unsigned n_eq,
unsigned n_ineq)
1995 dims_ok = base->extra >= base->n_div +
extra;
2001 extra += base->extra;
2012 flags = base->flags;
2057 if (bmap->ref > 1) {
2077 map->cached_simple_hull[0] = NULL;
2078 map->cached_simple_hull[1] = NULL;
2109 unsigned a_len,
unsigned b_len)
2125 if (n1 == 0 || n2 == 0)
2136 for (i = 0; i < bmap->n_eq; ++i)
2138 bmap->eq[i] +
pos, n1, n2);
2140 for (i = 0; i < bmap->n_ineq; ++i)
2142 bmap->ineq[i] +
pos, n1, n2);
2144 for (i = 0; i < bmap->n_div; ++i)
2146 bmap->div[i]+1 +
pos, n1, n2);
2177 if (
n < 0 || empty < 0)
2179 if (
n == 0 && empty)
2189 if (bmap->n_eq > 0) {
2202 bmap->sample = NULL;
2264 for (i = 0; i <
map->n; ++i) {
2286 bmap->div[
a] = bmap->div[
b];
2305 for (i = 0; i < bmap->n_eq; ++i)
2308 for (i = 0; i < bmap->n_ineq; ++i)
2311 for (i = 0; i < bmap->n_div; ++i)
2340 unsigned first,
unsigned n)
2345 if (first +
n == bmap->n_div)
2351 for (i = 0; i <
n; ++i)
2352 div[i] = bmap->div[first + i];
2353 for (i = 0; i < bmap->n_div - first -
n; ++i)
2354 bmap->div[first + i] = bmap->div[first +
n + i];
2355 for (i = 0; i <
n; ++i)
2356 bmap->div[bmap->n_div -
n + i] = div[i];
2389 unsigned first,
unsigned n)
2405 for (i = 0; i < bmap->n_eq; ++i)
2408 for (i = 0; i < bmap->n_ineq; ++i)
2411 for (i = 0; i < bmap->n_div; ++i)
2478 if (isl_map_check_range(
map,
type, first,
n) < 0)
2487 for (i = 0; i <
map->n; ++i) {
2534 if (isl_map_check_range(
map,
type, first,
n) < 0)
2541 for (i = 0; i <
map->n; ++i) {
2567 unsigned first,
unsigned n)
2606 for (i = 0; i <
map->n; ++i) {
2624 unsigned first,
unsigned n)
2644 unsigned first,
unsigned n)
2654 for (i = bmap->n_div - 1; i >= 0; --i) {
2660 if (involves < 0 || involves)
2721 for (j = 0; (lb || ub) && j < total + bmap->n_div; ++j) {
2724 bmap->div[div][1 + 1 + j]);
2729 bmap->div[div][1 + 1 + j]);
2742 for (j = 0; j < 1 +
total + bmap->n_div; ++j) {
2744 bmap->div[div][1 + j]);
2746 bmap->ineq[k][j], bmap->div[div][0]);
2754 for (j = 0; j < 1 +
total + bmap->n_div; ++j) {
2756 bmap->div[div][1 + j]);
2758 bmap->ineq[k][j], bmap->div[div][0]);
2818 int check_lb, check_ub;
2834 for (i = 0; (!check_lb || !check_ub) && i < bmap->n_ineq; ++i) {
2835 int s =
isl_int_sgn(bmap->ineq[i][1 + v_div + div]);
2842 if (!check_lb && !check_ub)
2847 for (i = 0; bmap && i < bmap->n_ineq; ++i) {
2852 check_lb, check_ub);
2873 for (i = bmap->n_div - 1; i >= 0; --i) {
2912 for (i = 0; i <
map->n; ++i) {
2946 for (i = 0; i < bmap->n_eq; ++i)
2949 for (i = 0; i < bmap->n_ineq; ++i)
2952 for (i = 0; i < bmap->n_div; ++i) {
2967 if (isl_map_check_range(
map,
type, first,
n) < 0)
2970 for (i = 0; i <
map->n; ++i) {
2973 if (involves < 0 || involves)
3042 for (i = bmap->n_eq - 1; i >= 0; --i) {
3049 for (i = bmap->n_ineq - 1; i >= 0; --i) {
3092 for (i = bmap->n_eq - 1; i >= 0; --i) {
3099 for (i = bmap->n_ineq - 1; i >= 0; --i) {
3163 if (isl_map_check_range(
map,
type, first,
n) < 0)
3170 for (i = 0; i <
map->n; ++i) {
3244 if (marked < 0 || marked)
3247 for (i = bmap->n_div - 1; i >= 0; --i) {
3253 if (known < 0 || !known)
3270 for (i = bmap->n_div - 1; i >= 0; --i) {
3303 for (i = 0; i <
map->n; ++i) {
3337 if (isl_map_check_range(
map,
type, first,
n) < 0)
3340 for (i = 0; i <
map->n; ++i) {
3362 unsigned first,
unsigned n)
3368 FILE *out,
int indent)
3373 fprintf(out,
"null basic set\n");
3377 fprintf(out,
"%*s", indent,
"");
3378 fprintf(out,
"ref: %d, nparam: %d, dim: %d, extra: %d, flags: %x\n",
3379 bset->ref, bset->dim->nparam, bset->dim->n_out,
3380 bset->extra, bset->flags);
3392 FILE *out,
int indent)
3397 fprintf(out,
"null basic map\n");
3401 fprintf(out,
"%*s", indent,
"");
3402 fprintf(out,
"ref: %d, nparam: %d, in: %d, out: %d, extra: %d, "
3403 "flags: %x, n_name: %d\n",
3405 bmap->dim->nparam, bmap->dim->n_in, bmap->dim->n_out,
3406 bmap->extra, bmap->flags, bmap->dim->n_id);
3425 if (
pos >= bmap->n_ineq)
3461 for (i = 0; i <
map->n; ++i) {
3523 fprintf(out,
"null set\n");
3527 fprintf(out,
"%*s", indent,
"");
3528 fprintf(out,
"ref: %d, n: %d, nparam: %d, dim: %d, flags: %x\n",
3531 for (i = 0; i <
set->n; ++i) {
3532 fprintf(out,
"%*s", indent,
"");
3533 fprintf(out,
"basic set %d:\n", i);
3543 fprintf(out,
"null map\n");
3547 fprintf(out,
"%*s", indent,
"");
3548 fprintf(out,
"ref: %d, n: %d, nparam: %d, in: %d, out: %d, "
3549 "flags: %x, n_name: %d\n",
3551 map->dim->n_out,
map->flags,
map->dim->n_id);
3552 for (i = 0; i <
map->n; ++i) {
3553 fprintf(out,
"%*s", indent,
"");
3554 fprintf(out,
"basic map %d:\n", i);
3596 bset->n_div, bset->n_eq, bset->n_ineq);
3649 bset->n_div, bset->n_eq, bset->n_ineq);
3669 if (
total < 0 || !vec)
3672 if (1 +
total != vec->size)
3677 for (i = 0; i < bmap->n_eq; ++i) {
3685 for (i = 0; i < bmap->n_ineq; ++i) {
3707 struct isl_vec *sample = NULL;
3709 isl_size dim1, dim2, nparam1, nparam2;
3719 if (dim1 < 0 || dim2 < 0 || nparam1 < 0 || nparam2 < 0)
3721 if (dim1 == nparam1 && dim2 != nparam2)
3724 if (dim2 != nparam2 &&
3737 if (bmap1->sample &&
3741 else if (bmap2->sample &&
3750 bmap2->n_div, bmap2->n_eq, bmap2->n_ineq);
3757 bmap1->sample = sample;
3814 "unexpectedly not convex or involving local variables",
3830 if (
map2->p[0]->n_eq +
map2->p[0]->n_ineq != 1)
3840 if (
map2->p[0]->n_eq == 1)
3844 map2->p[0]->ineq[0]);
3897 (
map1->p[0]->n_eq +
map1->p[0]->n_ineq == 1 ||
3898 map2->p[0]->n_eq +
map2->p[0]->n_ineq == 1))
3911 if (dim2 < 0 || nparam2 < 0)
3913 if (dim2 != nparam2)
3925 for (i = 0; i <
map1->n; ++i)
3926 for (j = 0; j <
map2->n; ++j) {
4003 if (n1 < 0 || n2 < 0)
4024 if (
offset < 0 || n1 < 0 || n2 < 0)
4054 unsigned pos,
unsigned n)
4069 if (is_empty < 0 ||
total < 0)
4104 bmap->n_div, bmap->n_eq, bmap->n_ineq);
4171 for (i = 0; i <
map->n; ++i) {
4239 if (dst_type == src_type && dst_pos == src_pos)
4242 isl_assert(bmap->ctx, dst_type != src_type,
goto error);
4244 if (
pos(bmap->dim, dst_type) + dst_pos ==
4245 pos(bmap->dim, src_type) + src_pos +
4246 ((src_type < dst_type) ?
n : 0)) {
4249 src_type, src_pos,
n);
4267 if (
t == dst_type) {
4275 dst_pos,
size - dst_pos, off);
4276 off +=
size - dst_pos;
4277 }
else if (
t == src_type) {
4282 src_pos +
n,
size - src_pos -
n, off);
4283 off +=
size - src_pos -
n;
4292 bmap->n_div, bmap->n_eq, bmap->n_ineq);
4296 src_type, src_pos,
n);
4317 src_type, src_pos,
n);
4329 dst_type, dst_pos, src_type, src_pos,
n));
4348 if (isl_map_check_range(
map, src_type, src_pos,
n))
4351 if (dst_type == src_type && dst_pos == src_pos)
4360 for (i = 0; i <
map->n; ++i) {
4363 src_type, src_pos,
n);
4370 src_type, src_pos,
n);
4415 first,
n,
total - bmap->n_div -
n);
4417 first +
n,
size - (first +
n), off);
4418 off +=
size - (first +
n);
4427 bmap->n_div, bmap->n_eq, bmap->n_ineq);
4453 old = bmap->block2.data;
4455 (bmap->extra +
n) * (1 + row_size));
4456 if (!bmap->block2.data)
4461 for (i = 0; i <
n; ++i) {
4462 new_div[i] = bmap->block2.data +
4463 (bmap->extra + i) * (1 + row_size);
4466 for (i = 0; i < bmap->extra; ++i)
4467 new_div[
n + i] = bmap->block2.data + (bmap->div[i] - old);
4469 bmap->div = new_div;
4485 unsigned first,
unsigned n)
4506 for (i = 0; i < first; ++i)
4508 for (i = first +
n; i <
dim -
n_div; ++i)
4534 "cannot project out existentially quantified variables",
4570 unsigned first,
unsigned n)
4588 if (isl_map_check_range(
map,
type, first,
n) < 0)
4595 for (i = 0; i <
map->n; ++i) {
4629 if (isl_map_check_range(
map,
type, first,
n) < 0 ||
dim < 0)
4688 "only set dimensions can be projected out",
goto error);
4694 for (i = 0; i <
n; ++i)
4712 for (i = 0; i <
n; ++i) {
4771 if (n_in < 0 || n_out < 0 ||
n < 0 || nparam < 0)
4777 total = nparam + n_in + n_out + bmap1->n_div + bmap2->n_div +
n;
4790 bmap1->n_div + bmap2->n_div +
n,
4791 bmap1->n_eq + bmap2->n_eq,
4792 bmap1->n_ineq + bmap2->n_ineq);
4827 "spaces don't match",
goto error);
4856 if (nparam < 0 || n_in < 0 || n_out < 0)
4859 total = nparam + n_in + n_out + bmap1->n_div + bmap2->n_div + 2 * n_out;
4872 bmap1->n_div + bmap2->n_div + 2 * n_out,
4873 bmap1->n_eq + bmap2->n_eq + n_out,
4874 bmap1->n_ineq + bmap2->n_ineq);
4875 for (i = 0; i < n_out; ++i) {
4913 for (i = 0; i <
map1->n; ++i)
4914 for (j = 0; j <
map2->n; ++j) {
4955 for (i = 0; i < bmap->n_eq; ++i)
4956 for (j = 0; j <
n; ++j)
4957 isl_int_neg(bmap->eq[i][off+j], bmap->eq[i][off+j]);
4958 for (i = 0; i < bmap->n_ineq; ++i)
4959 for (j = 0; j <
n; ++j)
4960 isl_int_neg(bmap->ineq[i][off+j], bmap->ineq[i][off+j]);
4961 for (i = 0; i < bmap->n_div; ++i)
4962 for (j = 0; j <
n; ++j)
4963 isl_int_neg(bmap->div[i][1+off+j], bmap->div[i][1+off+j]);
4983 for (i = 0; i <
map->n; ++i) {
5015 if (nparam < 0 || n_in < 0 || n_out < 0)
5018 total = nparam + n_in + n_out + bmap->n_div + n_out;
5026 bmap->n_div + n_out,
5027 bmap->n_eq, bmap->n_ineq + 2 * n_out);
5030 for (i = 0; i < n_out; ++i) {
5066 for (i = 0; i <
map->n; ++i) {
5089 "expecting integer denominator",
goto error);
5110 if (
total < 0 || nparam < 0 || n_in < 0)
5137 if (
total < 0 || nparam < 0 || n_in < 0)
5165 if (
total < 0 || nparam < 0 || n_in < 0)
5192 if (
total < 0 || nparam < 0 || n_in < 0)
5220 if (
total < 0 || nparam < 0 || n_in < 0)
5242 for (i = 0; i < n_equal && bmap; ++i)
5257 for (i = 0; i <
pos && bmap; ++i)
5273 for (i = 0; i <
pos; ++i)
5289 for (i = 0; i <
pos && bmap; ++i)
5305 for (i = 0; i <
pos; ++i)
5322 for (i = 0; i + 1 <
n; ++i)
5378 for (i = 0; i + 1 <
n; ++i)
5516 if (v_div < 0 || n_div < 0)
5522 isl_seq_cpy(bmap->ineq[i], bmap->div[div] + 1, 1 + v_div + n_div);
5541 if (v_div < 0 || n_div < 0)
5547 isl_seq_neg(bmap->ineq[i], bmap->div[div] + 1, 1 + v_div + n_div);
5549 isl_int_add(bmap->ineq[i][0], bmap->ineq[i][0], bmap->ineq[i][1 +
pos]);
5626 if (bmap->dim->nparam == 0 && bmap->dim->n_in == 0 &&
5639 bmap->extra -= bmap->n_div;
5663 n = isl_basic_map_list_n_basic_map(list);
5667 for (i = 0; i <
n; ++i) {
5671 bmap = isl_basic_map_list_get_basic_map(list, i);
5673 list = isl_basic_set_list_set_basic_set(list, i, bset);
5678 isl_basic_map_list_free(list);
5699 if (dim < 0 || bmap_total < 0)
5702 if (like->n_div == 0) {
5710 total = dim + bset->extra;
5716 bmap->
n_div = like->n_div;
5717 bmap->
extra += like->n_div;
5732 for (i = 0; i < bmap->
extra; ++i)
5734 for (i = 0; i < like->n_div; ++i) {
5768 for (i = 1; i <
map->n; ++i)
5771 for (i = 0; i <
map->n; ++i) {
5840 if (dim1 < 0 || dim2 < 0)
5857 for (i = 0; i <
map->n; ++i) {
5973 if (n_in < 0 || n_out < 0)
6042 if (nparam < 0 || n_in < 0 || n_out < 0)
6053 for (i = 0; i < n_in; ++i)
6072 if (nparam < 0 || n_in < 0 || n_out < 0)
6083 for (i = 0; i < n_out; ++i)
6138 for (i = 0; i <
map->n; ++i) {
6139 map->p[i] = fn_bmap(
map->p[i]);
6146 space = fn_space(space);
6247 "negative number of basic maps",
goto error);
6254 map->ctx = space->ctx;
6309 for (i = 0; i <
total; ++i) {
6392 for (i = 0; i <
map->n; ++i)
6433 for (i = 0; i <
map->n; ++i)
6519 "expecting integer value",
goto error);
6598 for (i =
map->n - 1; i >= 0; --i) {
6622 if (isl_map_check_range(
map,
type,
pos, 1) < 0)
6624 for (i =
map->n - 1; i >= 0; --i) {
6646 if (isl_map_check_range(
map,
type,
pos, 1) < 0)
6648 for (i = 0; i <
map->n; ++i) {
6680 "expecting integer value",
goto error);
6681 if (isl_map_check_range(
map,
type,
pos, 1) < 0)
6683 for (i =
map->n - 1; i >= 0; --i) {
6709 unsigned input,
int value)
6776 if (isl_map_check_range(
map,
type,
pos, 1) < 0)
6778 for (i = 0; i <
map->n; ++i) {
6861 if (isl_map_check_range(
map,
type,
pos, 1) < 0)
6863 for (i =
map->n - 1; i >= 0; --i) {
6907 "expecting integer value",
goto error);
6939 "expecting integer value",
goto error);
7008 map = map_bound_multi_pw_aff(
map,
bound, set_bound);
7154 "expecting integer value",
goto error);
7197#define TYPE isl_pw_multi_aff
7199#define SUFFIX _pw_multi_aff
7201#define EMPTY isl_pw_multi_aff_empty
7203#define ADD isl_pw_multi_aff_union_add
7233 if (!
map || (!full && !dom))
7250 for (i = 1; i <
map->n; ++i) {
7286#define EMPTY isl_map_empty
7288#define ADD isl_map_union_disjoint
7323 if (!
map || (!full && !dom))
7363 return isl_map_partial_lexopt(
map, dom, empty, 0);
7388 return isl_basic_map_lexopt(bset,
flags);
7431 pma = isl_basic_map_lexopt_pw_multi_aff(bmap, max ?
ISL_OPT_MAX : 0);
7468 for (i = 1; i <
map->n; ++i) {
7533 if (nparam < 0 || !mat)
7540 isl_assert(bset->ctx, mat->n_row == 1 + nparam,
goto error);
7542 bset->dim->nparam = 0;
7543 bset->dim->n_out = nparam;
7546 bset->dim->nparam = bset->dim->n_out;
7547 bset->dim->n_out = 0;
7566 if (nparam < 0 || !mat)
7569 if (mat->n_row != 1 + nparam)
7571 "unexpected number of rows",
goto error);
7609 for (i = 0; i < eq->n_row; ++i) {
7614 isl_seq_clr(bset->eq[k] + eq->n_col, len - eq->n_col);
7639 for (i = 0; i <
set->n; ++i) {
7667 if (nparam < 0 || n_div < 0)
7670 for (i = 0, j = n_div - 1; i < bset->n_eq && j >= 0; --j) {
7700 if (bset->n_eq == 0)
7751 if (bset->n_eq == 0)
7761 if (i == bset->n_eq)
7771 if (T && T->
n_col == 0) {
7783 else if (i == bset->n_eq)
7812 old_n_div = bmap->n_div;
7817 for (i = 0; i < n_div; ++i) {
7818 isl_seq_cpy(bmap->div[i], ls->div->row[i], ls->div->n_col);
7819 isl_seq_clr(bmap->div[i] + ls->div->n_col, old_n_div);
7838 if (!bmap || n_div < 0)
7872 for (i = 0; i <
map->n; ++i) {
7925 if (n_known < 0 || nparam < 0 || n_in < 0 || n_out < 0)
7929 nparam + n_in + n_out + n_known, 0);
7935 n_known, bmap->n_div - n_known);
7937 for (i = n_known; i < bmap->n_div; ++i)
7939 bmap->n_div -= n_known;
7940 bmap->extra -= n_known;
8004 for (i = 0; i < bmap->n_div; ++i) {
8031 if (
n < 0 || first < 0)
8046 for (i = 0; i <
map->n; ++i) {
8106 for (i = 1 ; i <
map->n; ++i) {
8175 if (is_universe < 0)
8183 if (is_universe < 0)
8198 for (i = 0; i <
map1->n; ++i) {
8204 for (i = 0; i <
map2->n; ++i) {
8312 for (j = 0; j <
set->n; ++j) {
8337 "incompatible spaces",
goto error);
8365 "incompatible spaces",
goto error);
8432 product = control->
product(factor, other);
8435 product = isl_map_copy_tuple_id(product, control->
preserve_type,
8628 for (i = 0; i <
map1->n; ++i)
8629 for (j = 0; j <
map2->n; ++j) {
8692 if (dim < 0 || nparam < 0)
8701 for (i = 0; i < dim; ++i) {
8790 for (i = 0; i <
map->n; ++i)
8817 if (nparam < 0 ||
n < 0)
8832 for (i = 0; i <
n; ++i) {
8881 if (n_in < 0 || n_out < 0)
8885 "number of input and output dimensions needs to be "
8886 "the same",
goto error);
8921 if (nparam < 0 || dim < 0 ||
total < 0)
8926 for (i = 0; i < dim; ++i) {
9005 for (i = 0; i <
n; ++i) {
9070 if (nparam < 0 || nvar < 0)
9095 if (!bmap1 || !bmap2)
9120 if (!bmap1 || !bmap2)
9143 for (i = 0; i <
map->n; ++i) {
9169#define TYPE isl_basic_map
9199#define TYPE1 isl_map
9201#define TYPE2 isl_basic_map
9203#define TYPE_PAIR isl_map_basic_map
9252 if (!bmap1 || !bmap2)
9289 return bmap->n_eq == 0 && bmap->n_ineq == 0;
9312 if (*univ < 0 || !*univ)
9332 if (univ < 0 || univ)
9343 if (univ < 0 || !univ)
9365 for (i = 0; i <
map->n; ++i) {
9382 struct isl_vec *sample = NULL;
9408 bmap->sample = NULL;
9453 if (bmap->sample->size != 1 +
total)
9501 for (i = 0; i < bmap->n_div; ++i) {
9511 "integer division depends on itself",
9528 for (i = 0; i <
map->n; ++i) {
9568 if (div->n_row < bmap->n_div)
9570 "not an expansion",
goto error);
9572 n_div = bmap->n_div;
9574 2 * (div->n_row - n_div));
9576 for (i = n_div; i < div->n_row; ++i)
9580 for (j = n_div - 1; j >= 0; --j) {
9588 for (i = 0; i < div->n_row; ++i) {
9589 if (j < n_div && exp[j] == i) {
9592 isl_seq_cpy(bmap->div[i], div->row[i], div->n_col);
9635 if (n_div < 0 || v_div < 0)
9637 isl_assert(dst->ctx, div <= n_div,
return -1);
9638 for (i = div; i < n_div; ++i)
9639 if (
isl_seq_eq(dst->div[i], src->div[div], 1+1+v_div+div) &&
9675 if (src->n_div == 0)
9683 "some src divs are unknown",
9694 for (i = 0; i < src->n_div; ++i) {
9698 if (j == dst_n_div) {
9700 int extra = src->n_div - i;
9705 extra, 0, 2 * extra);
9711 isl_seq_cpy(dst->div[j], src->div[i], 1+1+v_div+i);
9712 isl_seq_clr(dst->div[j]+1+1+v_div+i, dst->n_div - i);
9740 for (i = 1; i <
map->n; ++i)
9742 for (i = 1; i <
map->n; ++i) {
9772 n = isl_basic_map_list_n_basic_map(list);
9780 for (i = 0; i <
n; ++i) {
9783 bmap = isl_basic_map_list_get_basic_map(list, i);
9803 n = isl_basic_map_list_n_basic_map(list);
9805 return isl_basic_map_list_free(list);
9807 for (i = 0; i <
n; ++i) {
9810 bmap_i = isl_basic_map_list_get_basic_map(list, i);
9812 list = isl_basic_map_list_set_basic_map(list, i, bmap_i);
9829 "incompatible spaces",
goto error);
9849 for (i =
map->n - 1; i >= 0; --i)
9896 if (nparam < 0 || dim1 < 0 || !bset2)
10022 for (i = 0; i <
set1->n; ++i)
10023 for (j = 0; j <
set2->n; ++j) {
10026 if (
f == 1 ||
f == -2)
10045 for (i = 0, d =
total-1; i < bmap->n_eq && d+1 >
pos; ++i) {
10046 for (; d+1 >
pos; --d)
10141 if (isl_map_check_range(
map,
type,
pos, 1) < 0)
10200 mv = isl_multi_val_alloc(space);
10201 n = isl_multi_val_size(mv);
10203 return isl_multi_val_free(mv);
10205 for (i = 0; i <
n; ++i) {
10209 mv = isl_multi_val_set_val(mv, i, v);
10252 unsigned size = *(
unsigned *)
arg;
10296 if (bmap->n_ineq == 0)
10332 if (!bmap1 || !bmap2)
10335 if (bmap1 == bmap2)
10352 if (bmap1->n_eq != bmap2->n_eq)
10353 return bmap1->n_eq - bmap2->n_eq;
10354 if (bmap1->n_ineq != bmap2->n_ineq)
10355 return bmap1->n_ineq - bmap2->n_ineq;
10356 if (bmap1->n_div != bmap2->n_div)
10357 return bmap1->n_div - bmap2->n_div;
10361 for (i = 0; i < bmap1->n_eq; ++i) {
10366 for (i = 0; i < bmap1->n_ineq; ++i) {
10371 for (i = 0; i < bmap1->n_div; ++i) {
10376 if (unknown1 < 0 || unknown2 < 0)
10378 if (unknown1 && unknown2)
10406 for (i = 0; i <
set1->n; ++i) {
10418 if (!bmap1 || !bmap2)
10452 for (i =
map->n - 1; i >= 1; --i) {
10456 for (j = i; j <
map->n; ++j)
10457 map->p[j - 1] =
map->p[j];
10485 for (i = 0; i <
map->n; ++i) {
10511 for (i = 0; i <
map->n; ++i) {
10555 for (i = 0;
equal && i <
map1->n; ++i) {
10582 isl_basic_map_list *list;
10587 list = isl_basic_map_list_alloc(
ctx,
map->n);
10589 for (i = 0; i <
map->n; ++i) {
10593 list = isl_basic_map_list_add(list, bmap);
10609 n = isl_basic_map_list_n_basic_map(list);
10614 "expecting non-empty list",
goto error);
10616 bmap = isl_basic_map_list_get_basic_map(list, 0);
10617 for (i = 1; i <
n; ++i) {
10620 bmap_i = isl_basic_map_list_get_basic_map(list, i);
10624 isl_basic_map_list_free(list);
10627 isl_basic_map_list_free(list);
10652 n = isl_basic_set_list_n_basic_set(list);
10657 "expecting non-empty list",
goto error);
10659 bset = isl_basic_set_list_get_basic_set(list, 0);
10664 for (i = 0; i <
n; ++i) {
10665 bset = isl_basic_set_list_get_basic_set(list, i);
10669 isl_basic_set_list_free(list);
10672 isl_basic_set_list_free(list);
10685 n = isl_set_list_n_set(list);
10690 "expecting non-empty list",
goto error);
10692 set = isl_set_list_get_set(list, 0);
10693 for (i = 1; i <
n; ++i) {
10696 set_i = isl_set_list_get_set(list, i);
10700 isl_set_list_free(list);
10703 isl_set_list_free(list);
10712 unsigned in1, in2, out1, out2, nparam,
total,
pos;
10726 total = nparam + in1 + in2 + out1 + out2 + bmap1->n_div + bmap2->n_div;
10739 bmap1->n_div + bmap2->n_div,
10740 bmap1->n_eq + bmap2->n_eq,
10741 bmap1->n_ineq + bmap2->n_ineq);
10782 if (in1 < 0 || in2 < 0 || out < 0 || nparam < 0)
10789 total = nparam + in1 + in2 + out + bmap1->n_div + bmap2->n_div;
10802 bmap1->n_div + bmap2->n_div,
10803 bmap1->n_eq + bmap2->n_eq,
10804 bmap1->n_ineq + bmap2->n_ineq);
10826 if (rational >= 0 && rational)
10832 if (in < 0 || out1 < 0 || out2 < 0 || nparam < 0 || rational < 0)
10841 total = nparam + in + out1 + out2 + bmap1->n_div + bmap2->n_div;
10854 bmap1->n_div + bmap2->n_div,
10855 bmap1->n_eq + bmap2->n_eq,
10856 bmap1->n_ineq + bmap2->n_ineq);
10894 int remove_duplicates)
10896 unsigned flags = 0;
10906 "parameters don't match",
goto error);
10917 for (i = 0; i <
map1->n; ++i)
10918 for (j = 0; j <
map2->n; ++j) {
10929 if (remove_duplicates)
11001 isl_size total1, keep1, total2, keep2;
11005 if (total1 < 0 || total2 < 0)
11016 if (keep1 < 0 || keep2 < 0)
11030 isl_size total1, keep1, total2, keep2;
11034 if (total1 < 0 || total2 < 0)
11045 if (keep1 < 0 || keep2 < 0)
11192 for (i = 0; i < bmap->n_eq; ++i) {
11198 for (i = 0; i < bmap->n_ineq; ++i) {
11204 for (i = 0; i < bmap->n_div; ++i) {
11234 for (i = 0; i <
map->n; ++i) {
11235 uint32_t bmap_hash;
11270 for (i = 0; i <
map->n; ++i)
11285 for (i = 0; i <
set->n; ++i)
11303 for (i = 0; i <
set->n; ++i) {
11326 for (i = 0; i <
set->n; ++i) {
11330 list = isl_basic_set_list_add(list, bset);
11353 bset->extra -= bset->n_div;
11387 for (i = 0; i <
set->n; ++i) {
11407 size += bset->n_eq * (1 +
dim);
11408 size += bset->n_ineq * (1 +
dim);
11409 size += bset->n_div * (2 +
dim);
11422 for (i = 0; i <
set->n; ++i)
11441 for (i = 0; i < bmap->n_div; ++i) {
11448 for (i = 0; i < bmap->n_eq; ++i)
11452 for (i = 0; i < bmap->n_ineq; ++i) {
11460 return lower && upper;
11489 for (i = 0; i <
map->n; ++i) {
11492 if (bounded < 0 || !bounded)
11520 for (i = 0; i <
map->n; ++i) {
11523 if (bounded < 0 || bounded)
11560 for (i = 0; i <
map->n; ++i) {
11563 if (bounded < 0 || !bounded)
11595 unsigned first,
unsigned n,
int *signs)
11604 if (
total < 0 || !signs)
11609 if (!
bound || !tab)
11616 for (i = 0; i <
n; ++i) {
11622 empty = tab->
empty;
11635 empty = tab->
empty;
11640 signs[i] = empty ? -1 : 0;
11655 if (!bset || !signs)
11660 first +=
pos(bset->dim,
type) - 1;
11676 unsigned o_out, o_div;
11694 for (i = 0; i < n_div; ++i) {
11700 if (may_involve < 0 || may_involve)
11701 return may_involve;
11720 for (k = first; k < first +
n; ++k) {
11726 if (may_involve < 0)
11757 unsigned o_div, o_out;
11763 if (
total < 0 || n_out < 0 || n_div < 0)
11769 for (i = 0; i < bmap->n_ineq; ++i) {
11773 n_out - (
pos + 1)) != -1)
11778 for (j = i + 1; j < bmap->n_ineq; ++j) {
11783 bmap->ineq[j] + 1,
total))
11787 if (j >= bmap->n_ineq)
11790 bmap->ineq[i][0], bmap->ineq[j][0]);
11793 bmap->ineq[i][0], bmap->ineq[j][0]);
11802 return bmap->n_ineq;
11829 int pos,
int *div,
int *ineq)
11833 unsigned o_div, o_out;
11837 if (n_out < 0 || n_div < 0)
11844 *ineq = bmap->n_ineq;
11847 for (j = 0; j < bmap->n_eq; ++j) {
11851 n_out - (
pos + 1)) != -1)
11861 k + 1, n_div - (k+1)) < n_div)
11864 bmap->eq[j][o_div + k]);
11867 if (l >= bmap->n_ineq)
11893 for (i = 0; i < n_out; ++i) {
11900 if (eq >= bmap->n_eq)
12048 return is_identity;
12088 for (j = 0; j < nvar; ++j) {
12089 int lower = 0, upper = 0;
12090 for (i = 0; i < bset->n_eq; ++i) {
12093 if (!
unique(bset->eq[i] + 1 + ovar, j, nvar))
12097 if (i < bset->n_eq)
12099 for (i = 0; i < bset->n_ineq; ++i) {
12102 if (!
unique(bset->ineq[i] + 1 + ovar, j, nvar))
12109 if (!lower || !upper)
12149 const char *cannot_change,
12275 for (i = 0; i <
map->n; ++i) {
12344 if (!
map->dim->nested[0] && !
map->dim->nested[1])
12376 if (!
map->dim->nested[0])
12389 if (!
map->dim->nested[1])
12407 if (n_div < 0 || !space || !dim_map)
12410 flags = bmap->flags;
12417 res->flags = flags;
12438 if (!
map || !r || !dim_map)
12441 for (i = 0; i <
map->n; ++i) {
12479 if (!
map || !model)
12485 "model has unnamed parameters",
goto error);
12524 if (!bmap || !model)
12530 "model has unnamed parameters",
goto error);
12531 if (isl_basic_map_check_named_params(bmap) < 0)
12535 if (equal_params < 0)
12537 if (!equal_params) {
12608 for (i =
n - 1; i >= 0; i--) {
12638 if (nparam < 0 || isl_basic_map_check_named_params(bmap) < 0)
12641 for (i = nparam - 1; i >= 0; i--) {
12678 tuple_space = isl_multi_id_peek_space(
tuple);
12681 n = isl_multi_id_size(
tuple);
12684 for (i = 0; i <
n; ++i) {
12688 id = isl_multi_id_get_at(
tuple, i);
12717 isl_multi_id_free(
tuple);
12737 tuple_space = isl_multi_id_peek_space(
tuple);
12740 n = isl_multi_id_size(
tuple);
12743 for (i = 0; i <
n; ++i) {
12747 id = isl_multi_id_get_at(
tuple, i);
12777 isl_multi_id_free(
tuple);
12810 isl_multi_id_free(
tuple);
12827 else if (!is_params)
12842 else if (is_params)
12903 for (i = 0; i < bmap->n_eq; ++i)
12904 for (j = 0,
pos = 0; j < 5; ++j) {
12909 for (k = 0; k < dim; ++k) {
12911 bmap->eq[i][off + k]);
12936 for (i = 0; i < bmap->n_ineq; ++i)
12937 for (j = 0,
pos = 0; j < 5; ++j) {
12942 for (k = 0; k < dim; ++k) {
12944 bmap->ineq[i][off + k]);
12967 if (dim < 0 || !eq || !ineq)
12970 if (eq->n_col != ineq->n_col)
12972 "equalities and inequalities matrices should have "
12973 "same number of columns",
goto error);
12977 if (eq->n_col <
total)
12979 "number of columns too small",
goto error);
12981 extra = eq->n_col -
total;
12984 eq->n_row, ineq->n_row);
12987 for (i = 0; i < extra; ++i) {
12993 for (i = 0; i < eq->n_row; ++i) {
12997 for (j = 0,
pos = 0; j < 5; ++j) {
13002 for (k = 0; k < dim; ++k) {
13009 for (i = 0; i < ineq->n_row; ++i) {
13013 for (j = 0,
pos = 0; j < 5; ++j) {
13018 for (k = 0; k < dim; ++k) {
13020 ineq->row[i][
pos]);
13098 "basic map cannot be zipped",
goto error);
13102 if (n_in < 0 || n1 < 0 || n2 < 0)
13170 "basic map cannot be curried",
goto error);
13211 "map range cannot be curried",
13248 "basic map cannot be uncurried",
13290 if (type1 == type2 && pos1 == pos2)
13348 if (isl_map_check_range(
map, type1, pos1, 1) < 0)
13350 if (isl_map_check_range(
map, type2, pos2, 1) < 0)
13393 if (type1 == type2 && pos1 == pos2)
13411 if (type1 == type2 && pos1 == pos2)
13429 if (type1 == type2 && pos1 == pos2)
13461 if (type1 == type2 && pos1 == pos2)
13467 if (
total < 0 || i < 0)
13534 "some divs are unknown",
return NULL);
13574 ma_space = isl_multi_aff_get_space(
ma);
13581 "parameters don't match",
goto error);
13587 "spaces don't match",
goto error);
13615 if (n_param < 0 || n_set < 0)
13618 for (i = 0; i < n_div; ++i) {
13619 int o_bmap = 0, o_ls = 0;
13622 o_bmap += 1 + 1 + n_param;
13623 o_ls += 1 + 1 + n_param;
13625 o_bmap += n_before;
13627 ls->
div->
row[i] + o_ls, n_set);
13633 ls->
div->
row[i] + o_ls, n_div);
13636 isl_seq_clr(bmap->div[i] + o_bmap, bmap->n_div - n_div);
13658 for (i = 0; i <
ma->n; ++i)
13685 int n_before,
int n_after,
int n_div_ma)
13696 if (
total < 0 || n_param < 0 || n_in < 0)
13698 for (i = 0; i <
ma->n; ++i) {
13699 int o_bmap = 0, o_ma = 1;
13705 if (div < 0 || k < 0)
13709 ma->u.p[i]->v->el + o_ma, 1 + n_param);
13710 o_bmap += 1 + n_param;
13711 o_ma += 1 + n_param;
13713 o_bmap += n_before;
13715 ma->u.p[i]->v->el + o_ma, n_in);
13721 ma->u.p[i]->v->el + o_ma, n_div_ma);
13722 o_bmap += n_div_ma;
13804 isl_size n_before, n_after, n_div_bmap, n_div_ma;
13829 if (n_before < 0 || n_after < 0 || n_div_bmap < 0 || n_div_ma < 0)
13832 space = isl_multi_aff_get_domain_space(
ma);
13837 bmap->n_eq + strides, bmap->n_ineq + 2 * n_div_ma);
13841 for (i = 0; i < n_div_ma + n_div_bmap; ++i)
13849 for (i = 0; i < bmap->n_eq; ++i) {
13854 n_after, n_div_ma, n_div_bmap,
13855 f,
c1,
c2, g, 0) < 0)
13859 for (i = 0; i < bmap->n_ineq; ++i) {
13864 n_after, n_div_ma, n_div_bmap,
13865 f,
c1,
c2, g, 0) < 0)
13869 for (i = 0; i < bmap->n_div; ++i) {
13875 n_before, n_after, n_div_ma, n_div_bmap,
13876 f,
c1,
c2, g, 1) < 0)
13888 isl_multi_aff_free(
ma);
13897 isl_multi_aff_free(
ma);
13947 ma_space = isl_multi_aff_get_space(
ma);
13980 for (i = 0; i <
map->n; ++i) {
13982 isl_multi_aff_copy(
ma));
13987 space = isl_multi_aff_get_domain_space(
ma);
13995 isl_multi_aff_free(
ma);
14001 isl_multi_aff_free(
ma);
14031 "unaligned unnamed parameters",
goto error);
14037 isl_multi_aff_free(
ma);
14101 isl_multi_aff_copy(
pma->p[0].maff));
14109 for (i = 1; i <
pma->n; ++i) {
14113 isl_multi_aff_copy(
pma->p[i].maff));
14226 if (full >= 0 && !full)
14234 space = isl_multi_pw_aff_get_space(mpa);
14235 isl_multi_pw_aff_free(mpa);
14236 ma = isl_multi_aff_zero(space);
14244 isl_multi_pw_aff_free(mpa);
14292 unsigned first,
unsigned n)
14299 bmap2->div[pos2] + first,
n);
14315 if (
total < 0 || total2 < 0)
14317 if (
total != total2)
14361 if (!inner || !bset)
14402 for (j = 0; j < bset->n_ineq; ++j) {
14429 if (!bmap || !trans)
14432 if (trans->n_row != trans->n_col)
14434 "expecting square transformation matrix",
goto error);
polly print import Polly Print Scop import result
__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_export __isl_give isl_space * isl_pw_multi_aff_get_space(__isl_keep isl_pw_multi_aff *pma)
__isl_give isl_map * isl_pw_aff_le_map(__isl_take isl_pw_aff *pa1, __isl_take isl_pw_aff *pa2)
__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_give isl_local_space * isl_aff_get_domain_local_space(__isl_keep isl_aff *aff)
__isl_give isl_map * isl_pw_aff_ge_map(__isl_take isl_pw_aff *pa1, __isl_take isl_pw_aff *pa2)
__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_pw_aff * isl_pw_aff_empty(__isl_take isl_space *space)
__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_aff * isl_aff_copy(__isl_keep isl_aff *aff)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_from_multi_pw_aff(__isl_take isl_multi_pw_aff *mpa)
isl_size isl_aff_dim(__isl_keep isl_aff *aff, enum isl_dim_type type)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_from_map(__isl_take isl_map *map)
__isl_null isl_pw_multi_aff * isl_pw_multi_aff_free(__isl_take isl_pw_multi_aff *pma)
__isl_give isl_pw_aff * isl_pw_multi_aff_get_pw_aff(__isl_keep isl_pw_multi_aff *pma, int pos)
struct isl_multi_aff isl_multi_aff
struct isl_multi_pw_aff isl_multi_pw_aff
static __isl_give isl_basic_set * bset_from_bmap(__isl_take isl_basic_map *bmap)
static __isl_give isl_basic_map * bset_to_bmap(__isl_take isl_basic_set *bset)
for(int c0=1;c0< 3 *M - 1;c0+=3)
isl_size isl_constraint_dim(__isl_keep isl_constraint *constraint, enum isl_dim_type type)
__isl_give isl_map * isl_map_add_constraint(__isl_take isl_map *map, __isl_take isl_constraint *constraint)
isl_size isl_basic_map_n_constraint(__isl_keep isl_basic_map *bmap)
__isl_null isl_constraint * isl_constraint_free(__isl_take isl_constraint *c)
__isl_give isl_basic_map * isl_basic_map_add_constraint(__isl_take isl_basic_map *bmap, __isl_take isl_constraint *constraint)
isl_bool isl_constraint_involves_dims(__isl_keep isl_constraint *constraint, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_constraint * isl_constraint_alloc_inequality(__isl_take isl_local_space *ls)
isl_stat isl_basic_map_foreach_constraint(__isl_keep isl_basic_map *bmap, isl_stat(*fn)(__isl_take isl_constraint *c, void *user), void *user)
__isl_give isl_constraint * isl_constraint_set_coefficient_si(__isl_take isl_constraint *constraint, enum isl_dim_type type, int pos, int v)
#define isl_calloc_type(ctx, type)
#define ISL_FL_ISSET(l, f)
#define isl_die(ctx, errno, msg, code)
void isl_ctx_deref(struct isl_ctx *ctx)
#define isl_assert(ctx, test, code)
isl_bool isl_bool_ok(int b)
#define isl_alloc_array(ctx, type, n)
#define isl_calloc_array(ctx, type, n)
#define ISL_F_ISSET(p, f)
#define isl_calloc(ctx, type, size)
#define isl_realloc_array(ctx, ptr, type, n)
void isl_ctx_ref(struct isl_ctx *ctx)
isl_bool isl_bool_not(isl_bool b)
#define isl_hash_hash(h, h2)
#define isl_hash_byte(h, b)
__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_bool isl_bool(* test)(__isl_keep ISL_KEY *key, __isl_keep ISL_VAL *val, void *user)
__isl_null isl_id * isl_id_free(__isl_take isl_id *id)
struct isl_multi_id isl_multi_id
void GMPZAPI() neg(mp_int rop, mp_int op)
int GMPQAPI() cmp(mp_rat op1, mp_rat op2)
int GMPQAPI() sgn(mp_rat op)
__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_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_bool isl_multi_pw_aff_has_non_trivial_domain(__isl_keep isl_multi_pw_aff *mpa)
__isl_give isl_multi_aff * isl_multi_aff_align_divs(__isl_take isl_multi_aff *maff)
static __isl_give isl_set * less(__isl_keep isl_pw_aff_list *list, int pos1, int pos2)
__isl_give isl_map * isl_map_from_pw_multi_aff_internal(__isl_take isl_pw_multi_aff *pma)
isl_stat isl_pw_multi_aff_check_named_params(__isl_keep isl_pw_multi_aff *pma)
__isl_give isl_basic_map * isl_basic_map_implicit_equalities(__isl_take isl_basic_map *bmap)
static __isl_give isl_ast_expr * var(struct isl_ast_add_term_data *data, enum isl_dim_type type, int pos)
struct isl_blk isl_blk_extend(struct isl_ctx *ctx, struct isl_blk block, size_t new_n)
int isl_blk_is_error(struct isl_blk block)
void isl_blk_free(struct isl_ctx *ctx, struct isl_blk block)
struct isl_blk isl_blk_alloc(struct isl_ctx *ctx, size_t n)
struct isl_blk isl_blk_empty()
static void drop(struct isl_coalesce_info *info)
void isl_dim_map_dim_range(__isl_keep isl_dim_map *dim_map, __isl_keep isl_space *space, enum isl_dim_type type, unsigned first, unsigned n, unsigned dst_pos)
__isl_give isl_basic_map * isl_basic_map_add_constraints_dim_map(__isl_take isl_basic_map *dst, __isl_take isl_basic_map *src, __isl_take isl_dim_map *dim_map)
__isl_null isl_dim_map * isl_dim_map_free(__isl_take isl_dim_map *dim_map)
__isl_give isl_dim_map * isl_dim_map_extend(__isl_keep isl_dim_map *dim_map, __isl_keep isl_basic_map *bmap)
__isl_give isl_dim_map * isl_dim_map_from_reordering(__isl_keep isl_reordering *exp)
void isl_dim_map_dim(__isl_keep isl_dim_map *dim_map, __isl_keep isl_space *space, enum isl_dim_type type, unsigned dst_pos)
__isl_give isl_dim_map * isl_dim_map_alloc(isl_ctx *ctx, unsigned len)
void isl_dim_map_div(__isl_keep isl_dim_map *dim_map, __isl_keep isl_basic_map *bmap, unsigned dst_pos)
__isl_give isl_mat * isl_mat_variable_compression(__isl_take isl_mat *B, __isl_give isl_mat **T2)
#define isl_int_is_nonneg(i)
#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_neg(r, i)
#define isl_int_abs_eq(i, j)
#define isl_int_add(r, i, j)
#define isl_int_cmp(i, j)
#define isl_int_is_divisible_by(i, j)
#define isl_int_abs_lt(i, j)
#define isl_int_set(r, i)
#define isl_int_cdiv_q(r, i, j)
#define isl_int_abs_cmp(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_swap(i, j)
#define isl_int_sub(r, i, j)
__isl_give dup(__isl_keep LIST(EL) *list)
__isl_give isl_local_space * isl_local_space_alloc_div(__isl_take isl_space *space, __isl_take isl_mat *div)
__isl_give isl_basic_map * isl_basic_map_sort_divs(__isl_take isl_basic_map *bmap)
enum isl_lp_result isl_basic_map_solve_lp(__isl_keep isl_basic_map *bmap, int max, isl_int *f, isl_int d, isl_int *opt, isl_int *opt_denom, __isl_give isl_vec **sol)
__isl_give isl_basic_set * isl_basic_map_domain(__isl_take isl_basic_map *bmap)
__isl_give isl_basic_map * isl_basic_map_drop_constraints_not_involving_dims(__isl_take isl_basic_map *bmap, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_basic_set * isl_basic_set_alloc_space(__isl_take isl_space *space, unsigned extra, unsigned n_eq, unsigned n_ineq)
isl_bool isl_basic_set_contains(__isl_keep isl_basic_set *bset, __isl_keep isl_vec *vec)
__isl_give isl_map * isl_map_preimage_range_pw_multi_aff(__isl_take isl_map *map, __isl_take isl_pw_multi_aff *pma)
static __isl_give isl_map * map_union_disjoint(__isl_take isl_map *map1, __isl_take isl_map *map2)
__isl_give isl_basic_map * isl_basic_map_flat_product(__isl_take isl_basic_map *bmap1, __isl_take isl_basic_map *bmap2)
__isl_give isl_map * isl_map_flat_domain_product(__isl_take isl_map *map1, __isl_take isl_map *map2)
static isl_stat isl_set_check_is_set(__isl_keep isl_set *set)
isl_bool isl_set_has_equal_space(__isl_keep isl_set *set1, __isl_keep isl_set *set2)
__isl_give isl_basic_set * isl_basic_set_drop(__isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_basic_map * isl_basic_map_nat_universe(__isl_take isl_space *space)
isl_bool isl_basic_set_plain_dim_is_fixed(__isl_keep isl_basic_set *bset, unsigned dim, isl_int *val)
__isl_give isl_basic_map * isl_basic_map_apply_range(__isl_take isl_basic_map *bmap1, __isl_take isl_basic_map *bmap2)
isl_size isl_basic_map_var_offset(__isl_keep isl_basic_map *bmap, enum isl_dim_type type)
isl_size isl_basic_map_total_dim(__isl_keep const isl_basic_map *bmap)
static __isl_give isl_basic_map * add_upper_div_constraint(__isl_take isl_basic_map *bmap, unsigned div)
__isl_give isl_map * isl_map_drop(__isl_take isl_map *map, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_basic_map_list * isl_basic_map_list_align_divs_to_basic_map(__isl_take isl_basic_map_list *list, __isl_keep isl_basic_map *bmap)
static __isl_give isl_basic_map * add_lower_div_constraint(__isl_take isl_basic_map *bmap, unsigned div)
static __isl_give isl_map * compute_divs(__isl_take isl_basic_map *bmap)
__isl_give isl_basic_map * isl_basic_map_free_inequality(__isl_take isl_basic_map *bmap, unsigned n)
__isl_give isl_basic_map * isl_basic_map_add_ineq(__isl_take isl_basic_map *bmap, isl_int *ineq)
isl_size isl_basic_set_n_equality(__isl_keep isl_basic_set *bset)
__isl_give isl_space * isl_set_get_space(__isl_keep isl_set *set)
__isl_give isl_basic_set * isl_basic_set_from_params(__isl_take isl_basic_set *bset)
static __isl_give isl_basic_map * var_more_or_equal(__isl_take isl_basic_map *bmap, unsigned pos)
__isl_give isl_map * isl_map_nat_universe(__isl_take isl_space *space)
__isl_give isl_basic_map * isl_basic_map_drop_core(__isl_take isl_basic_map *bmap, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_set * isl_set_lower_bound(__isl_take isl_set *set, enum isl_dim_type type, unsigned pos, isl_int value)
static isl_stat check_map_space_equal_total_dim(__isl_keep isl_map *map, __isl_keep isl_space *space)
__isl_give isl_basic_map * isl_basic_map_order_divs(__isl_take isl_basic_map *bmap)
__isl_give isl_set * isl_set_upper_bound(__isl_take isl_set *set, enum isl_dim_type type, unsigned pos, isl_int value)
isl_bool isl_set_dim_is_bounded(__isl_keep isl_set *set, enum isl_dim_type type, unsigned pos)
__isl_give isl_basic_map * isl_basic_map_deltas_map(__isl_take isl_basic_map *bmap)
__isl_give isl_basic_set * isl_basic_set_drop_constraints_involving(__isl_take isl_basic_set *bset, unsigned first, unsigned n)
__isl_give isl_basic_set * isl_basic_set_drop_constraints_not_involving_dims(__isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_set * isl_set_union(__isl_take isl_set *set1, __isl_take isl_set *set2)
__isl_give isl_basic_map * isl_basic_map_list_intersect(__isl_take isl_basic_map_list *list)
static __isl_give isl_map * map_lex_lte_first(__isl_take isl_space *space, unsigned n, int equal)
__isl_give isl_map * isl_map_order_ge(__isl_take isl_map *map, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2)
static __isl_give isl_map * replace_space_by_local_space(__isl_take isl_map *map, __isl_take isl_local_space *ls)
isl_size isl_basic_set_dim(__isl_keep isl_basic_set *bset, enum isl_dim_type type)
__isl_give isl_set * isl_set_from_basic_set(__isl_take isl_basic_set *bset)
__isl_give isl_map * isl_map_product(__isl_take isl_map *map1, __isl_take isl_map *map2)
isl_bool isl_map_is_identity(__isl_keep isl_map *map)
static __isl_give isl_map * drop_constraints(__isl_take isl_map *map, enum isl_dim_type type, unsigned first, unsigned n, __isl_give isl_basic_map *(*drop)(__isl_take isl_basic_map *bmap, enum isl_dim_type type, unsigned first, unsigned n))
static isl_bool basic_set_no_locals(__isl_keep isl_basic_set *bset, void *user)
isl_bool isl_basic_set_plain_is_universe(__isl_keep isl_basic_set *bset)
__isl_give isl_map * isl_map_sum(__isl_take isl_map *map1, __isl_take isl_map *map2)
__isl_give isl_set * isl_set_preimage_pw_multi_aff(__isl_take isl_set *set, __isl_take isl_pw_multi_aff *pma)
__isl_give isl_set * isl_set_alloc_space(__isl_take isl_space *space, int n, unsigned flags)
__isl_give isl_basic_map * isl_basic_map_equate(__isl_take isl_basic_map *bmap, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2)
__isl_give isl_basic_map * isl_basic_map_drop_constraints_involving(__isl_take isl_basic_map *bmap, unsigned first, unsigned n)
isl_bool isl_basic_map_may_be_set(__isl_keep isl_basic_map *bmap)
isl_size isl_set_n_basic_set(__isl_keep isl_set *set)
int isl_basic_set_alloc_div(__isl_keep isl_basic_set *bset)
__isl_give isl_mat * isl_basic_set_equalities_matrix(__isl_keep isl_basic_set *bset, enum isl_dim_type c1, enum isl_dim_type c2, enum isl_dim_type c3, enum isl_dim_type c4)
__isl_give isl_basic_set * isl_basic_set_set_to_empty(__isl_take isl_basic_set *bset)
isl_bool isl_set_is_strict_subset(__isl_keep isl_set *set1, __isl_keep isl_set *set2)
__isl_give isl_map * isl_set_lex_lt_set(__isl_take isl_set *set1, __isl_take isl_set *set2)
__isl_give isl_basic_map * isl_basic_map_more_or_equal_at(__isl_take isl_space *space, unsigned pos)
static __isl_keep const isl_basic_map * const_bset_to_bmap(__isl_keep const isl_basic_set *bset)
__isl_give isl_space * isl_basic_map_get_space(__isl_keep isl_basic_map *bmap)
isl_bool isl_basic_map_plain_is_universe(__isl_keep isl_basic_map *bmap)
isl_bool isl_map_plain_is_single_valued(__isl_keep isl_map *map)
__isl_give isl_map * isl_map_intersect_domain_factor_domain(__isl_take isl_map *map, __isl_take isl_map *factor)
static isl_bool isl_basic_map_set_tuple_is_equal(__isl_keep isl_basic_map *bmap, enum isl_dim_type type, __isl_keep isl_basic_set *bset)
static isl_stat foreach_orthant(__isl_take isl_set *set, int *signs, int first, int len, isl_stat(*fn)(__isl_take isl_set *orthant, int *signs, void *user), void *user)
static __isl_give isl_set * parameter_compute_divs(__isl_take isl_basic_set *bset)
static __isl_give isl_map * clear_caches(__isl_take isl_map *map)
static __isl_give isl_set * set_append_equalities(__isl_take isl_set *set, __isl_take isl_mat *eq)
__isl_give isl_mat * isl_basic_map_equalities_matrix(__isl_keep isl_basic_map *bmap, enum isl_dim_type c1, enum isl_dim_type c2, enum isl_dim_type c3, enum isl_dim_type c4, enum isl_dim_type c5)
__isl_give isl_basic_set * isl_basic_set_dup(__isl_keep isl_basic_set *bset)
isl_bool isl_set_involves_locals(__isl_keep isl_set *set)
__isl_give isl_basic_map * isl_basic_map_remove_divs_involving_dims(__isl_take isl_basic_map *bmap, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_basic_map * isl_basic_map_zip(__isl_take isl_basic_map *bmap)
__isl_give isl_pw_aff * isl_map_dim_min(__isl_take isl_map *map, int pos)
static __isl_give isl_map * isl_map_intersect_multi_val_explicit_domain(__isl_take isl_map *map, __isl_keep isl_multi_val *mv)
__isl_give isl_basic_map * isl_basic_map_equal(__isl_take isl_space *space, unsigned n_equal)
static __isl_give isl_map * sort_and_remove_duplicates(__isl_take isl_map *map)
static __isl_give isl_basic_map * equator(__isl_take isl_space *space, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2)
isl_bool isl_map_dim_is_bounded(__isl_keep isl_map *map, enum isl_dim_type type, unsigned pos)
__isl_give isl_map * isl_map_lower_bound_multi_pw_aff(__isl_take isl_map *map, __isl_take isl_multi_pw_aff *lower)
isl_bool isl_map_has_dim_id(__isl_keep isl_map *map, enum isl_dim_type type, unsigned pos)
const char * isl_map_get_dim_name(__isl_keep isl_map *map, enum isl_dim_type type, unsigned pos)
__isl_give isl_basic_map * isl_basic_map_alloc(isl_ctx *ctx, unsigned nparam, unsigned in, unsigned out, unsigned extra, unsigned n_eq, unsigned n_ineq)
static __isl_give isl_space * isl_basic_map_take_space(__isl_keep isl_basic_map *bmap)
__isl_give isl_set * isl_map_range(__isl_take isl_map *map)
isl_bool isl_basic_map_is_empty(__isl_keep isl_basic_map *bmap)
static __isl_give isl_basic_set * isl_basic_set_bound_val(__isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned pos, __isl_take isl_val *value, int upper)
isl_bool isl_basic_set_involves_dims(__isl_keep isl_basic_set *bset, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_map * isl_set_lex_le_set(__isl_take isl_set *set1, __isl_take isl_set *set2)
__isl_give isl_set * isl_set_set_dim_name(__isl_take isl_set *set, enum isl_dim_type type, unsigned pos, const char *s)
__isl_give isl_set * isl_set_remove_divs(__isl_take isl_set *set)
static __isl_give isl_map * map_lex_lte(__isl_take isl_space *space, int equal)
isl_bool isl_map_involves_dims(__isl_keep isl_map *map, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_set * isl_set_preimage_multi_pw_aff(__isl_take isl_set *set, __isl_take isl_multi_pw_aff *mpa)
static __isl_give isl_basic_set * basic_set_parameter_preimage(__isl_take isl_basic_set *bset, __isl_take isl_mat *mat)
__isl_give isl_set * isl_map_underlying_set(__isl_take isl_map *map)
static __isl_give isl_basic_map * var_less(__isl_take isl_basic_map *bmap, unsigned pos)
__isl_give isl_map * isl_set_insert_domain(__isl_take isl_set *set, __isl_take isl_space *domain)
static __isl_give isl_set * set_bound_multi_val(__isl_take isl_set *set, __isl_take isl_multi_val *bound, __isl_give isl_map *map_bound(__isl_take isl_map *map, unsigned pos, __isl_take isl_val *value))
__isl_give isl_basic_set * isl_basic_set_set_tuple_name(__isl_take isl_basic_set *bset, const char *s)
__isl_give isl_map * isl_map_upper_bound_val(__isl_take isl_map *map, enum isl_dim_type type, unsigned pos, __isl_take isl_val *value)
__isl_give isl_map * isl_map_inline_foreach_basic_map(__isl_take isl_map *map, __isl_give isl_basic_map *(*fn)(__isl_take isl_basic_map *bmap))
__isl_give isl_set * isl_set_list_union(__isl_take isl_set_list *list)
__isl_give isl_map * isl_map_intersect_domain_factor_range(__isl_take isl_map *map, __isl_take isl_map *factor)
isl_bool isl_set_has_dim_name(__isl_keep isl_set *set, enum isl_dim_type type, unsigned pos)
isl_bool isl_basic_map_plain_is_equal(__isl_keep isl_basic_map *bmap1, __isl_keep isl_basic_map *bmap2)
const char * isl_map_get_tuple_name(__isl_keep isl_map *map, enum isl_dim_type type)
__isl_give isl_set * isl_set_lift(__isl_take isl_set *set)
__isl_give isl_map * isl_map_apply_range(__isl_take isl_map *map1, __isl_take isl_map *map2)
isl_bool isl_basic_map_is_equal(__isl_keep isl_basic_map *bmap1, __isl_keep isl_basic_map *bmap2)
__isl_give isl_map * isl_map_uncurry(__isl_take isl_map *map)
__isl_give isl_map * isl_basic_map_lexmax(__isl_take isl_basic_map *bmap)
__isl_give isl_basic_map * isl_basic_map_drop_unused_params(__isl_take isl_basic_map *bmap)
__isl_give isl_map * isl_map_eliminate(__isl_take isl_map *map, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_set * isl_set_set_tuple_name(__isl_take isl_set *set, const char *s)
isl_bool isl_set_dim_has_upper_bound(__isl_keep isl_set *set, enum isl_dim_type type, unsigned pos)
isl_ctx * isl_set_get_ctx(__isl_keep isl_set *set)
isl_bool isl_basic_map_applies_range(__isl_keep isl_basic_map *bmap1, __isl_keep isl_basic_map *bmap2)
__isl_give isl_basic_set * isl_basic_set_drop_dims(__isl_take isl_basic_set *bset, unsigned first, unsigned n)
__isl_give isl_map * isl_map_domain_factor_range(__isl_take isl_map *map)
__isl_give isl_map * isl_map_preimage_range_multi_aff(__isl_take isl_map *map, __isl_take isl_multi_aff *ma)
__isl_give isl_set * isl_set_add_basic_set(__isl_take isl_set *set, __isl_take isl_basic_set *bset)
void isl_basic_map_inequality_to_equality(__isl_keep isl_basic_map *bmap, unsigned pos)
isl_size isl_map_n_basic_map(__isl_keep isl_map *map)
__isl_give isl_basic_map * isl_basic_map_normalize(__isl_take isl_basic_map *bmap)
__isl_give isl_map * isl_map_floordiv(__isl_take isl_map *map, isl_int d)
__isl_give isl_set * isl_set_lower_bound_si(__isl_take isl_set *set, enum isl_dim_type type, unsigned pos, int value)
__isl_give isl_map * isl_map_union_disjoint(__isl_take isl_map *map1, __isl_take isl_map *map2)
__isl_give isl_basic_map * isl_basic_map_project_out(__isl_take isl_basic_map *bmap, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_basic_set * isl_basic_set_intersect(__isl_take isl_basic_set *bset1, __isl_take isl_basic_set *bset2)
__isl_give isl_map * isl_map_align_divs_internal(__isl_take isl_map *map)
isl_bool isl_set_plain_is_empty(__isl_keep isl_set *set)
__isl_give isl_set * isl_set_reset_space(__isl_take isl_set *set, __isl_take isl_space *space)
isl_size isl_basic_map_n_equality(__isl_keep isl_basic_map *bmap)
__isl_give isl_set * isl_set_lower_bound_val(__isl_take isl_set *set, enum isl_dim_type type, unsigned pos, __isl_take isl_val *value)
static isl_stat involves_divs(__isl_take isl_constraint *c, void *user)
isl_size isl_basic_set_n_dim(__isl_keep isl_basic_set *bset)
isl_size isl_basic_map_n_inequality(__isl_keep isl_basic_map *bmap)
static __isl_give isl_basic_map * isl_basic_map_fix_pos(__isl_take isl_basic_map *bmap, unsigned pos, isl_int value)
isl_bool isl_basic_set_is_empty(__isl_keep isl_basic_set *bset)
__isl_give isl_set * isl_basic_set_compute_divs(__isl_take isl_basic_set *bset)
__isl_give isl_basic_map * isl_basic_map_from_constraint_matrices(__isl_take isl_space *space, __isl_take isl_mat *eq, __isl_take isl_mat *ineq, enum isl_dim_type c1, enum isl_dim_type c2, enum isl_dim_type c3, enum isl_dim_type c4, enum isl_dim_type c5)
static isl_bool isl_basic_set_involves_locals(__isl_keep isl_basic_set *bset)
__isl_give isl_map * isl_map_empty(__isl_take isl_space *space)
int isl_basic_map_drop_equality(__isl_keep isl_basic_map *bmap, unsigned pos)
__isl_give isl_mat * isl_basic_set_inequalities_matrix(__isl_keep isl_basic_set *bset, enum isl_dim_type c1, enum isl_dim_type c2, enum isl_dim_type c3, enum isl_dim_type c4)
__isl_give isl_basic_map * isl_inequality_negate(__isl_take isl_basic_map *bmap, unsigned pos)
static __isl_give isl_map * map_bound_pw_aff(__isl_take isl_map *map, unsigned pos, __isl_take isl_pw_aff *bound, __isl_give isl_map *(*order)(__isl_take isl_pw_aff *pa1, __isl_take isl_pw_aff *pa2))
__isl_give isl_set * isl_set_set_dim_id(__isl_take isl_set *set, enum isl_dim_type type, unsigned pos, __isl_take isl_id *id)
isl_bool isl_basic_map_div_is_known(__isl_keep isl_basic_map *bmap, int div)
void isl_map_print_internal(__isl_keep isl_map *map, FILE *out, int indent)
__isl_give isl_basic_set * isl_basic_set_expand_divs(__isl_take isl_basic_set *bset, __isl_take isl_mat *div, int *exp)
isl_bool isl_set_is_singleton(__isl_keep isl_set *set)
__isl_give isl_space * isl_map_get_space(__isl_keep isl_map *map)
__isl_give isl_basic_map * isl_basic_map_add_div_constraints(__isl_take isl_basic_map *bmap, unsigned pos)
__isl_give isl_map * isl_map_lex_gt_map(__isl_take isl_map *map1, __isl_take isl_map *map2)
isl_bool isl_basic_map_dim_is_bounded(__isl_keep isl_basic_map *bmap, enum isl_dim_type type, unsigned pos)
__isl_give isl_set * isl_map_domain(__isl_take isl_map *map)
__isl_give isl_val * isl_set_plain_get_val_if_fixed(__isl_keep isl_set *set, enum isl_dim_type type, unsigned pos)
__isl_give isl_set * isl_set_sum(__isl_take isl_set *set1, __isl_take isl_set *set2)
__isl_give isl_map * isl_map_reverse(__isl_take isl_map *map)
isl_size isl_basic_set_n_param(__isl_keep isl_basic_set *bset)
int isl_basic_set_plain_cmp(__isl_keep isl_basic_set *bset1, __isl_keep isl_basic_set *bset2)
isl_bool isl_basic_map_can_curry(__isl_keep isl_basic_map *bmap)
isl_bool isl_set_dim_has_any_lower_bound(__isl_keep isl_set *set, enum isl_dim_type type, unsigned pos)
__isl_give isl_multi_val * isl_set_get_plain_multi_val_if_fixed(__isl_keep isl_set *set)
static __isl_give isl_map * unbind_params_insert_domain(__isl_take isl_set *set, __isl_take isl_multi_id *tuple)
__isl_give isl_basic_map * isl_basic_map_insert_dims(__isl_take isl_basic_map *bmap, enum isl_dim_type type, unsigned pos, unsigned n)
__isl_give isl_set * isl_set_normalize(__isl_take isl_set *set)
__isl_give isl_set * isl_set_fix(__isl_take isl_set *set, enum isl_dim_type type, unsigned pos, isl_int value)
__isl_give isl_map * isl_map_reset(__isl_take isl_map *map, enum isl_dim_type type)
__isl_give isl_set * isl_map_bind_domain(__isl_take isl_map *map, __isl_take isl_multi_id *tuple)
unsigned isl_basic_map_offset(__isl_keep isl_basic_map *bmap, enum isl_dim_type type)
__isl_give isl_basic_map * isl_basic_map_floordiv(__isl_take isl_basic_map *bmap, isl_int d)
static __isl_give isl_map * isl_map_partial_lexopt_aligned(__isl_take isl_map *map, __isl_take isl_set *dom, __isl_give isl_set **empty, unsigned flags)
isl_bool isl_map_is_empty(__isl_keep isl_map *map)
__isl_give isl_basic_map * isl_basic_map_dup(__isl_keep isl_basic_map *bmap)
static void swap_div(__isl_keep isl_basic_map *bmap, int a, int b)
isl_bool isl_map_is_equal(__isl_keep isl_map *map1, __isl_keep isl_map *map2)
__isl_give isl_map * isl_map_flat_product(__isl_take isl_map *map1, __isl_take isl_map *map2)
__isl_give isl_map * isl_map_project_onto(__isl_take isl_map *map, enum isl_dim_type type, unsigned first, unsigned n)
isl_bool isl_basic_map_plain_is_empty(__isl_keep isl_basic_map *bmap)
__isl_give isl_basic_map * isl_basic_map_drop_constraints_involving_dims(__isl_take isl_basic_map *bmap, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_map * isl_map_fix(__isl_take isl_map *map, enum isl_dim_type type, unsigned pos, isl_int value)
int isl_basic_set_is_rational(__isl_keep isl_basic_set *bset)
__isl_give isl_map * isl_map_remove_inputs(__isl_take isl_map *map, unsigned first, unsigned n)
__isl_give isl_basic_map * isl_basic_map_from_range(__isl_take isl_basic_set *bset)
__isl_give isl_set * isl_set_fix_val(__isl_take isl_set *set, enum isl_dim_type type, unsigned pos, __isl_take isl_val *v)
isl_bool isl_set_dim_has_lower_bound(__isl_keep isl_set *set, enum isl_dim_type type, unsigned pos)
isl_bool isl_set_has_rational(__isl_keep isl_set *set)
static isl_bool map_is_equal(__isl_keep isl_map *map1, __isl_keep isl_map *map2)
__isl_give isl_set * isl_set_cow(__isl_take isl_set *set)
__isl_give isl_basic_map * isl_basic_map_realign(__isl_take isl_basic_map *bmap, __isl_take isl_space *space, __isl_take struct isl_dim_map *dim_map)
isl_bool isl_basic_set_space_has_equal_params(__isl_keep isl_basic_set *bset, __isl_keep isl_space *space)
__isl_give isl_set * isl_map_wrap(__isl_take isl_map *map)
__isl_give isl_basic_map * isl_basic_map_neg(__isl_take isl_basic_map *bmap)
static isl_stat isl_basic_map_check_compatible_range(__isl_keep isl_basic_map *bmap, __isl_keep isl_basic_set *bset)
__isl_give isl_map * isl_map_lex_ge_first(__isl_take isl_space *space, unsigned n)
static int find_div(__isl_keep isl_basic_map *dst, __isl_keep isl_basic_map *src, unsigned div)
__isl_give isl_space * isl_basic_set_get_space(__isl_keep isl_basic_set *bset)
static __isl_give isl_basic_map * move_divs_last(__isl_take isl_basic_map *bmap, unsigned first, unsigned n)
isl_bool isl_set_every_basic_set(__isl_keep isl_set *set, isl_bool(*test)(__isl_keep isl_basic_set *bset, void *user), void *user)
__isl_give isl_map * isl_map_copy(__isl_keep isl_map *map)
__isl_give isl_basic_map * isl_basic_map_add_known_div_constraints(__isl_take isl_basic_map *bmap)
static __isl_give isl_map * map_upper_bound_val(__isl_take isl_map *map, unsigned pos, __isl_take isl_val *v)
static __isl_give isl_map * isl_map_intersect_factor(__isl_take isl_map *map, __isl_take isl_map *factor, struct isl_intersect_factor_control *control)
__isl_give isl_basic_set * isl_basic_set_add_ineq(__isl_take isl_basic_set *bset, isl_int *ineq)
__isl_give isl_basic_map * isl_basic_map_from_local_space(__isl_take isl_local_space *ls)
__isl_give isl_map * isl_map_move_dims(__isl_take isl_map *map, enum isl_dim_type dst_type, unsigned dst_pos, enum isl_dim_type src_type, unsigned src_pos, unsigned n)
__isl_give isl_set * isl_set_unbind_params(__isl_take isl_set *set, __isl_take isl_multi_id *tuple)
__isl_give isl_basic_map * isl_basic_map_add_eq(__isl_take isl_basic_map *bmap, isl_int *eq)
static __isl_give isl_basic_map * isl_basic_map_restore_space(__isl_take isl_basic_map *bmap, __isl_take isl_space *space)
__isl_give isl_set * isl_set_upper_bound_multi_pw_aff(__isl_take isl_set *set, __isl_take isl_multi_pw_aff *upper)
isl_bool isl_basic_map_dim_has_lower_bound(__isl_keep isl_basic_map *bmap, enum isl_dim_type type, unsigned pos)
__isl_give isl_set * isl_set_reset_user(__isl_take isl_set *set)
const char * isl_set_get_tuple_name(__isl_keep isl_set *set)
static __isl_give isl_basic_map * add_constraints(__isl_take isl_basic_map *bmap1, __isl_take isl_basic_map *bmap2, unsigned i_pos, unsigned o_pos)
static void constraint_drop_vars(isl_int *c, unsigned n, unsigned rem)
__isl_give isl_map * isl_map_flatten_domain(__isl_take isl_map *map)
__isl_give isl_map * isl_basic_map_union(__isl_take isl_basic_map *bmap1, __isl_take isl_basic_map *bmap2)
static __isl_give isl_map * map_bound(__isl_take isl_map *map, enum isl_dim_type type, unsigned pos, isl_int value, int upper)
__isl_give isl_set * isl_set_empty(__isl_take isl_space *space)
__isl_give isl_basic_set * isl_basic_set_extend_constraints(__isl_take isl_basic_set *base, unsigned n_eq, unsigned n_ineq)
__isl_give isl_basic_set * isl_basic_set_remove_dims(__isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_basic_set * isl_basic_set_fix_val(__isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned pos, __isl_take isl_val *v)
int isl_basic_set_first_unknown_div(__isl_keep isl_basic_set *bset)
static isl_bool is_internal(__isl_keep isl_vec *inner, __isl_keep isl_basic_set *bset, int ineq)
isl_stat isl_basic_set_check_range(__isl_keep isl_basic_set *bset, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_map * isl_map_lower_bound_si(__isl_take isl_map *map, enum isl_dim_type type, unsigned pos, int value)
__isl_give isl_aff * isl_basic_map_get_div(__isl_keep isl_basic_map *bmap, int pos)
static isl_bool is_convex_no_locals(__isl_keep isl_map *map)
__isl_give isl_map * isl_map_partial_lexmin(__isl_take isl_map *map, __isl_take isl_set *dom, __isl_give isl_set **empty)
__isl_give isl_map * isl_map_factor_range(__isl_take isl_map *map)
static __isl_give isl_map * map_lower_bound_val(__isl_take isl_map *map, unsigned pos, __isl_take isl_val *v)
__isl_give isl_map * isl_map_lex_gt(__isl_take isl_space *set_space)
__isl_give isl_map * isl_map_reset_space(__isl_take isl_map *map, __isl_take isl_space *space)
__isl_give isl_map * isl_map_flatten_range(__isl_take isl_map *map)
__isl_give isl_basic_set * isl_basic_set_preimage_multi_aff(__isl_take isl_basic_set *bset, __isl_take isl_multi_aff *ma)
__isl_give isl_set * isl_set_set_tuple_id(__isl_take isl_set *set, __isl_take isl_id *id)
static __isl_give isl_pw_aff * map_dim_opt(__isl_take isl_map *map, int pos, int max)
static __isl_give isl_basic_map * move_last(__isl_take isl_basic_map *bmap, enum isl_dim_type type, unsigned first, unsigned n)
int isl_basic_set_alloc_equality(__isl_keep isl_basic_set *bset)
__isl_give isl_basic_map * isl_basic_map_fix(__isl_take isl_basic_map *bmap, enum isl_dim_type type, unsigned pos, isl_int value)
unsigned isl_basic_set_offset(__isl_keep isl_basic_set *bset, enum isl_dim_type type)
isl_bool isl_basic_set_is_wrapping(__isl_keep isl_basic_set *bset)
static __isl_give isl_map * map_lower_bound_pw_aff(__isl_take isl_map *map, unsigned pos, __isl_take isl_pw_aff *lower)
static unsigned pos(__isl_keep isl_space *space, enum isl_dim_type type)
isl_bool isl_set_is_rational(__isl_keep isl_set *set)
static __isl_give isl_map * isl_map_reverse_range_product(__isl_take isl_map *map1, __isl_take isl_map *map2)
static __isl_give isl_map * remove_if_empty(__isl_take isl_map *map, int i)
__isl_give isl_map * isl_map_union(__isl_take isl_map *map1, __isl_take isl_map *map2)
__isl_null isl_basic_map * isl_basic_map_free(__isl_take isl_basic_map *bmap)
__isl_give isl_basic_map * isl_basic_map_drop(__isl_take isl_basic_map *bmap, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_basic_set * isl_basic_set_project_out(__isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_basic_set * isl_basic_set_extend(__isl_take isl_basic_set *base, unsigned extra, unsigned n_eq, unsigned n_ineq)
isl_bool isl_basic_map_equal_div_expr_part(__isl_keep isl_basic_map *bmap1, int pos1, __isl_keep isl_basic_map *bmap2, int pos2, unsigned first, unsigned n)
__isl_give isl_basic_map * isl_basic_map_domain_map(__isl_take isl_basic_map *bmap)
static __isl_give isl_space * isl_space_set(__isl_take isl_space *space, enum isl_dim_type type, __isl_take isl_space *set)
static __isl_give isl_map * map_intersect_internal(__isl_take isl_map *map1, __isl_take isl_map *map2)
__isl_give isl_basic_set * isl_basic_set_fix_si(__isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned pos, int value)
isl_ctx * isl_basic_map_get_ctx(__isl_keep isl_basic_map *bmap)
__isl_give isl_basic_map * isl_basic_map_remove_dims(__isl_take isl_basic_map *bmap, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_basic_map * isl_basic_map_range_product(__isl_take isl_basic_map *bmap1, __isl_take isl_basic_map *bmap2)
isl_size isl_basic_set_total_dim(__isl_keep const isl_basic_set *bset)
__isl_give isl_basic_map * isl_basic_map_set_div_expr_constant_num_si_inplace(__isl_take isl_basic_map *bmap, int div, int value)
__isl_give isl_set * isl_set_reset_tuple_id(__isl_take isl_set *set)
int isl_basic_map_constraint_cmp(__isl_keep isl_basic_map *bmap, isl_int *c1, isl_int *c2)
static __isl_give isl_basic_map * basic_map_space_reset(__isl_take isl_basic_map *bmap, enum isl_dim_type type)
__isl_give isl_map * isl_map_normalize(__isl_take isl_map *map)
__isl_give isl_map * isl_set_identity(__isl_take isl_set *set)
int isl_basic_map_alloc_div(__isl_keep isl_basic_map *bmap)
__isl_give isl_map * isl_map_set_tuple_name(__isl_take isl_map *map, enum isl_dim_type type, const char *s)
isl_bool isl_basic_map_div_is_marked_unknown(__isl_keep isl_basic_map *bmap, int div)
__isl_give isl_map * isl_map_order_divs(__isl_take isl_map *map)
static __isl_give isl_map * map_lex_gte(__isl_take isl_space *space, int equal)
isl_bool isl_map_has_space_tuples(__isl_keep isl_map *map, __isl_keep isl_space *space)
__isl_give isl_map * isl_map_from_domain_and_range(__isl_take isl_set *domain, __isl_take isl_set *range)
__isl_give isl_map * isl_map_drop_constraints_involving_dims(__isl_take isl_map *map, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_map * isl_map_order_gt(__isl_take isl_map *map, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2)
static __isl_give isl_basic_map * var_more(__isl_take isl_basic_map *bmap, unsigned pos)
__isl_give isl_set * isl_set_eliminate(__isl_take isl_set *set, enum isl_dim_type type, unsigned first, unsigned n)
isl_bool isl_map_is_strict_subset(__isl_keep isl_map *map1, __isl_keep isl_map *map2)
isl_size isl_set_n_param(__isl_keep isl_set *set)
__isl_give isl_basic_set * isl_basic_set_tighten_outward(__isl_take isl_basic_set *bset, __isl_keep isl_vec *vec)
isl_size isl_basic_set_n_inequality(__isl_keep isl_basic_set *bset)
__isl_null isl_basic_set * isl_basic_set_free(__isl_take isl_basic_set *bset)
isl_stat isl_basic_set_check_no_locals(__isl_keep isl_basic_set *bset)
isl_stat isl_basic_set_vars_get_sign(__isl_keep isl_basic_set *bset, unsigned first, unsigned n, int *signs)
__isl_give isl_set * isl_set_align_divs(__isl_take isl_set *set)
__isl_give isl_map * isl_map_fix_val(__isl_take isl_map *map, enum isl_dim_type type, unsigned pos, __isl_take isl_val *v)
__isl_give isl_val * isl_map_plain_get_val_if_fixed(__isl_keep isl_map *map, enum isl_dim_type type, unsigned pos)
int isl_basic_set_compare_at(__isl_keep isl_basic_set *bset1, __isl_keep isl_basic_set *bset2, int pos)
static isl_bool isl_basic_set_plain_has_fixed_var(__isl_keep isl_basic_set *bset, unsigned pos, isl_int *val)
__isl_give isl_map * isl_map_upper_bound_multi_pw_aff(__isl_take isl_map *map, __isl_take isl_multi_pw_aff *upper)
__isl_give isl_map * isl_space_universe_map(__isl_take isl_space *space)
__isl_give isl_basic_set * isl_basic_set_fix(__isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned pos, isl_int value)
__isl_give isl_map * isl_map_upper_bound(__isl_take isl_map *map, enum isl_dim_type type, unsigned pos, isl_int value)
__isl_give isl_basic_map * isl_basic_map_set_dim_name(__isl_take isl_basic_map *bmap, enum isl_dim_type type, unsigned pos, const char *s)
isl_size isl_basic_map_dim(__isl_keep isl_basic_map *bmap, enum isl_dim_type type)
isl_bool isl_map_plain_is_universe(__isl_keep isl_map *map)
isl_ctx * isl_map_get_ctx(__isl_keep isl_map *map)
isl_bool isl_set_is_box(__isl_keep isl_set *set)
__isl_give isl_set * isl_set_equate(__isl_take isl_set *set, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2)
__isl_give isl_map * isl_map_flatten(__isl_take isl_map *map)
__isl_give isl_basic_map * isl_basic_map_set_to_empty(__isl_take isl_basic_map *bmap)
__isl_give isl_basic_map * isl_basic_map_remove_unknown_divs(__isl_take isl_basic_map *bmap)
__isl_give isl_basic_map * isl_basic_map_less_at(__isl_take isl_space *space, unsigned pos)
static isl_stat isl_set_check_range(__isl_keep isl_set *set, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_map * isl_map_preimage_multi_pw_aff(__isl_take isl_map *map, enum isl_dim_type type, __isl_take isl_multi_pw_aff *mpa)
static __isl_give isl_map * map_equate_params(__isl_take isl_map *map, __isl_keep isl_multi_id *tuple)
static isl_bool isl_map_plain_has_fixed_var(__isl_keep isl_map *map, unsigned pos, isl_int *val)
__isl_give isl_map * isl_map_domain_factor_domain(__isl_take isl_map *map)
__isl_give isl_basic_map * isl_basic_map_more_at(__isl_take isl_space *space, unsigned pos)
static __isl_give isl_basic_map * insert_bounds_on_div_from_ineq(__isl_take isl_basic_map *bmap, int div, int i, unsigned total, isl_int v, int lb, int ub)
isl_bool isl_basic_set_is_equal(__isl_keep isl_basic_set *bset1, __isl_keep isl_basic_set *bset2)
__isl_give isl_map * isl_map_intersect_domain_wrapped_domain(__isl_take isl_map *map, __isl_take isl_set *domain)
static isl_stat check_map_compatible_range_multi_aff(__isl_keep isl_map *map, enum isl_dim_type type, __isl_keep isl_multi_aff *ma)
__isl_give isl_basic_map * isl_basic_map_preimage_range_multi_aff(__isl_take isl_basic_map *bmap, __isl_take isl_multi_aff *ma)
static __isl_give isl_map * isl_map_transform(__isl_take isl_map *map, __isl_give isl_space *(*fn_space)(__isl_take isl_space *space), __isl_give isl_basic_map *(*fn_bmap)(__isl_take isl_basic_map *bmap))
static int sort_constraint_cmp(const void *p1, const void *p2, void *arg)
isl_bool isl_basic_map_has_dim_id(__isl_keep isl_basic_map *bmap, enum isl_dim_type type, unsigned pos)
__isl_give isl_id * isl_map_get_domain_tuple_id(__isl_keep isl_map *map)
__isl_give isl_pw_aff * isl_set_dim_min(__isl_take isl_set *set, int pos)
static __isl_give isl_basic_map * var_equal(__isl_take isl_basic_map *bmap, unsigned pos)
__isl_give isl_set * isl_set_drop_unused_params(__isl_take isl_set *set)
int isl_basic_map_first_unknown_div(__isl_keep isl_basic_map *bmap)
int isl_set_find_dim_by_name(__isl_keep isl_set *set, enum isl_dim_type type, const char *name)
__isl_give isl_map * isl_map_apply_domain(__isl_take isl_map *map1, __isl_take isl_map *map2)
__isl_give isl_map * isl_map_lex_le_map(__isl_take isl_map *map1, __isl_take isl_map *map2)
__isl_give isl_basic_set_list * isl_basic_map_list_underlying_set(__isl_take isl_basic_map_list *list)
__isl_give isl_basic_set * isl_basic_set_free_inequality(__isl_take isl_basic_set *bset, unsigned n)
isl_bool isl_set_is_equal(__isl_keep isl_set *set1, __isl_keep isl_set *set2)
static __isl_give isl_map * map_intersect(__isl_take isl_map *map1, __isl_take isl_map *map2)
isl_bool isl_map_plain_is_injective(__isl_keep isl_map *map)
__isl_give isl_map * isl_map_set_dim_name(__isl_take isl_map *map, enum isl_dim_type type, unsigned pos, const char *s)
__isl_give isl_basic_set * isl_basic_set_insert_dims(__isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned pos, unsigned n)
static __isl_give isl_map * map_intersect_set(__isl_take isl_map *map, __isl_take isl_space *space, __isl_take isl_set *set, __isl_give isl_basic_map *fn(__isl_take isl_basic_map *bmap, __isl_take isl_basic_set *bset))
isl_bool isl_map_can_zip(__isl_keep isl_map *map)
__isl_give isl_basic_map * isl_basic_map_free_equality(__isl_take isl_basic_map *bmap, unsigned n)
static __isl_give isl_basic_map * add_known_div_constraints(__isl_take isl_basic_map *bmap)
__isl_give isl_map * isl_map_curry(__isl_take isl_map *map)
isl_bool isl_map_domain_is_wrapping(__isl_keep isl_map *map)
int isl_basic_map_output_defining_equality(__isl_keep isl_basic_map *bmap, int pos, int *div, int *ineq)
__isl_give isl_map * isl_map_lex_le_first(__isl_take isl_space *space, unsigned n)
int isl_basic_map_drop_inequality(__isl_keep isl_basic_map *bmap, unsigned pos)
__isl_give isl_map * isl_map_lex_lt(__isl_take isl_space *set_space)
isl_bool isl_basic_set_plain_is_empty(__isl_keep isl_basic_set *bset)
__isl_give isl_set * isl_set_project_out_param_id_list(__isl_take isl_set *set, __isl_take isl_id_list *list)
int isl_basic_map_alloc_inequality(__isl_keep isl_basic_map *bmap)
__isl_give isl_map * isl_map_oppose(__isl_take isl_map *map, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2)
uint32_t isl_basic_set_get_hash(__isl_keep isl_basic_set *bset)
__isl_give isl_map * isl_map_intersect_range(__isl_take isl_map *map, __isl_take isl_set *set)
int isl_map_find_dim_by_name(__isl_keep isl_map *map, enum isl_dim_type type, const char *name)
__isl_give isl_set * isl_basic_set_lexmax(__isl_take isl_basic_set *bset)
__isl_give isl_map * isl_map_lower_bound(__isl_take isl_map *map, enum isl_dim_type type, unsigned pos, isl_int value)
isl_bool isl_map_can_range_curry(__isl_keep isl_map *map)
__isl_null isl_set * isl_set_free(__isl_take isl_set *set)
__isl_give isl_basic_map * isl_basic_map_remove_divs(__isl_take isl_basic_map *bmap)
__isl_give isl_set * isl_set_eliminate_dims(__isl_take isl_set *set, unsigned first, unsigned n)
int isl_set_follows_at(__isl_keep isl_set *set1, __isl_keep isl_set *set2, int pos)
__isl_give isl_basic_map * isl_basic_map_add_div_constraint(__isl_take isl_basic_map *bmap, unsigned div, int sign)
__isl_give isl_id * isl_basic_set_get_dim_id(__isl_keep isl_basic_set *bset, enum isl_dim_type type, unsigned pos)
__isl_give isl_map * isl_map_realign(__isl_take isl_map *map, __isl_take isl_reordering *r)
__isl_give isl_map * isl_map_remove_divs_involving_dims(__isl_take isl_map *map, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_set * isl_set_universe(__isl_take isl_space *space)
static __isl_give isl_basic_map * isl_basic_map_range_reverse(__isl_take isl_basic_map *bmap)
__isl_give isl_map * isl_map_lex_ge_map(__isl_take isl_map *map1, __isl_take isl_map *map2)
__isl_give isl_set * isl_set_remove_divs_involving_dims(__isl_take isl_set *set, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_set * isl_set_drop_constraints_not_involving_dims(__isl_take isl_set *set, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_set * isl_set_add_dims(__isl_take isl_set *set, enum isl_dim_type type, unsigned n)
__isl_give isl_set * isl_set_intersect_factor_range(__isl_take isl_set *set, __isl_take isl_set *range)
static enum isl_lp_result basic_set_maximal_difference_at(__isl_keep isl_basic_set *bset1, __isl_keep isl_basic_set *bset2, int pos, isl_int *opt)
__isl_give isl_basic_set * isl_basic_set_add_eq(__isl_take isl_basic_set *bset, isl_int *eq)
__isl_give isl_set * isl_set_intersect_params(__isl_take isl_set *set, __isl_take isl_set *params)
__isl_give isl_map * isl_map_preimage_multi_aff(__isl_take isl_map *map, enum isl_dim_type type, __isl_take isl_multi_aff *ma)
isl_bool isl_map_has_equal_params(__isl_keep isl_map *map1, __isl_keep isl_map *map2)
isl_stat isl_basic_set_check_no_params(__isl_keep isl_basic_set *bset)
isl_bool isl_map_space_tuple_is_equal(__isl_keep isl_map *map, enum isl_dim_type type1, __isl_keep isl_space *space, enum isl_dim_type type2)
static __isl_give isl_constraint * constraint_order_ge(__isl_take isl_space *space, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2)
int isl_map_is_translation(__isl_keep isl_map *map)
static isl_bool basic_map_dim_is_bounded(__isl_keep isl_basic_map *bmap, enum isl_dim_type type, unsigned pos, int lower, int upper)
__isl_give isl_set * isl_basic_set_union(__isl_take isl_basic_set *bset1, __isl_take isl_basic_set *bset2)
static __isl_give isl_set * set_parameter_preimage(__isl_take isl_set *set, __isl_take isl_mat *mat)
__isl_give isl_set * isl_set_remove_unknown_divs(__isl_take isl_set *set)
__isl_give isl_map * isl_map_cow(__isl_take isl_map *map)
isl_size isl_basic_set_var_offset(__isl_keep isl_basic_set *bset, enum isl_dim_type type)
__isl_give isl_map * isl_map_from_basic_map(__isl_take isl_basic_map *bmap)
__isl_give isl_map * isl_map_intersect_params(__isl_take isl_map *map, __isl_take isl_set *params)
__isl_give isl_basic_map * isl_basic_map_flat_range_product(__isl_take isl_basic_map *bmap1, __isl_take isl_basic_map *bmap2)
__isl_give isl_basic_map * isl_basic_map_uncurry(__isl_take isl_basic_map *bmap)
isl_size isl_set_n_dim(__isl_keep isl_set *set)
__isl_give isl_basic_map * isl_basic_map_mark_div_unknown(__isl_take isl_basic_map *bmap, int div)
__isl_give isl_set * isl_set_copy(__isl_keep isl_set *set)
isl_stat isl_set_foreach_orthant(__isl_keep isl_set *set, isl_stat(*fn)(__isl_take isl_set *orthant, int *signs, void *user), void *user)
__isl_give isl_basic_set * isl_basic_map_underlying_set(__isl_take isl_basic_map *bmap)
static __isl_give isl_map * map_space_reset(__isl_take isl_map *map, enum isl_dim_type type)
__isl_give isl_basic_set * isl_basic_set_list_intersect(__isl_take isl_basic_set_list *list)
static __isl_give isl_map * map_lex_gte_first(__isl_take isl_space *space, unsigned n, int equal)
__isl_give isl_set * isl_set_preimage_multi_aff(__isl_take isl_set *set, __isl_take isl_multi_aff *ma)
__isl_give isl_map * isl_map_remove_obvious_duplicates(__isl_take isl_map *map)
int isl_map_find_dim_by_id(__isl_keep isl_map *map, enum isl_dim_type type, __isl_keep isl_id *id)
isl_bool isl_basic_map_plain_is_fixed(__isl_keep isl_basic_map *bmap, enum isl_dim_type type, unsigned pos, isl_int *val)
__isl_give isl_set * isl_set_intersect_factor_domain(__isl_take isl_set *set, __isl_take isl_set *domain)
__isl_give isl_basic_set * isl_basic_set_free_equality(__isl_take isl_basic_set *bset, unsigned n)
__isl_give isl_set * isl_set_params(__isl_take isl_set *set)
__isl_give isl_basic_map * isl_basic_map_preimage_domain_multi_aff(__isl_take isl_basic_map *bmap, __isl_take isl_multi_aff *ma)
__isl_give isl_map * isl_map_intersect(__isl_take isl_map *map1, __isl_take isl_map *map2)
__isl_give isl_basic_map * isl_basic_map_cow(__isl_take isl_basic_map *bmap)
isl_bool isl_basic_map_is_transformation(__isl_keep isl_basic_map *bmap)
__isl_give isl_basic_map * isl_basic_map_fix_si(__isl_take isl_basic_map *bmap, enum isl_dim_type type, unsigned pos, int value)
isl_bool isl_basic_map_is_single_valued(__isl_keep isl_basic_map *bmap)
__isl_give isl_local_space * isl_basic_map_get_local_space(__isl_keep isl_basic_map *bmap)
static __isl_give isl_basic_map * basic_map_bound_si(__isl_take isl_basic_map *bmap, enum isl_dim_type type, unsigned pos, int value, int upper)
static isl_bool isl_basic_map_plain_has_fixed_var(__isl_keep isl_basic_map *bmap, unsigned pos, isl_int *val)
static isl_stat check_convex_no_locals(__isl_keep isl_map *map)
__isl_give isl_map * isl_map_set_dim_id(__isl_take isl_map *map, enum isl_dim_type type, unsigned pos, __isl_take isl_id *id)
isl_stat isl_basic_set_dims_get_sign(__isl_keep isl_basic_set *bset, enum isl_dim_type type, unsigned first, unsigned n, int *signs)
isl_size isl_set_tuple_dim(__isl_keep isl_set *set)
isl_bool isl_map_plain_is_empty(__isl_keep isl_map *map)
__isl_give isl_basic_set * isl_basic_set_neg(__isl_take isl_basic_set *bset)
__isl_give isl_map * isl_map_drop_unused_params(__isl_take isl_map *map)
isl_bool isl_map_can_uncurry(__isl_keep isl_map *map)
__isl_give isl_basic_map * isl_basic_map_upper_bound_si(__isl_take isl_basic_map *bmap, enum isl_dim_type type, unsigned pos, int value)
__isl_give isl_map * isl_map_intersect_range_factor_domain(__isl_take isl_map *map, __isl_take isl_map *factor)
static __isl_give isl_map * map_preimage_multi_aff(__isl_take isl_map *map, enum isl_dim_type type, __isl_take isl_multi_aff *ma)
__isl_give isl_map * isl_map_order_le(__isl_take isl_map *map, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2)
static int room_for_con(__isl_keep isl_basic_map *bmap, unsigned n)
isl_bool isl_map_align_params_map_map_and_test(__isl_keep isl_map *map1, __isl_keep isl_map *map2, isl_bool(*fn)(__isl_keep isl_map *map1, __isl_keep isl_map *map2))
__isl_give isl_map * isl_map_range_map(__isl_take isl_map *map)
__isl_give isl_map * isl_map_lex_gt_first(__isl_take isl_space *space, unsigned n)
__isl_give isl_set * isl_set_project_out(__isl_take isl_set *set, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_basic_set_list * isl_set_get_basic_set_list(__isl_keep isl_set *set)
__isl_give isl_mat * isl_basic_map_get_divs(__isl_keep isl_basic_map *bmap)
__isl_give isl_basic_set * isl_basic_set_cow(__isl_take isl_basic_set *bset)
uint32_t isl_map_get_hash(__isl_keep isl_map *map)
uint32_t isl_set_get_hash(__isl_keep isl_set *set)
isl_bool isl_set_involves_dims(__isl_keep isl_set *set, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_id * isl_map_get_range_tuple_id(__isl_keep isl_map *map)
int isl_set_size(__isl_keep isl_set *set)
static __isl_give isl_map * map_intersect_add_constraint(__isl_take isl_map *map1, __isl_take isl_map *map2)
isl_bool isl_map_is_single_valued(__isl_keep isl_map *map)
isl_bool isl_basic_map_is_universe(__isl_keep isl_basic_map *bmap)
isl_stat isl_set_foreach_basic_set(__isl_keep isl_set *set, isl_stat(*fn)(__isl_take isl_basic_set *bset, void *user), void *user)
__isl_give isl_basic_set * isl_basic_set_set_rational(__isl_take isl_basic_set *bset)
__isl_give isl_basic_map * isl_basic_map_insert_div(__isl_take isl_basic_map *bmap, int pos, __isl_keep isl_vec *div)
static int multi_aff_strides(__isl_keep isl_multi_aff *ma)
__isl_give isl_map * isl_map_intersect_domain(__isl_take isl_map *map, __isl_take isl_set *set)
__isl_give isl_basic_map * isl_basic_map_flatten_domain(__isl_take isl_basic_map *bmap)
isl_bool isl_map_is_params(__isl_keep isl_map *map)
__isl_give isl_basic_map * isl_basic_map_sort_constraints(__isl_take isl_basic_map *bmap)
__isl_give isl_set * isl_set_compute_divs(__isl_take isl_set *set)
__isl_give isl_id * isl_map_get_dim_id(__isl_keep isl_map *map, enum isl_dim_type type, unsigned pos)
int isl_set_find_dim_by_id(__isl_keep isl_set *set, enum isl_dim_type type, __isl_keep isl_id *id)
isl_bool isl_set_plain_is_equal(__isl_keep isl_set *set1, __isl_keep isl_set *set2)
__isl_give isl_set * isl_set_nat_universe(__isl_take isl_space *space)
__isl_give isl_basic_set * isl_basic_set_flat_product(__isl_take isl_basic_set *bset1, __isl_take isl_basic_set *bset2)
static int first_div_may_involve_output(__isl_keep isl_basic_map *bmap, isl_int *c, int first, int n)
__isl_give isl_map * isl_map_flat_range_product(__isl_take isl_map *map1, __isl_take isl_map *map2)
__isl_give isl_map * isl_map_zip(__isl_take isl_map *map)
isl_size isl_map_domain_tuple_dim(__isl_keep isl_map *map)
static int find_modulo_constraint_pair(__isl_keep isl_basic_map *bmap, int pos, isl_int m)
__isl_give isl_basic_set * isl_basic_set_move_dims(__isl_take isl_basic_set *bset, enum isl_dim_type dst_type, unsigned dst_pos, enum isl_dim_type src_type, unsigned src_pos, unsigned n)
__isl_give isl_map * isl_set_translation(__isl_take isl_set *deltas)
__isl_give isl_pw_aff * isl_map_dim_max(__isl_take isl_map *map, int pos)
__isl_give isl_basic_set * isl_basic_set_intersect_params(__isl_take isl_basic_set *bset1, __isl_take isl_basic_set *bset2)
static __isl_give isl_basic_map * insert_bounds_on_div(__isl_take isl_basic_map *bmap, int div)
__isl_give isl_basic_set * isl_basic_set_sort_divs(__isl_take isl_basic_set *bset)
__isl_give isl_basic_map * isl_basic_map_flatten(__isl_take isl_basic_map *bmap)
__isl_give isl_set * isl_set_remove_dims(__isl_take isl_set *bset, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_basic_map * isl_basic_map_reset(__isl_take isl_basic_map *bmap, enum isl_dim_type type)
__isl_give isl_map * isl_map_range_reverse(__isl_take isl_map *map)
__isl_give isl_local_space * isl_basic_set_get_local_space(__isl_keep isl_basic_set *bset)
static void swap_vars(struct isl_blk blk, isl_int *a, unsigned a_len, unsigned b_len)
__isl_give isl_basic_set * isl_basic_set_underlying_set(__isl_take isl_basic_set *bset)
static int first_parameter_equality(__isl_keep isl_basic_set *bset)
__isl_give isl_map * isl_map_alloc_space(__isl_take isl_space *space, int n, unsigned flags)
__isl_give isl_basic_set * isl_basic_set_positive_orthant(__isl_take isl_space *space)
const char * isl_basic_map_get_dim_name(__isl_keep isl_basic_map *bmap, enum isl_dim_type type, unsigned pos)
__isl_give isl_basic_map * isl_basic_map_drop_div(__isl_take isl_basic_map *bmap, unsigned div)
__isl_give isl_basic_set * isl_basic_set_set_integral(__isl_take isl_basic_set *bset)
__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_set * isl_set_from_params(__isl_take isl_set *set)
__isl_give isl_basic_set * isl_basic_set_lower_bound_val(__isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned pos, __isl_take isl_val *value)
__isl_give isl_map * isl_set_lex_ge_set(__isl_take isl_set *set1, __isl_take isl_set *set2)
__isl_give isl_basic_map * isl_basic_map_sum(__isl_take isl_basic_map *bmap1, __isl_take isl_basic_map *bmap2)
__isl_give isl_basic_set * isl_basic_set_remove_divs(__isl_take isl_basic_set *bset)
isl_bool isl_basic_map_is_subset(__isl_keep isl_basic_map *bmap1, __isl_keep isl_basic_map *bmap2)
__isl_give isl_set * isl_map_params(__isl_take isl_map *map)
int isl_basic_set_follows_at(__isl_keep isl_basic_set *bset1, __isl_keep isl_basic_set *bset2, int pos)
isl_bool isl_map_can_curry(__isl_keep isl_map *map)
isl_bool isl_basic_map_can_zip(__isl_keep isl_basic_map *bmap)
__isl_give isl_map * isl_map_lex_lt_first(__isl_take isl_space *space, unsigned n)
static __isl_give isl_set * set_bound_multi_pw_aff(__isl_take isl_set *set, __isl_take isl_multi_pw_aff *bound, __isl_give isl_map *set_bound(__isl_take isl_map *map, unsigned pos, __isl_take TYPE *value))
__isl_give isl_mat * isl_basic_set_get_divs(__isl_keep isl_basic_set *bset)
isl_bool isl_set_is_params(__isl_keep isl_set *set)
isl_size isl_map_range_tuple_dim(__isl_keep isl_map *map)
__isl_give isl_map * isl_map_order_lt(__isl_take isl_map *map, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2)
static isl_bool isl_map_set_has_equal_params(__isl_keep isl_map *map, __isl_keep isl_set *set)
__isl_give isl_basic_set * isl_basic_set_upper_bound_val(__isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned pos, __isl_take isl_val *value)
__isl_give isl_basic_set * isl_basic_set_params(__isl_take isl_basic_set *bset)
__isl_give isl_map * isl_map_set_domain_tuple_id(__isl_take isl_map *map, __isl_take isl_id *id)
const char * isl_basic_set_get_dim_name(__isl_keep isl_basic_set *bset, enum isl_dim_type type, unsigned pos)
isl_bool isl_set_space_has_equal_params(__isl_keep isl_set *set, __isl_keep isl_space *space)
isl_bool isl_basic_map_compatible_domain(__isl_keep isl_basic_map *bmap, __isl_keep isl_basic_set *bset)
__isl_give isl_map * isl_map_align_params(__isl_take isl_map *map, __isl_take isl_space *model)
__isl_give isl_set * isl_basic_set_lexmin(__isl_take isl_basic_set *bset)
isl_size isl_map_dim(__isl_keep isl_map *map, enum isl_dim_type type)
isl_bool isl_map_compatible_range(__isl_keep isl_map *map, __isl_keep isl_set *set)
int isl_basic_set_size(__isl_keep isl_basic_set *bset)
static __isl_give isl_basic_map * isl_basic_map_swap_vars(__isl_take isl_basic_map *bmap, unsigned pos, unsigned n1, unsigned n2)
__isl_give isl_map * isl_map_intersect_range_factor_range(__isl_take isl_map *map, __isl_take isl_map *factor)
static isl_bool has_bound(__isl_keep isl_map *map, enum isl_dim_type type, unsigned pos, isl_bool(*fn)(__isl_keep isl_basic_map *bmap, enum isl_dim_type type, unsigned pos))
isl_bool isl_basic_map_plain_is_non_empty(__isl_keep isl_basic_map *bmap)
__isl_give isl_basic_set * isl_basic_set_empty(__isl_take isl_space *space)
void isl_set_print_internal(__isl_keep isl_set *set, FILE *out, int indent)
__isl_give isl_map * isl_map_align_divs_to_basic_map_list(__isl_take isl_map *map, __isl_keep isl_basic_map_list *list)
__isl_give isl_map * isl_map_range_product(__isl_take isl_map *map1, __isl_take isl_map *map2)
__isl_give isl_map * isl_map_reset_user(__isl_take isl_map *map)
static __isl_give isl_basic_map * basic_map_bound(__isl_take isl_basic_map *bmap, enum isl_dim_type type, unsigned pos, isl_int value, int upper)
static isl_stat check_basic_map_compatible_range_multi_aff(__isl_keep isl_basic_map *bmap, enum isl_dim_type type, __isl_keep isl_multi_aff *ma)
__isl_give isl_basic_map * isl_basic_map_intersect_domain(__isl_take isl_basic_map *bmap, __isl_take isl_basic_set *bset)
isl_bool isl_basic_set_is_subset(__isl_keep isl_basic_set *bset1, __isl_keep isl_basic_set *bset2)
isl_bool isl_map_has_tuple_id(__isl_keep isl_map *map, enum isl_dim_type type)
__isl_give isl_basic_map * isl_basic_map_order_ge(__isl_take isl_basic_map *bmap, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2)
isl_stat isl_map_foreach_basic_map(__isl_keep isl_map *map, isl_stat(*fn)(__isl_take isl_basic_map *bmap, void *user), void *user)
__isl_give isl_map * isl_map_preimage_domain_pw_multi_aff(__isl_take isl_map *map, __isl_take isl_pw_multi_aff *pma)
__isl_give isl_basic_map * isl_basic_map_intersect_range(__isl_take isl_basic_map *bmap, __isl_take isl_basic_set *bset)
isl_bool isl_set_is_empty(__isl_keep isl_set *set)
__isl_give isl_map * isl_map_reset_equal_dim_space(__isl_take isl_map *map, __isl_take isl_space *space)
__isl_give isl_set * isl_set_flat_product(__isl_take isl_set *set1, __isl_take isl_set *set2)
__isl_give isl_set * isl_set_neg(__isl_take isl_set *set)
__isl_give isl_map * isl_map_set_tuple_id(__isl_take isl_map *map, enum isl_dim_type type, __isl_take isl_id *id)
static int qsort_bmap_cmp(const void *p1, const void *p2)
isl_bool isl_set_dim_has_any_upper_bound(__isl_keep isl_set *set, enum isl_dim_type type, unsigned pos)
static isl_stat isl_set_basic_set_check_equal_space(__isl_keep isl_set *set, __isl_keep isl_basic_set *bset)
isl_bool isl_basic_set_plain_is_equal(__isl_keep isl_basic_set *bset1, __isl_keep isl_basic_set *bset2)
__isl_give isl_map * isl_map_remove_empty_parts(__isl_take isl_map *map)
static __isl_give isl_basic_map * dup_constraints(__isl_take isl_basic_map *dst, __isl_keep isl_basic_map *src)
isl_bool isl_basic_set_is_box(__isl_keep isl_basic_set *bset)
__isl_give isl_map * isl_map_lex_le(__isl_take isl_space *set_space)
static __isl_give isl_pw_aff * basic_map_dim_opt(__isl_keep isl_basic_map *bmap, int max)
__isl_give isl_map * isl_map_fix_input_si(__isl_take isl_map *map, unsigned input, int value)
__isl_give isl_basic_map * isl_basic_map_range_map(__isl_take isl_basic_map *bmap)
__isl_give isl_basic_set * isl_basic_set_reset_space(__isl_take isl_basic_set *bset, __isl_take isl_space *space)
static int unique(isl_int *p, unsigned pos, unsigned len)
__isl_give isl_set * isl_set_intersect(__isl_take isl_set *set1, __isl_take isl_set *set2)
isl_bool isl_map_is_injective(__isl_keep isl_map *map)
static __isl_give isl_basic_map * add_divs(__isl_take isl_basic_map *bmap, unsigned n)
__isl_give isl_basic_set * isl_basic_set_set_tuple_id(__isl_take isl_basic_set *bset, __isl_take isl_id *id)
__isl_give isl_set * isl_basic_set_to_set(__isl_take isl_basic_set *bset)
__isl_give isl_map * isl_map_deltas_map(__isl_take isl_map *map)
int isl_basic_set_drop_inequality(__isl_keep isl_basic_set *bset, unsigned pos)
isl_size isl_set_dim(__isl_keep isl_set *set, enum isl_dim_type type)
__isl_give isl_map * isl_basic_map_compute_divs(__isl_take isl_basic_map *bmap)
isl_bool isl_map_has_range_tuple_id(__isl_keep isl_map *map)
__isl_give isl_basic_map * isl_basic_map_flatten_range(__isl_take isl_basic_map *bmap)
__isl_give isl_map * isl_map_reset_tuple_id(__isl_take isl_map *map, enum isl_dim_type type)
__isl_give isl_set * isl_set_partial_lexmax(__isl_take isl_set *set, __isl_take isl_set *dom, __isl_give isl_set **empty)
static __isl_give isl_map * map_upper_bound_pw_aff(__isl_take isl_map *map, unsigned pos, __isl_take isl_pw_aff *upper)
__isl_give isl_map * isl_map_upper_bound_si(__isl_take isl_map *map, enum isl_dim_type type, unsigned pos, int value)
isl_bool isl_set_is_wrapping(__isl_keep isl_set *set)
__isl_give isl_set * isl_set_partial_lexmin(__isl_take isl_set *set, __isl_take isl_set *dom, __isl_give isl_set **empty)
isl_bool isl_basic_set_is_universe(__isl_keep isl_basic_set *bset)
static __isl_give isl_pw_aff * set_dim_opt(__isl_take isl_set *set, int pos, int max)
int isl_set_plain_cmp(__isl_keep isl_set *set1, __isl_keep isl_set *set2)
__isl_give isl_map * isl_map_partial_lexmax(__isl_take isl_map *map, __isl_take isl_set *dom, __isl_give isl_set **empty)
__isl_give isl_map * isl_map_from_range(__isl_take isl_set *set)
__isl_give isl_map * isl_map_preimage_domain_multi_pw_aff(__isl_take isl_map *map, __isl_take isl_multi_pw_aff *mpa)
int isl_basic_map_alloc_equality(__isl_keep isl_basic_map *bmap)
isl_bool isl_basic_map_contains(__isl_keep isl_basic_map *bmap, __isl_keep isl_vec *vec)
__isl_give isl_map * isl_map_intersect_range_wrapped_domain(__isl_take isl_map *map, __isl_take isl_set *domain)
__isl_give isl_map * isl_set_unbind_params_insert_domain(__isl_take isl_set *set, __isl_take isl_multi_id *domain)
isl_bool isl_map_plain_is_fixed(__isl_keep isl_map *map, enum isl_dim_type type, unsigned pos, isl_int *val)
isl_bool isl_basic_map_dim_has_upper_bound(__isl_keep isl_basic_map *bmap, enum isl_dim_type type, unsigned pos)
__isl_give isl_basic_map * isl_basic_map_identity(__isl_take isl_space *space)
__isl_give isl_set * isl_set_project_out_all_params(__isl_take isl_set *set)
isl_bool isl_map_has_rational(__isl_keep isl_map *map)
__isl_give isl_set * isl_set_align_params(__isl_take isl_set *set, __isl_take isl_space *model)
isl_bool isl_basic_map_compatible_range(__isl_keep isl_basic_map *bmap, __isl_keep isl_basic_set *bset)
__isl_give isl_basic_map * isl_basic_map_curry(__isl_take isl_basic_map *bmap)
__isl_give isl_map * isl_map_universe(__isl_take isl_space *space)
__isl_give isl_basic_map * isl_basic_map_order_gt(__isl_take isl_basic_map *bmap, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2)
__isl_keep isl_space * isl_set_peek_space(__isl_keep isl_set *set)
__isl_give isl_set * isl_set_split_dims(__isl_take isl_set *set, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_basic_map * isl_basic_map_move_dims(__isl_take isl_basic_map *bmap, enum isl_dim_type dst_type, unsigned dst_pos, enum isl_dim_type src_type, unsigned src_pos, unsigned n)
__isl_give isl_set * isl_set_move_dims(__isl_take isl_set *set, enum isl_dim_type dst_type, unsigned dst_pos, enum isl_dim_type src_type, unsigned src_pos, unsigned n)
__isl_give isl_basic_set * isl_basic_set_drop_constraints_involving_dims(__isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_map * isl_map_factor_domain(__isl_take isl_map *map)
__isl_give isl_map * isl_map_range_factor_range(__isl_take isl_map *map)
__isl_give isl_map * isl_map_domain_product(__isl_take isl_map *map1, __isl_take isl_map *map2)
__isl_give isl_basic_map * isl_basic_map_transform_dims(__isl_take isl_basic_map *bmap, enum isl_dim_type type, unsigned first, __isl_take isl_mat *trans)
__isl_give isl_set * isl_basic_set_lexopt(__isl_take isl_basic_set *bset, unsigned flags)
__isl_give isl_basic_set * isl_basic_set_from_underlying_set(__isl_take isl_basic_set *bset, __isl_take isl_basic_set *like)
isl_stat isl_basic_map_free_div(__isl_keep isl_basic_map *bmap, unsigned n)
__isl_give isl_basic_map * isl_basic_map_apply_domain(__isl_take isl_basic_map *bmap1, __isl_take isl_basic_map *bmap2)
__isl_give isl_set * isl_set_grow(__isl_take isl_set *set, int n)
__isl_give isl_map * isl_map_domain_map(__isl_take isl_map *map)
__isl_give isl_basic_map * isl_basic_set_unwrap(__isl_take isl_basic_set *bset)
__isl_give isl_basic_map * isl_basic_map_lower_bound_si(__isl_take isl_basic_map *bmap, enum isl_dim_type type, unsigned pos, int value)
isl_stat isl_map_check_transformation(__isl_keep isl_map *map)
__isl_give isl_mat * isl_basic_map_inequalities_matrix(__isl_keep isl_basic_map *bmap, enum isl_dim_type c1, enum isl_dim_type c2, enum isl_dim_type c3, enum isl_dim_type c4, enum isl_dim_type c5)
__isl_give isl_val * isl_basic_map_plain_get_val_if_fixed(__isl_keep isl_basic_map *bmap, enum isl_dim_type type, unsigned pos)
isl_bool isl_set_plain_is_universe(__isl_keep isl_set *set)
static __isl_give isl_map * isl_map_reverse_domain_product(__isl_take isl_map *map1, __isl_take isl_map *map2)
static __isl_give isl_basic_map * basic_map_init(isl_ctx *ctx, __isl_take isl_basic_map *bmap, unsigned extra, unsigned n_eq, unsigned n_ineq)
__isl_give isl_set * isl_set_upper_bound_multi_val(__isl_take isl_set *set, __isl_take isl_multi_val *upper)
__isl_give isl_map * isl_map_align_divs(__isl_take isl_map *map)
static __isl_give isl_basic_set * neg_halfspace(__isl_take isl_space *space, int pos)
__isl_give isl_basic_map * isl_basic_map_add_dims(__isl_take isl_basic_map *bmap, enum isl_dim_type type, unsigned n)
__isl_give isl_basic_set * isl_basic_map_wrap(__isl_take isl_basic_map *bmap)
static isl_stat isl_basic_map_check_applies_range(__isl_keep isl_basic_map *bmap1, __isl_keep isl_basic_map *bmap2)
static __isl_give isl_basic_map * var_less_or_equal(__isl_take isl_basic_map *bmap, unsigned pos)
isl_bool isl_basic_set_eq_is_stride(__isl_keep isl_basic_set *bset, int i)
static __isl_give isl_map * isl_map_unmark_normalized(__isl_take isl_map *map)
__isl_give isl_basic_set * isl_basic_set_from_constraint_matrices(__isl_take isl_space *space, __isl_take isl_mat *eq, __isl_take isl_mat *ineq, enum isl_dim_type c1, enum isl_dim_type c2, enum isl_dim_type c3, enum isl_dim_type c4)
__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)
void isl_basic_set_print_internal(__isl_keep isl_basic_set *bset, FILE *out, int indent)
isl_bool isl_basic_map_is_strict_subset(__isl_keep isl_basic_map *bmap1, __isl_keep isl_basic_map *bmap2)
__isl_give isl_basic_map * isl_basic_map_fix_val(__isl_take isl_basic_map *bmap, enum isl_dim_type type, unsigned pos, __isl_take isl_val *v)
__isl_give isl_set * isl_set_apply(__isl_take isl_set *set, __isl_take isl_map *map)
__isl_give isl_basic_map * isl_basic_map_expand_divs(__isl_take isl_basic_map *bmap, __isl_take isl_mat *div, int *exp)
__isl_give isl_basic_set * isl_basic_set_flatten(__isl_take isl_basic_set *bset)
uint32_t isl_basic_map_get_hash(__isl_keep isl_basic_map *bmap)
__isl_give isl_set * isl_set_lower_bound_multi_pw_aff(__isl_take isl_set *set, __isl_take isl_multi_pw_aff *lower)
isl_bool isl_basic_map_equal_div_expr_except_constant(__isl_keep isl_basic_map *bmap1, int pos1, __isl_keep isl_basic_map *bmap2, int pos2)
static __isl_give isl_map * isl_map_change_space(__isl_take isl_map *map, isl_bool(*can_change)(__isl_keep isl_map *map), const char *cannot_change, __isl_give isl_space *(*change)(__isl_take isl_space *space))
__isl_give isl_map * isl_map_remove_divs(__isl_take isl_map *map)
__isl_give isl_map * isl_map_preimage_domain_multi_aff(__isl_take isl_map *map, __isl_take isl_multi_aff *ma)
__isl_give isl_basic_set * isl_basic_set_nat_universe(__isl_take isl_space *space)
const char * isl_basic_map_get_tuple_name(__isl_keep isl_basic_map *bmap, enum isl_dim_type type)
__isl_give isl_set * isl_basic_set_list_union(__isl_take isl_basic_set_list *list)
__isl_give isl_basic_set * isl_basic_set_remove_divs_involving_dims(__isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_id * isl_set_get_dim_id(__isl_keep isl_set *set, enum isl_dim_type type, unsigned pos)
static isl_bool isl_map_set_tuple_is_equal(__isl_keep isl_map *map, enum isl_dim_type type, __isl_keep isl_set *set)
__isl_give isl_basic_map * isl_basic_map_extend_constraints(__isl_take isl_basic_map *base, unsigned n_eq, unsigned n_ineq)
isl_bool isl_basic_map_divs_known(__isl_keep isl_basic_map *bmap)
__isl_give isl_map * isl_map_lex_ge(__isl_take isl_space *set_space)
__isl_give isl_set * isl_set_insert_dims(__isl_take isl_set *set, enum isl_dim_type type, unsigned pos, unsigned n)
__isl_give isl_basic_map * isl_basic_map_reset_space(__isl_take isl_basic_map *bmap, __isl_take isl_space *space)
__isl_give isl_map * isl_map_set_rational(__isl_take isl_map *map)
static __isl_give isl_basic_map * join_initial(__isl_keep isl_basic_set *bset1, __isl_keep isl_basic_set *bset2, int pos)
static __isl_give isl_space * isl_map_take_space(__isl_keep isl_map *map)
__isl_give isl_map * isl_map_remove_unknown_divs(__isl_take isl_map *map)
__isl_give isl_set * isl_map_bind_range(__isl_take isl_map *map, __isl_take isl_multi_id *tuple)
isl_bool isl_basic_map_involves_dims(__isl_keep isl_basic_map *bmap, enum isl_dim_type type, unsigned first, unsigned n)
static __isl_give isl_basic_map * basic_replace_space_by_local_space(__isl_take isl_basic_map *bmap, __isl_take isl_local_space *ls)
__isl_give isl_map * isl_map_range_curry(__isl_take isl_map *map)
isl_bool isl_basic_map_is_rational(__isl_keep isl_basic_map *bmap)
__isl_give isl_basic_map * isl_basic_map_extend(__isl_take isl_basic_map *base, unsigned extra, unsigned n_eq, unsigned n_ineq)
isl_bool isl_map_is_rational(__isl_keep isl_map *map)
isl_bool isl_map_compatible_domain(__isl_keep isl_map *map, __isl_keep isl_set *set)
__isl_give isl_map * isl_set_unwrap(__isl_take isl_set *set)
isl_bool isl_map_range_is_wrapping(__isl_keep isl_map *map)
__isl_give isl_map * isl_map_from_domain(__isl_take isl_set *set)
static __isl_give isl_map * isl_map_preimage_pw_multi_aff_aligned(__isl_take isl_map *map, enum isl_dim_type type, __isl_take isl_pw_multi_aff *pma)
__isl_give isl_set * isl_set_upper_bound_val(__isl_take isl_set *set, enum isl_dim_type type, unsigned pos, __isl_take isl_val *value)
static __isl_give isl_set * equate_params(__isl_take isl_set *set, __isl_keep isl_multi_id *tuple)
static __isl_give isl_pw_multi_aff * isl_map_partial_lexopt_aligned_pw_multi_aff(__isl_take isl_map *map, __isl_take isl_set *dom, __isl_give isl_set **empty, unsigned flags)
const char * isl_set_get_dim_name(__isl_keep isl_set *set, enum isl_dim_type type, unsigned pos)
isl_bool isl_map_has_dim_name(__isl_keep isl_map *map, enum isl_dim_type type, unsigned pos)
isl_ctx * isl_basic_set_get_ctx(__isl_keep isl_basic_set *bset)
__isl_give isl_map * isl_map_fix_si(__isl_take isl_map *map, enum isl_dim_type type, unsigned pos, int value)
__isl_give isl_map * isl_map_add_basic_map(__isl_take isl_map *map, __isl_take isl_basic_map *bmap)
__isl_give isl_set * isl_set_union_disjoint(__isl_take isl_set *set1, __isl_take isl_set *set2)
__isl_give isl_map * isl_set_lex_gt_set(__isl_take isl_set *set1, __isl_take isl_set *set2)
__isl_give isl_basic_set * isl_basic_set_apply(__isl_take isl_basic_set *bset, __isl_take isl_basic_map *bmap)
__isl_give isl_basic_map * isl_basic_map_empty(__isl_take isl_space *space)
int isl_map_may_be_set(__isl_keep isl_map *map)
__isl_give isl_basic_map * isl_basic_map_overlying_set(__isl_take isl_basic_set *bset, __isl_take isl_basic_map *like)
__isl_keep isl_space * isl_map_peek_space(__isl_keep const isl_map *map)
__isl_give isl_basic_set * isl_basic_set_copy(__isl_keep isl_basic_set *bset)
isl_bool isl_map_is_bijective(__isl_keep isl_map *map)
__isl_give isl_map * isl_set_flatten_map(__isl_take isl_set *set)
isl_bool isl_basic_map_is_set(__isl_keep isl_basic_map *bmap)
__isl_give isl_basic_set * isl_basic_set_universe(__isl_take isl_space *space)
__isl_give isl_map * isl_map_identity(__isl_take isl_space *space)
__isl_give isl_map * isl_set_wrapped_domain_map(__isl_take isl_set *set)
__isl_give isl_basic_map * isl_basic_map_align_divs(__isl_take isl_basic_map *dst, __isl_keep isl_basic_map *src)
__isl_keep isl_space * isl_basic_set_peek_space(__isl_keep isl_basic_set *bset)
__isl_give isl_map * isl_map_insert_dims(__isl_take isl_map *map, enum isl_dim_type type, unsigned pos, unsigned n)
__isl_give isl_map * isl_map_add_dims(__isl_take isl_map *map, enum isl_dim_type type, unsigned n)
static isl_bool div_involves_vars(__isl_keep isl_basic_map *bmap, int div, unsigned first, unsigned n)
__isl_give isl_basic_map * isl_basic_map_reverse(__isl_take isl_basic_map *bmap)
static isl_bool isl_basic_map_has_equal_params(__isl_keep isl_basic_map *bmap1, __isl_keep isl_basic_map *bmap2)
__isl_null isl_map * isl_map_free(__isl_take isl_map *map)
__isl_give isl_basic_map_list * isl_map_get_basic_map_list(__isl_keep isl_map *map)
__isl_give isl_mat * isl_basic_set_extract_equalities(__isl_keep isl_basic_set *bset)
isl_bool isl_set_has_tuple_id(__isl_keep isl_set *set)
__isl_give isl_map * isl_map_grow(__isl_take isl_map *map, int n)
static __isl_give isl_basic_map * isl_basic_map_fix_pos_si(__isl_take isl_basic_map *bmap, unsigned pos, int value)
__isl_give isl_map * isl_map_neg(__isl_take isl_map *map)
isl_bool isl_basic_map_has_rational(__isl_keep isl_basic_map *bmap)
const char * isl_basic_set_get_tuple_name(__isl_keep isl_basic_set *bset)
__isl_give isl_map * isl_map_floordiv_val(__isl_take isl_map *map, __isl_take isl_val *d)
__isl_give isl_map * isl_map_project_out(__isl_take isl_map *map, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_basic_set * isl_basic_set_alloc(isl_ctx *ctx, unsigned nparam, unsigned dim, unsigned extra, unsigned n_eq, unsigned n_ineq)
isl_bool isl_map_divs_known(__isl_keep isl_map *map)
isl_bool isl_basic_map_can_uncurry(__isl_keep isl_basic_map *bmap)
__isl_give isl_basic_set * isl_basic_set_from_local_space(__isl_take isl_local_space *ls)
__isl_give isl_basic_map * isl_basic_map_align_params(__isl_take isl_basic_map *bmap, __isl_take isl_space *model)
__isl_give isl_basic_map * isl_basic_map_swap_div(__isl_take isl_basic_map *bmap, int a, int b)
isl_bool isl_set_has_dim_id(__isl_keep isl_set *set, enum isl_dim_type type, unsigned pos)
__isl_give isl_map * isl_map_drop_constraints_not_involving_dims(__isl_take isl_map *map, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_map * isl_map_lex_lt_map(__isl_take isl_map *map1, __isl_take isl_map *map2)
__isl_give isl_set * isl_set_drop(__isl_take isl_set *set, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_map * isl_map_dup(__isl_keep isl_map *map)
__isl_give isl_id * isl_set_get_tuple_id(__isl_keep isl_set *set)
static __isl_give isl_set * base_compute_divs(__isl_take isl_basic_set *bset)
__isl_give isl_basic_map * isl_basic_map_copy(__isl_keep isl_basic_map *bmap)
__isl_give isl_basic_set * isl_basic_set_set_dim_name(__isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned pos, const char *s)
__isl_give isl_set * isl_set_fix_si(__isl_take isl_set *set, enum isl_dim_type type, unsigned pos, int value)
__isl_give isl_basic_set * isl_basic_set_lift(__isl_take isl_basic_set *bset)
__isl_give isl_aff * isl_basic_set_get_div(__isl_keep isl_basic_set *bset, int pos)
__isl_give isl_basic_set * isl_basic_set_transform_dims(__isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned first, __isl_take isl_mat *trans)
__isl_give isl_map * isl_map_remove_dims(__isl_take isl_map *map, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_basic_map * isl_basic_map_intersect(__isl_take isl_basic_map *bmap1, __isl_take isl_basic_map *bmap2)
static __isl_give isl_basic_map * insert_div_rows(__isl_take isl_basic_map *bmap, int n)
static __isl_give isl_basic_map * insert_divs_from_local_space(__isl_take isl_basic_map *bmap, __isl_keep isl_local_space *ls)
__isl_give isl_set * isl_set_set_rational(__isl_take isl_set *set)
static __isl_give isl_basic_set * isl_basic_set_bound(__isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned pos, isl_int value, int upper)
__isl_give isl_basic_set * isl_basic_set_drop_unused_params(__isl_take isl_basic_set *bset)
__isl_give isl_set * isl_set_remove_empty_parts(__isl_take isl_set *set)
isl_bool isl_map_space_has_equal_params(__isl_keep isl_map *map, __isl_keep isl_space *space)
__isl_give isl_set * isl_set_bind(__isl_take isl_set *set, __isl_take isl_multi_id *tuple)
__isl_give isl_set * isl_set_project_out_param_id(__isl_take isl_set *set, __isl_take isl_id *id)
__isl_give isl_set * isl_set_lower_bound_multi_val(__isl_take isl_set *set, __isl_take isl_multi_val *lower)
__isl_give isl_map * isl_map_preimage_pw_multi_aff(__isl_take isl_map *map, enum isl_dim_type type, __isl_take isl_pw_multi_aff *pma)
static int room_for_ineq(__isl_keep isl_basic_map *bmap, unsigned n)
int isl_basic_map_find_dim_by_name(__isl_keep isl_basic_map *bmap, enum isl_dim_type type, const char *name)
__isl_give isl_set * isl_set_realign(__isl_take isl_set *set, __isl_take isl_reordering *r)
__isl_give isl_basic_map * isl_basic_map_preimage_multi_aff(__isl_take isl_basic_map *bmap, enum isl_dim_type type, __isl_take isl_multi_aff *ma)
isl_bool isl_map_has_domain_tuple_id(__isl_keep isl_map *map)
__isl_give isl_map * isl_set_project_onto_map(__isl_take isl_set *set, enum isl_dim_type type, unsigned first, unsigned n)
isl_bool isl_map_plain_is_equal(__isl_keep isl_map *map1, __isl_keep isl_map *map2)
__isl_give isl_set * isl_set_substitute(__isl_take isl_set *set, unsigned pos, __isl_keep isl_aff *subs)
__isl_give isl_map * isl_map_range_factor_domain(__isl_take isl_map *map)
void isl_basic_map_print_internal(__isl_keep isl_basic_map *bmap, FILE *out, int indent)
__isl_give isl_basic_map * isl_basic_map_set_tuple_id(__isl_take isl_basic_map *bmap, enum isl_dim_type type, __isl_take isl_id *id)
__isl_give isl_set * isl_map_deltas(__isl_take isl_map *map)
__isl_give isl_basic_map * isl_basic_map_set_rational(__isl_take isl_basic_map *bmap)
isl_bool isl_map_tuple_is_equal(__isl_keep isl_map *map1, enum isl_dim_type type1, __isl_keep isl_map *map2, enum isl_dim_type type2)
static __isl_give isl_basic_set * nonneg_halfspace(__isl_take isl_space *space, int pos)
int isl_basic_set_alloc_inequality(__isl_keep isl_basic_set *bset)
isl_bool isl_map_is_set(__isl_keep isl_map *map)
static isl_stat isl_basic_set_check_equal_space(__isl_keep isl_basic_set *bset1, __isl_keep isl_basic_set *bset2)
static isl_stat isl_basic_map_check_compatible_domain(__isl_keep isl_basic_map *bmap, __isl_keep isl_basic_set *bset)
__isl_give isl_map * isl_map_compute_divs(__isl_take isl_map *map)
static isl_stat isl_basic_map_check_transformation(__isl_keep isl_basic_map *bmap)
static __isl_give isl_map * isl_map_restore_space(__isl_take isl_map *map, __isl_take isl_space *space)
static __isl_give isl_map * map_bound_si(__isl_take isl_map *map, enum isl_dim_type type, unsigned pos, int value, int upper)
isl_bool isl_basic_map_plain_is_single_valued(__isl_keep isl_basic_map *bmap)
__isl_keep isl_space * isl_basic_map_peek_space(__isl_keep const isl_basic_map *bmap)
__isl_give isl_basic_map * isl_basic_map_from_domain(__isl_take isl_basic_set *bset)
__isl_give isl_set * isl_set_drop_constraints_involving_dims(__isl_take isl_set *set, enum isl_dim_type type, unsigned first, unsigned n)
static __isl_give isl_basic_map * drop_irrelevant_constraints(__isl_take isl_basic_map *bmap, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_basic_set * isl_basic_set_align_params(__isl_take isl_basic_set *bset, __isl_take isl_space *model)
__isl_give isl_set * isl_space_universe_set(__isl_take isl_space *space)
int isl_basic_map_plain_cmp(__isl_keep isl_basic_map *bmap1, __isl_keep isl_basic_map *bmap2)
static __isl_give isl_basic_map * greator(__isl_take isl_space *space, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2)
__isl_give isl_basic_map * isl_basic_map_from_domain_and_range(__isl_take isl_basic_set *domain, __isl_take isl_basic_set *range)
static __isl_give isl_basic_map * set_ma_divs(__isl_take isl_basic_map *bmap, __isl_keep isl_multi_aff *ma, int n_before, int n_after, int n_div)
static __isl_give isl_basic_set * basic_set_append_equalities(__isl_take isl_basic_set *bset, __isl_take isl_mat *eq)
__isl_give isl_basic_map * isl_basic_map_product(__isl_take isl_basic_map *bmap1, __isl_take isl_basic_map *bmap2)
static __isl_give isl_basic_map * add_ma_strides(__isl_take isl_basic_map *bmap, __isl_keep isl_multi_aff *ma, int n_before, int n_after, int n_div_ma)
__isl_give isl_basic_map * isl_basic_map_less_or_equal_at(__isl_take isl_space *space, unsigned pos)
__isl_give isl_basic_map * isl_basic_map_set_tuple_name(__isl_take isl_basic_map *bmap, enum isl_dim_type type, const char *s)
__isl_give isl_basic_set * isl_basic_set_sort_constraints(__isl_take isl_basic_set *bset)
__isl_give isl_basic_set * isl_basic_set_remove_unknown_divs(__isl_take isl_basic_set *bset)
__isl_give isl_set * isl_set_product(__isl_take isl_set *set1, __isl_take isl_set *set2)
__isl_give isl_set * isl_set_upper_bound_si(__isl_take isl_set *set, enum isl_dim_type type, unsigned pos, int value)
__isl_give isl_id * isl_map_get_tuple_id(__isl_keep isl_map *map, enum isl_dim_type type)
__isl_give isl_set * isl_set_fix_dim_si(__isl_take isl_set *set, unsigned dim, int value)
isl_bool isl_map_has_tuple_name(__isl_keep isl_map *map, enum isl_dim_type type)
static __isl_give isl_set * isl_basic_set_lexmin_compute_divs(__isl_take isl_basic_set *bset)
__isl_give isl_map * isl_map_lower_bound_val(__isl_take isl_map *map, enum isl_dim_type type, unsigned pos, __isl_take isl_val *value)
__isl_give isl_basic_set * isl_basic_map_range(__isl_take isl_basic_map *bmap)
static isl_bool div_may_involve_output(__isl_keep isl_basic_map *bmap, int div)
static unsigned map_offset(__isl_keep isl_map *map, enum isl_dim_type type)
__isl_give isl_basic_map * isl_basic_map_domain_product(__isl_take isl_basic_map *bmap1, __isl_take isl_basic_map *bmap2)
static static isl_stat isl_basic_map_check_equal_params(__isl_keep isl_basic_map *bmap1, __isl_keep isl_basic_map *bmap2)
__isl_give isl_basic_set * isl_basic_map_deltas(__isl_take isl_basic_map *bmap)
isl_bool isl_basic_set_is_params(__isl_keep isl_basic_set *bset)
isl_bool isl_map_is_product(__isl_keep isl_map *map)
__isl_give isl_set * isl_set_flatten(__isl_take isl_set *set)
__isl_give isl_basic_map * isl_basic_map_alloc_space(__isl_take isl_space *space, unsigned extra, unsigned n_eq, unsigned n_ineq)
__isl_give isl_pw_aff * isl_set_dim_max(__isl_take isl_set *set, int pos)
isl_bool isl_set_has_tuple_name(__isl_keep isl_set *set)
__isl_give isl_basic_map * isl_basic_map_universe(__isl_take isl_space *space)
__isl_give isl_map * isl_map_set_range_tuple_id(__isl_take isl_map *map, __isl_take isl_id *id)
static isl_bool has_any_bound(__isl_keep isl_map *map, enum isl_dim_type type, unsigned pos, isl_bool(*fn)(__isl_keep isl_basic_map *bmap, enum isl_dim_type type, unsigned pos))
#define ISL_BASIC_MAP_SORTED
#define ISL_BASIC_MAP_NO_REDUNDANT
isl_stat isl_map_align_params_bin(__isl_keep isl_map **map1, __isl_keep isl_map **map2)
__isl_give isl_basic_map * isl_basic_map_remove_duplicate_constraints(__isl_take isl_basic_map *bmap, int *progress, int detect_divs)
__isl_give isl_basic_map * isl_basic_map_eliminate_vars(__isl_take isl_basic_map *bmap, unsigned pos, unsigned n)
__isl_give isl_basic_map * isl_basic_map_simplify(__isl_take isl_basic_map *bmap)
#define ISL_BASIC_MAP_EMPTY
__isl_give isl_basic_set * isl_basic_set_preimage(__isl_take isl_basic_set *bset, __isl_take isl_mat *mat)
#define isl_basic_set_list
isl_stat isl_map_align_params_set(__isl_keep isl_map **map, __isl_keep isl_set **set)
__isl_give isl_basic_map * isl_basic_map_finalize(__isl_take isl_basic_map *bmap)
isl_stat isl_basic_map_check_equal_space(__isl_keep isl_basic_map *bmap1, __isl_keep isl_basic_map *bmap2)
__isl_give isl_basic_map * isl_basic_map_gauss(__isl_take isl_basic_map *bmap, int *progress)
#define ISL_BASIC_MAP_ALL_EQUALITIES
#define ISL_BASIC_MAP_REDUCED_COEFFICIENTS
#define ISL_BASIC_SET_FINAL
isl_stat isl_map_basic_map_check_equal_space(__isl_keep isl_map *map, __isl_keep isl_basic_map *bmap)
#define ISL_BASIC_MAP_RATIONAL
isl_stat isl_map_check_equal_space(__isl_keep isl_map *map1, __isl_keep isl_map *map2)
#define ISL_BASIC_SET_EMPTY
__isl_give isl_basic_map * isl_basic_map_drop_redundant_divs(__isl_take isl_basic_map *bmap)
#define ISL_SET_NORMALIZED
#define ISL_BASIC_SET_SORTED
#define ISL_BASIC_MAP_NO_IMPLICIT
isl_stat isl_map_check_named_params(__isl_keep isl_map *map)
#define ISL_BASIC_MAP_NORMALIZED_DIVS
__isl_give isl_basic_map * isl_basic_map_mark_final(__isl_take isl_basic_map *bmap)
#define ISL_MAP_NORMALIZED
__isl_give isl_basic_set * isl_basic_set_gauss(__isl_take isl_basic_set *bset, int *progress)
__isl_give isl_basic_set * isl_basic_set_finalize(__isl_take isl_basic_set *bset)
__isl_give isl_basic_map * isl_basic_map_drop_unrelated_constraints(__isl_take isl_basic_map *bmap, __isl_take int *group)
__isl_give isl_set * isl_set_preimage(__isl_take isl_set *set, __isl_take isl_mat *mat)
isl_stat isl_basic_map_check_range(__isl_keep isl_basic_map *bmap, enum isl_dim_type type, unsigned first, unsigned n)
#define ISL_BASIC_MAP_FINAL
__isl_give isl_mat * isl_mat_cow(__isl_take isl_mat *mat)
__isl_give isl_mat * isl_mat_sub_alloc6(isl_ctx *ctx, isl_int **row, unsigned first_row, unsigned n_row, unsigned first_col, unsigned n_col)
isl_stat isl_mat_sub_transform(isl_int **row, unsigned n_row, unsigned first_col, __isl_take isl_mat *mat)
__isl_give isl_set * isl_morph_set(__isl_take isl_morph *morph, __isl_take isl_set *set)
__isl_give isl_morph * isl_morph_inverse(__isl_take isl_morph *morph)
__isl_give isl_morph * isl_basic_set_variable_compression(__isl_keep isl_basic_set *bset, enum isl_dim_type type)
__isl_give isl_morph * isl_basic_set_parameter_compression(__isl_keep isl_basic_set *bset)
__isl_give isl_basic_set * isl_morph_basic_set(__isl_take isl_morph *morph, __isl_take isl_basic_set *bset)
__isl_give isl_morph * isl_morph_copy(__isl_keep isl_morph *morph)
static struct isl_arg_choice bound[]
__isl_give isl_printer * isl_printer_set_dump(__isl_take isl_printer *p, int dump)
__isl_null isl_reordering * isl_reordering_free(__isl_take isl_reordering *exp)
__isl_give isl_reordering * isl_parameter_alignment_reordering(__isl_keep isl_space *alignee, __isl_keep isl_space *aligner)
__isl_give isl_reordering * isl_reordering_unbind_params_insert_domain(__isl_keep isl_space *space, __isl_keep isl_multi_id *tuple)
__isl_give isl_space * isl_reordering_get_space(__isl_keep isl_reordering *r)
__isl_give isl_vec * isl_basic_set_sample_vec(__isl_take isl_basic_set *bset)
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_clr(isl_int *p, unsigned len)
int isl_seq_cmp(isl_int *p1, isl_int *p2, unsigned len)
void isl_seq_cpy(isl_int *dst, isl_int *src, unsigned len)
uint32_t isl_seq_get_hash(isl_int *p, unsigned len)
int isl_seq_eq(isl_int *p1, isl_int *p2, unsigned len)
void isl_seq_neg(isl_int *dst, isl_int *src, unsigned len)
int isl_sort(void *const pbase, size_t total_elems, size_t size, int(*cmp)(const void *, const void *, void *arg), void *arg)
isl_stat isl_space_check_is_set(__isl_keep isl_space *space)
isl_size isl_space_wrapped_dim(__isl_keep isl_space *space, enum isl_dim_type outer, enum isl_dim_type inner)
__isl_give isl_space * isl_space_flatten(__isl_take isl_space *space)
__isl_give isl_space * isl_space_bind_set(__isl_take isl_space *space, __isl_keep isl_multi_id *tuple)
__isl_give isl_space * isl_space_cow(__isl_take isl_space *space)
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_reset(__isl_take isl_space *space, enum isl_dim_type type)
__isl_give isl_space * isl_space_bind_map_domain(__isl_take isl_space *space, __isl_keep isl_multi_id *tuple)
__isl_give isl_space * isl_space_lift(__isl_take isl_space *space, unsigned n_local)
__isl_give isl_space * isl_space_copy_ids_if_unset(__isl_take isl_space *dst, enum isl_dim_type dst_type, __isl_keep isl_space *src, enum isl_dim_type src_type)
isl_bool isl_space_has_equal_ids(__isl_keep isl_space *space1, __isl_keep isl_space *space2)
isl_stat isl_space_check_range_is_wrapping(__isl_keep isl_space *space)
__isl_give isl_space * isl_space_underlying(__isl_take isl_space *space, unsigned n_div)
isl_stat isl_space_check_domain_tuples(__isl_keep isl_space *space1, __isl_keep isl_space *space2)
__isl_give isl_space * isl_space_replace_params(__isl_take isl_space *dst, __isl_keep isl_space *src)
unsigned isl_space_offset(__isl_keep isl_space *space, enum isl_dim_type type)
isl_bool isl_space_may_be_set(__isl_keep isl_space *space)
isl_stat isl_space_check_equal_tuples(__isl_keep isl_space *space1, __isl_keep isl_space *space2)
isl_bool isl_space_is_named_or_nested(__isl_keep isl_space *space, enum isl_dim_type type)
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)
void isl_tab_free(struct isl_tab *tab)
struct isl_tab_undo * isl_tab_snap(struct isl_tab *tab)
isl_stat isl_tab_add_ineq(struct isl_tab *tab, isl_int *ineq)
__isl_give struct isl_tab * isl_tab_from_basic_set(__isl_keep isl_basic_set *bset, int track)
isl_stat isl_tab_rollback(struct isl_tab *tab, struct isl_tab_undo *snap)
static __isl_give isl_map * basic_map_partial_lexopt(__isl_take isl_basic_map *bmap, __isl_take isl_basic_set *dom, __isl_give isl_set **empty, int max)
static __isl_give isl_pw_multi_aff * basic_map_partial_lexopt_pw_multi_aff(__isl_take isl_basic_map *bmap, __isl_take isl_basic_set *dom, __isl_give isl_set **empty, int max)
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_val * isl_val_alloc(isl_ctx *ctx)
__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_from_space(__isl_take isl_space *space)
__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_size isl_local_space_dim(__isl_keep isl_local_space *ls, enum isl_dim_type type)
__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_printer * isl_printer_print_basic_map(__isl_take isl_printer *printer, __isl_keep isl_basic_map *bmap)
isl_bool isl_map_has_equal_space(__isl_keep isl_map *map1, __isl_keep isl_map *map2)
__isl_give isl_basic_map * isl_basic_map_eliminate(__isl_take isl_basic_map *bmap, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_basic_map * isl_basic_map_remove_redundancies(__isl_take isl_basic_map *bmap)
__isl_export __isl_give isl_map * isl_map_project_out_all_params(__isl_take isl_map *map)
__isl_overload __isl_give isl_map * isl_map_project_out_param_id_list(__isl_take isl_map *map, __isl_take isl_id_list *list)
__isl_export __isl_give isl_map * isl_basic_map_lexmin(__isl_take isl_basic_map *bmap)
__isl_overload __isl_give isl_map * isl_map_project_out_param_id(__isl_take isl_map *map, __isl_take isl_id *id)
__isl_export isl_bool isl_map_is_subset(__isl_keep isl_map *map1, __isl_keep isl_map *map2)
struct isl_basic_set isl_basic_set
__isl_give isl_mat * isl_mat_copy(__isl_keep isl_mat *mat)
__isl_null isl_mat * isl_mat_free(__isl_take isl_mat *mat)
__isl_give isl_mat * isl_mat_alloc(isl_ctx *ctx, unsigned n_row, unsigned n_col)
isl_ctx * isl_mat_get_ctx(__isl_keep isl_mat *mat)
__isl_give isl_printer * isl_printer_set_indent(__isl_take isl_printer *p, int indent)
__isl_null isl_printer * isl_printer_free(__isl_take isl_printer *printer)
__isl_give isl_printer * isl_printer_to_file(isl_ctx *ctx, FILE *file)
__isl_give isl_printer * isl_printer_start_line(__isl_take isl_printer *p)
__isl_give isl_printer * isl_printer_end_line(__isl_take isl_printer *p)
__isl_give isl_printer * isl_printer_print_basic_set(__isl_take isl_printer *printer, __isl_keep isl_basic_set *bset)
static __isl_give isl_set * set_from_map(__isl_take isl_map *map)
isl_bool isl_space_has_equal_params(__isl_keep isl_space *space1, __isl_keep isl_space *space2)
__isl_give isl_space * isl_space_set_tuple_id(__isl_take isl_space *space, enum isl_dim_type type, __isl_take isl_id *id)
__isl_null isl_space * isl_space_free(__isl_take isl_space *space)
__isl_export __isl_give isl_space * isl_space_reverse(__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_give isl_space * isl_space_from_range(__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_export __isl_give isl_space * isl_space_curry(__isl_take isl_space *space)
__isl_give isl_space * isl_space_domain_wrapped_range(__isl_take isl_space *space)
isl_bool isl_space_has_tuple_id(__isl_keep isl_space *space, enum isl_dim_type type)
__isl_give isl_space * isl_space_insert_dims(__isl_take isl_space *space, enum isl_dim_type type, unsigned pos, unsigned n)
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_id * isl_space_get_tuple_id(__isl_keep isl_space *space, enum isl_dim_type type)
__isl_give isl_space * isl_space_set_from_params(__isl_take isl_space *space)
__isl_give isl_space * isl_space_factor_domain(__isl_take isl_space *space)
__isl_give isl_space * isl_space_copy(__isl_keep isl_space *space)
isl_bool isl_space_has_dim_name(__isl_keep isl_space *space, enum isl_dim_type type, unsigned pos)
__isl_give isl_space * isl_space_range_curry(__isl_take isl_space *space)
__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_set_dim_id(__isl_take isl_space *space, enum isl_dim_type type, unsigned pos, __isl_take isl_id *id)
__isl_give isl_space * isl_space_set_tuple_name(__isl_take isl_space *space, enum isl_dim_type type, const char *s)
__isl_keep const char * isl_space_get_dim_name(__isl_keep isl_space *space, enum isl_dim_type type, unsigned pos)
__isl_export __isl_give isl_space * isl_space_wrap(__isl_take isl_space *space)
__isl_export isl_bool isl_space_is_wrapping(__isl_keep isl_space *space)
__isl_export __isl_give isl_space * isl_space_range_reverse(__isl_take isl_space *space)
__isl_give isl_space * isl_space_join(__isl_take isl_space *left, __isl_take isl_space *right)
__isl_give isl_space * isl_space_domain_factor_domain(__isl_take isl_space *space)
__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_keep const char * isl_space_get_tuple_name(__isl_keep isl_space *space, enum isl_dim_type type)
__isl_export __isl_give isl_space * isl_space_unwrap(__isl_take isl_space *space)
__isl_give isl_space * isl_space_set_alloc(isl_ctx *ctx, unsigned nparam, unsigned dim)
__isl_export __isl_give isl_space * isl_space_uncurry(__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)
isl_bool isl_space_has_tuple_name(__isl_keep isl_space *space, enum isl_dim_type type)
isl_bool isl_space_can_curry(__isl_keep isl_space *space)
__isl_give isl_space * isl_space_domain_product(__isl_take isl_space *left, __isl_take isl_space *right)
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_set_dim_name(__isl_take isl_space *space, enum isl_dim_type type, unsigned pos, __isl_keep const char *name)
__isl_give isl_space * isl_space_drop_all_params(__isl_take isl_space *space)
isl_bool isl_space_has_dim_id(__isl_keep isl_space *space, enum isl_dim_type type, unsigned pos)
__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_id * isl_space_get_dim_id(__isl_keep isl_space *space, enum isl_dim_type type, unsigned pos)
__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_give isl_space * isl_space_zip(__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_can_zip(__isl_keep isl_space *space)
__isl_give isl_space * isl_space_domain_factor_range(__isl_take isl_space *space)
isl_bool isl_space_has_equal_tuples(__isl_keep isl_space *space1, __isl_keep isl_space *space2)
isl_bool isl_space_can_uncurry(__isl_keep isl_space *space)
__isl_give isl_space * isl_space_reset_tuple_id(__isl_take isl_space *space, enum isl_dim_type type)
__isl_give isl_space * isl_space_factor_range(__isl_take isl_space *space)
__isl_give isl_space * isl_space_alloc(isl_ctx *ctx, unsigned nparam, unsigned n_in, unsigned n_out)
__isl_give isl_space * isl_space_reset_user(__isl_take isl_space *space)
isl_bool isl_space_domain_is_wrapping(__isl_keep isl_space *space)
isl_bool isl_space_can_range_curry(__isl_keep isl_space *space)
__isl_give isl_space * isl_space_range_wrapped_range(__isl_take isl_space *space)
__isl_give isl_space * isl_space_move_dims(__isl_take isl_space *space, enum isl_dim_type dst_type, unsigned dst_pos, enum isl_dim_type src_type, unsigned src_pos, unsigned n)
int isl_space_find_dim_by_name(__isl_keep isl_space *space, enum isl_dim_type type, const char *name)
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)
enum isl_dim_type preserve_type
__isl_give isl_space *(* other_factor)(__isl_take isl_space *space)
__isl_give isl_map *(* product)(__isl_take isl_map *factor, __isl_take isl_map *other)
struct isl_basic_map * p[1]
static Signature map_product
static Signature set_to_map
__isl_give isl_val * isl_val_copy(__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_int(__isl_keep isl_val *v)
struct isl_multi_val isl_multi_val
__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_give isl_vec * isl_vec_alloc(isl_ctx *ctx, unsigned size)