55 int exactly,
int length)
72 if (d < 0 || nparam < 0 ||
total < 0)
134 if (!exact || exact < 0) {
236 if (d < 0 || nparam < 0 || !steps)
243 for (i = 0; i <
n; ++i) {
254 for (i = 0; i < d; ++i) {
262 for (j = 0; j <
n; ++j)
265 for (j = 0; j <
n; ++j)
270 for (i = 0; i <
n; ++i) {
312 if (
n_div < 0 || d < 0 || nparam < 0 ||
total < 0)
323 for (i = 0; i <
n_div; ++i) {
327 c[1 + nparam + d + i]);
359 if (
n_div < 0 || d < 0 || nparam < 0)
362 for (i = 0; i <
n_div; ++i) {
365 switch (div_purity[i]) {
377 if (
eq && empty >= 0 && !empty) {
403 if (
n_div < 0 || d < 0 || nparam < 0)
407 if (
n_div && !div_purity)
410 for (i = 0; i < bset->n_div; ++i) {
420 for (j = 0; j < i; ++j) {
423 switch (div_purity[j]) {
426 default:
p = v = 1;
break;
464 unsigned d,
int *div_purity,
int eq,
int *impurity)
467 int n =
eq ? delta->n_eq : delta->n_ineq;
468 isl_int **delta_c =
eq ? delta->eq : delta->ineq;
476 for (i = 0; i <
n; ++i) {
480 p =
purity(delta, delta_c[i], div_purity,
eq);
491 path_c = path->eq[k];
496 path_c = path->ineq[k];
501 delta_c[i] + 1 + nparam, d);
507 delta_c[i] + 1 + nparam, d);
511 delta_c[i] + 1 + nparam + d,
n_div);
586 int *div_purity = NULL;
592 if (
n_div < 0 || d < 0 || nparam < 0)
595 d + 1 + delta->n_eq, delta->n_eq + delta->n_ineq + 1);
596 off = 1 + nparam + 2 * (d + 1) +
n_div;
598 for (i = 0; i <
n_div + d + 1; ++i) {
608 for (i = 0; i < d + 1; ++i) {
619 if (
n_div && !div_purity)
623 div_purity, 1, &impurity);
625 div_purity, 0, &impurity);
690 if (d < 0 || nparam < 0 ||
total < 0)
735 for (i = 0; i < dim; ++i) {
792 for (i = 0; i <
map->n; ++i) {
797 for (j = 0; j < d; ++j) {
827 if (project && *project) {
883 if (overlaps < 0 || !overlaps) {
902 check ? &project : NULL);
981 if (d < 0 || !dom || !ran)
1049 for (j = 0; j <
map->n && ok; ++j) {
1122 for (j = 0; j <
map->n; ++j) {
1130 if (left && left[j])
1132 if (right && right[j])
1187 if (!left || !right)
1245 for (i = 0; i <
map->n; ++i) {
1255 map->p[i], &exact_i);
1272 for (j = 0; j <
map->n; ++j)
1273 left[j] = right[j] = 1;
1277 if (qc->
n >=
map->n) {
1282 left, right, &exact_i);
1337 if (!ran || !dom || !left || !right)
1344 for (i = 0; !
res && i <
map->n; ++i) {
1370 if (!comp || comp < 0) {
1394 (comp &
RIGHT) ? right : NULL);
1397 if (qc->
n >=
map->n) {
1402 (comp &
LEFT) ? left : NULL,
1403 (comp &
RIGHT) ? right : NULL, &exact_i);
1412 for (i = 0; i <
map->n; ++i) {
1429 for (i = 0; i <
map->n; ++i)
1433 for (i = 0; i <
map->n; ++i)
1458 for (i =
pos - 1; i >= 0; --i) {
1474 group[group[
pos]] = i;
1499 if (
total < 0 || k < 0)
1526 for (i = 0; i <
n; ++i)
1527 for (j = 0; j <
n; ++j)
1551 for (r = 0; r <
n; ++r) {
1555 check ? &r_exact : NULL);
1556 if (check && !r_exact)
1559 for (
p = 0;
p <
n; ++
p)
1560 for (q = 0; q <
n; ++q) {
1562 if (
p == r && q == r)
1600 isl_bool *exact,
int project,
int *group,
int n)
1617 for (i = 0; i <
n; ++i) {
1621 for (j = 0; j <
n; ++j)
1625 for (k = 0; k <
map->n; ++k) {
1627 j = group[2 * k + 1];
1640 for (i = 0; i <
n; ++i) {
1641 for (j = 0; j <
n; ++j)
1653 for (i = 0; i <
n; ++i) {
1656 for (j = 0; j <
n; ++j)
1690 if (!*
set || !group)
1693 for (i = 0; i <
n; ++i) {
1697 if (
merge(*
set, group, dom, 2 * i) < 0)
1701 if (
merge(*
set, group, dom, 2 * i + 1) < 0)
1706 for (i = 0; i < 2 *
n; ++i)
1707 if (group[i] == i) {
1709 (*set)[g] = (*set)[i];
1714 group[i] = group[group[i]];
1721 for (i = 0; i < 2 *
n; ++i)
1755 for (i = 0; i < 2 *
map->n; ++i)
1903 exact = &local_exact;
1915 isl_map *path_comp, *path_comb;
1917 while (g->
order[i] != -1) {
1924 comp, exact, project);
2054 if (d < 0 || param < 0)
2107 if (d < 0 || param < 0)
2192 aff->n_div + 1,
aff->n_div, 2 * d + 1);
2193 for (i = 0; i <
aff->n_div + 1; ++i) {
2199 for (i = 0; i <
aff->n_eq; ++i) {
2207 aff->eq[i] + 1 + nparam, d);
2209 aff->eq[i] + 1 + nparam, d);
2211 aff->eq[i] + 1 + nparam + d,
aff->n_div);
2218 for (i = 0; i < d; ++ i) {
2232 1 + nparam + 2 * d + bmap->
n_div);
2247 1 + nparam + 2 * d + bmap->
n_div);
2259 1 + nparam + 2 * d + bmap->
n_div);
2353 for (i = 0; i < d; ++i)
2357 if (is_empty < 0 || !is_empty)
2419 if (
id->n != 1 || (*qc)->n != 1)
2422 for (j = 0; j <
map->n; ++j) {
2511 for (i = 0; i <
map->n; ++i) {
2522 for (j = 0; j <
map->n; ++j) {
2606 for (i = 0; i <
map->n; ++i) {
2645 for (i = 0; i < n_group; ++i) {
2649 for (j = 0; j < n_group; ++j) {
2658 for (k = 0; k <
n; ++k) {
2660 j = group[2 * k + 1];
2670 for (i = 0; i < n_group; ++i) {
2671 for (j = 0; j < n_group; ++j)
2677 for (i = 0; i < 2 *
n; ++i)
2685 for (i = 0; i < n_group; ++i) {
2688 for (j = 0; j < n_group; ++j)
2694 for (i = 0; i < 2 *
n; ++i)
2733 for (i = 0; i <
n; ++i)
2742 for (i = 0; i <
n; ++i)
2801 while (g->
order[i] != -1) {
2828 for (i = 0; i <
n; ++i)
2843 for (i = 0; i <
n; ++i)
2946#define TYPE isl_union_map
#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)
isl_bool isl_bool_not(isl_bool b)
isl_stat isl_stat(*) void user)
isl_bool isl_bool(* test)(__isl_keep ISL_KEY *key, __isl_keep ISL_VAL *val, void *user)
#define isl_int_is_zero(i)
#define isl_int_neg(r, i)
#define isl_int_set(r, i)
#define isl_int_set_si(r, i)
#define isl_int_sub_ui(r, i, j)
enum isl_lp_result isl_set_solve_lp(__isl_keep isl_set *set, int max, isl_int *f, isl_int d, isl_int *opt, isl_int *opt_denom, __isl_give isl_vec **sol)
isl_bool isl_basic_set_plain_dim_is_fixed(__isl_keep isl_basic_set *bset, unsigned dim, isl_int *val)
isl_bool isl_basic_map_applies_range(__isl_keep isl_basic_map *bmap1, __isl_keep isl_basic_map *bmap2)
__isl_give isl_map * isl_map_reset(__isl_take isl_map *map, enum isl_dim_type type)
unsigned isl_basic_map_offset(__isl_keep isl_basic_map *bmap, enum isl_dim_type type)
__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_map * isl_map_reset_space(__isl_take isl_map *map, __isl_take isl_space *space)
static unsigned pos(__isl_keep isl_space *space, enum isl_dim_type type)
int isl_basic_map_alloc_div(__isl_keep isl_basic_map *bmap)
int isl_basic_map_alloc_inequality(__isl_keep isl_basic_map *bmap)
isl_bool isl_basic_map_is_transformation(__isl_keep isl_basic_map *bmap)
__isl_give isl_basic_set * isl_basic_set_cow(__isl_take 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_reset_space(__isl_take isl_basic_set *bset, __isl_take isl_space *space)
int isl_basic_map_alloc_equality(__isl_keep isl_basic_map *bmap)
isl_stat isl_map_check_transformation(__isl_keep isl_map *map)
isl_bool isl_basic_set_eq_is_stride(__isl_keep isl_basic_set *bset, int i)
__isl_give isl_basic_map * isl_basic_map_extend_constraints(__isl_take isl_basic_map *base, unsigned n_eq, unsigned n_ineq)
__isl_give isl_map * isl_map_add_basic_map(__isl_take isl_map *map, __isl_take isl_basic_map *bmap)
int isl_basic_set_alloc_inequality(__isl_keep isl_basic_set *bset)
__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_basic_map * isl_basic_map_simplify(__isl_take isl_basic_map *bmap)
__isl_give isl_basic_map * isl_basic_map_finalize(__isl_take isl_basic_map *bmap)
__isl_give isl_basic_map * isl_basic_map_gauss(__isl_take isl_basic_map *bmap, int *progress)
int isl_seq_first_non_zero(isl_int *p, unsigned len)
void isl_seq_clr(isl_int *p, unsigned len)
void isl_seq_cpy(isl_int *dst, isl_int *src, unsigned len)
void isl_seq_neg(isl_int *dst, isl_int *src, unsigned len)
struct isl_tarjan_graph * isl_tarjan_graph_free(struct isl_tarjan_graph *g)
struct isl_tarjan_graph * isl_tarjan_graph_init(isl_ctx *ctx, int len, isl_bool(*follows)(int i, int j, void *user), void *user)
static isl_bool check_exactness(__isl_take isl_map *map, __isl_take isl_map *app, int project)
static isl_bool empty_path_is_identity(__isl_keep isl_basic_map *path, unsigned pos)
static __isl_give isl_map * construct_projected_component(__isl_take isl_space *space, __isl_keep isl_map *map, isl_bool *exact, int project)
static __isl_give isl_map * construct_component(__isl_take isl_space *space, __isl_keep isl_map *map, isl_bool *exact, int project)
static __isl_give isl_map * path_along_delta(__isl_take isl_space *space, __isl_take isl_basic_set *delta)
static isl_stat power(__isl_take isl_map *map, void *user)
isl_bool isl_map_is_transitively_closed(__isl_keep isl_map *map)
__isl_give isl_map * isl_map_power(__isl_take isl_map *map, isl_bool *exact)
static __isl_give isl_map * path_along_steps(__isl_take isl_space *space, __isl_keep isl_mat *steps)
static int merge(isl_set **set, int *group, __isl_take isl_set *dom, int pos)
static __isl_give isl_map * set_path_length(__isl_take isl_map *map, int exactly, int length)
static __isl_give isl_map * box_closure_on_domain(__isl_take isl_map *map, __isl_take isl_set *dom, __isl_take isl_set *ran, int with_id)
static __isl_give isl_map * map_power(__isl_take isl_map *map, isl_bool *exact, int project)
static isl_bool check_exactness_omega(__isl_keep isl_map *map, __isl_keep isl_map *app)
static __isl_give isl_union_map * union_floyd_warshall_on_list(isl_ctx *ctx, __isl_keep isl_basic_map **list, int n, isl_bool *exact)
static int * setup_groups(isl_ctx *ctx, __isl_keep isl_basic_map **list, int n, isl_set ***set, int *n_group)
static __isl_give isl_basic_map * add_delta_constraints(__isl_take isl_basic_map *path, __isl_keep isl_basic_set *delta, unsigned off, unsigned nparam, unsigned d, int *div_purity, int eq, int *impurity)
static __isl_give isl_map * anonymize(__isl_take isl_map *map)
static __isl_give isl_map * increment(__isl_take isl_space *space)
static isl_bool has_spurious_elements(__isl_keep isl_map *qc, __isl_keep isl_set *dom, __isl_keep isl_set *ran)
static isl_stat inc_count(__isl_take isl_map *map, void *user)
static __isl_give isl_map * incremental_closure(__isl_take isl_space *space, __isl_keep isl_map *map, isl_bool *exact, int project)
__isl_give isl_map * isl_map_reaching_path_lengths(__isl_take isl_map *map, isl_bool *exact)
static isl_stat add_length(__isl_keep isl_map *map, isl_map ***grid, int n)
__isl_give isl_map * isl_map_transitive_closure(__isl_take isl_map *map, isl_bool *exact)
static __isl_give isl_map * transitive_closure_omega(__isl_take isl_map *map, isl_bool *exact)
static __isl_give isl_union_map * union_components(__isl_take isl_union_map *umap, isl_bool *exact)
static __isl_give isl_map * equate_parameter_to_length(__isl_take isl_space *space, unsigned param)
static __isl_give isl_map * construct_extended_path(__isl_take isl_space *space, __isl_keep isl_map *map, int *project)
static __isl_give isl_map * construct_power_components(__isl_take isl_space *space, __isl_keep isl_map *map, isl_bool *exact, int project)
static __isl_give isl_map * box_closure_with_identity(__isl_take isl_map *map, __isl_take isl_set *dom)
static __isl_give isl_union_map * union_floyd_warshall(__isl_take isl_union_map *umap, isl_bool *exact)
static isl_stat collect_basic_map(__isl_take isl_map *map, void *user)
static __isl_give isl_map * floyd_warshall_with_groups(__isl_take isl_space *space, __isl_keep isl_map *map, isl_bool *exact, int project, int *group, int n)
isl_bool isl_union_map_is_transitively_closed(__isl_keep isl_union_map *umap)
static isl_bool isl_set_overlaps(__isl_keep isl_set *set1, __isl_keep isl_set *set2)
static isl_bool is_acyclic(__isl_take isl_map *path)
static __isl_give isl_map * compose(__isl_keep isl_map *map, int i, __isl_take isl_map *qc, int *left, int *right)
__isl_give isl_union_map * isl_union_map_transitive_closure(__isl_take isl_union_map *umap, isl_bool *exact)
static __isl_give isl_map * construct_power(__isl_keep isl_map *map, isl_bool *exact, int project)
static int can_be_split_off(__isl_keep isl_map *map, int i, __isl_give isl_map **tc, __isl_give isl_map **qc)
static __isl_give isl_map * floyd_warshall(__isl_take isl_space *space, __isl_keep isl_map *map, isl_bool *exact, int project)
static __isl_give int * get_div_purity(__isl_keep isl_basic_set *bset)
static isl_bool check_power_exactness(__isl_take isl_map *map, __isl_take isl_map *app)
static isl_bool basic_map_follows(int i, int j, void *user)
static isl_bool parametric_constant_never_positive(__isl_keep isl_basic_set *bset, isl_int *c, int *div_purity)
static __isl_give isl_map * compute_incremental(__isl_take isl_space *space, __isl_keep isl_map *map, int i, __isl_take isl_map *qc, int *left, int *right, isl_bool *exact)
__isl_give isl_union_map * isl_union_map_power(__isl_take isl_union_map *umap, isl_bool *exact)
static isl_bool incremental_on_entire_domain(__isl_keep isl_space *space, __isl_keep isl_map *map, isl_set **dom, isl_set **ran, int *left, int *right, __isl_give isl_map **res)
static __isl_give isl_union_map * deltas_map(__isl_take isl_space *space)
static int purity(__isl_keep isl_basic_set *bset, isl_int *c, int *div_purity, int eq)
static void floyd_warshall_iterate(isl_map ***grid, int n, isl_bool *exact)
static __isl_give isl_map * box_closure(__isl_take isl_map *map)
static __isl_give isl_map * q_closure(__isl_take isl_space *space, __isl_take isl_set *dom, __isl_keep isl_basic_map *bmap, isl_bool *exact)
static __isl_give isl_map * box_closure_with_check(__isl_take isl_map *map, isl_bool *exact)
static int composability(__isl_keep isl_set *C, int i, isl_set **dom, isl_set **ran, int *left, int *right, __isl_keep isl_map *map)
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_basic_set * isl_basic_map_domain(__isl_take isl_basic_map *bmap)
__isl_give isl_basic_map * isl_basic_map_deltas_map(__isl_take isl_basic_map *bmap)
__isl_export __isl_give isl_set * isl_map_domain(__isl_take isl_map *bmap)
__isl_export __isl_give isl_map * isl_map_union(__isl_take isl_map *map1, __isl_take isl_map *map2)
__isl_give isl_space * isl_basic_map_get_space(__isl_keep isl_basic_map *bmap)
__isl_export __isl_give isl_map * isl_map_subtract(__isl_take isl_map *map1, __isl_take isl_map *map2)
__isl_export __isl_give isl_basic_map * isl_basic_map_apply_range(__isl_take isl_basic_map *bmap1, __isl_take isl_basic_map *bmap2)
__isl_export __isl_give isl_map * isl_map_intersect(__isl_take isl_map *map1, __isl_take isl_map *map2)
__isl_export isl_bool isl_map_is_empty(__isl_keep isl_map *map)
__isl_export __isl_give isl_map * isl_map_universe(__isl_take isl_space *space)
__isl_export __isl_give isl_map * isl_map_apply_range(__isl_take isl_map *map1, __isl_take isl_map *map2)
__isl_export 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_copy(__isl_keep isl_map *map)
__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_null isl_basic_map * isl_basic_map_free(__isl_take isl_basic_map *bmap)
__isl_export __isl_give isl_space * isl_map_get_space(__isl_keep isl_map *map)
__isl_give isl_map * isl_map_from_domain_and_range(__isl_take isl_set *domain, __isl_take isl_set *range)
isl_size isl_basic_map_dim(__isl_keep isl_basic_map *bmap, enum isl_dim_type type)
__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_export __isl_give isl_set * isl_map_deltas(__isl_take isl_map *map)
__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_map_plain_is_empty(__isl_keep isl_map *map)
__isl_export isl_bool isl_map_is_equal(__isl_keep isl_map *map1, __isl_keep isl_map *map2)
__isl_export __isl_give isl_map * isl_map_empty(__isl_take isl_space *space)
__isl_export __isl_give isl_set * isl_map_wrap(__isl_take isl_map *map)
isl_size isl_map_dim(__isl_keep isl_map *map, enum isl_dim_type type)
__isl_export __isl_give isl_map * isl_map_reverse(__isl_take isl_map *map)
__isl_give isl_map * isl_map_from_range(__isl_take isl_set *set)
__isl_give isl_basic_map * isl_basic_map_identity(__isl_take isl_space *space)
__isl_export __isl_give isl_map * isl_map_product(__isl_take isl_map *map1, __isl_take isl_map *map2)
__isl_export __isl_give isl_map * isl_map_coalesce(__isl_take isl_map *map)
__isl_give isl_map * isl_map_identity(__isl_take isl_space *space)
__isl_give isl_map * isl_map_add_dims(__isl_take isl_map *map, enum isl_dim_type type, unsigned n)
__isl_null isl_map * isl_map_free(__isl_take isl_map *map)
__isl_constructor __isl_give isl_map * isl_map_from_basic_map(__isl_take isl_basic_map *bmap)
__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_map * isl_basic_map_copy(__isl_keep isl_basic_map *bmap)
__isl_export __isl_give isl_map * isl_basic_map_union(__isl_take isl_basic_map *bmap1, __isl_take isl_basic_map *bmap2)
__isl_export __isl_give isl_basic_set * isl_basic_map_deltas(__isl_take isl_basic_map *bmap)
__isl_give isl_map * isl_map_compute_divs(__isl_take isl_map *map)
__isl_export __isl_give isl_set * isl_map_range(__isl_take isl_map *map)
__isl_give isl_basic_set * isl_basic_map_range(__isl_take isl_basic_map *bmap)
__isl_export isl_bool isl_map_is_subset(__isl_keep isl_map *map1, __isl_keep isl_map *map2)
__isl_give isl_basic_map * isl_basic_map_universe(__isl_take isl_space *space)
struct isl_basic_set isl_basic_set
__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_export __isl_give isl_set * isl_set_coalesce(__isl_take isl_set *set)
isl_size isl_basic_set_dim(__isl_keep isl_basic_set *bset, enum isl_dim_type type)
__isl_export __isl_give isl_space * isl_set_get_space(__isl_keep isl_set *set)
__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_space * isl_basic_set_get_space(__isl_keep isl_basic_set *bset)
__isl_export __isl_give isl_set * isl_set_union(__isl_take isl_set *set1, __isl_take isl_set *set2)
__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_export isl_bool isl_set_is_disjoint(__isl_keep isl_set *set1, __isl_keep isl_set *set2)
__isl_null isl_basic_set * isl_basic_set_free(__isl_take isl_basic_set *bset)
__isl_give isl_basic_set * isl_set_simple_hull(__isl_take isl_set *set)
__isl_null isl_set * isl_set_free(__isl_take isl_set *set)
__isl_export isl_bool isl_set_is_subset(__isl_keep isl_set *set1, __isl_keep isl_set *set2)
__isl_give isl_set * isl_set_add_dims(__isl_take isl_set *set, enum isl_dim_type type, unsigned n)
__isl_give isl_set * isl_set_copy(__isl_keep isl_set *set)
__isl_give isl_basic_set * isl_basic_set_add_dims(__isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned n)
isl_size isl_set_dim(__isl_keep isl_set *set, enum isl_dim_type type)
__isl_export isl_bool isl_basic_set_is_empty(__isl_keep isl_basic_set *bset)
__isl_constructor __isl_give isl_set * isl_set_from_basic_set(__isl_take isl_basic_set *bset)
__isl_give isl_basic_set * isl_basic_set_copy(__isl_keep isl_basic_set *bset)
__isl_export __isl_give isl_basic_set * isl_set_affine_hull(__isl_take isl_set *set)
__isl_give isl_set * isl_set_fix_si(__isl_take isl_set *set, enum isl_dim_type type, unsigned pos, int value)
__isl_export isl_bool isl_set_is_empty(__isl_keep isl_set *set)
__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_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_give isl_space * isl_space_set_from_params(__isl_take isl_space *space)
__isl_give isl_space * isl_space_copy(__isl_keep isl_space *space)
__isl_export __isl_give isl_space * isl_space_wrap(__isl_take isl_space *space)
__isl_give isl_space * isl_space_join(__isl_take isl_space *left, __isl_take isl_space *right)
__isl_export __isl_give isl_space * isl_space_map_from_set(__isl_take isl_space *space)
__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_size isl_space_dim(__isl_keep isl_space *space, enum isl_dim_type type)
__isl_give isl_space * isl_space_add_dims(__isl_take isl_space *space, enum isl_dim_type type, unsigned n)
__isl_null isl_union_map * isl_union_map_free(__isl_take isl_union_map *umap)
__isl_export __isl_give isl_space * isl_union_map_get_space(__isl_keep isl_union_map *umap)
__isl_give isl_union_map * isl_union_map_add_map(__isl_take isl_union_map *umap, __isl_take isl_map *map)
__isl_export isl_stat isl_union_map_foreach_map(__isl_keep isl_union_map *umap, isl_stat(*fn)(__isl_take isl_map *map, void *user), void *user)
__isl_export __isl_give isl_union_map * isl_union_map_coalesce(__isl_take isl_union_map *umap)
__isl_export __isl_give isl_union_map * isl_union_map_apply_range(__isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2)
__isl_give isl_union_map * isl_union_map_copy(__isl_keep isl_union_map *umap)
__isl_export __isl_give isl_union_map * isl_union_map_apply_domain(__isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2)
__isl_export __isl_give isl_union_map * isl_union_map_product(__isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2)
__isl_give isl_union_map * isl_union_map_empty(__isl_take isl_space *space)
__isl_constructor __isl_give isl_union_map * isl_union_map_from_map(__isl_take isl_map *map)
__isl_export __isl_give isl_union_map * isl_union_map_union(__isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2)
isl_ctx * isl_union_map_get_ctx(__isl_keep isl_union_map *umap)
__isl_export __isl_give isl_union_map * isl_union_map_zip(__isl_take isl_union_map *umap)
__isl_export isl_bool isl_union_map_is_subset(__isl_keep isl_union_map *umap1, __isl_keep isl_union_map *umap2)
__isl_export __isl_give isl_union_map * isl_union_map_compute_divs(__isl_take isl_union_map *umap)
isl_size isl_union_map_n_map(__isl_keep isl_union_map *umap)
__isl_null isl_vec * isl_vec_free(__isl_take isl_vec *vec)
__isl_give isl_vec * isl_vec_alloc(isl_ctx *ctx, unsigned size)