27 return ls ? ls->dim->ctx : NULL;
34 uint32_t hash, space_hash, div_hash;
163#define TYPE isl_local_space
234 return ls->div->n_row;
239 return dim + ls->div->n_row;
245#define TYPE isl_local_space
363 for (i =
n - 1; i >= 0; --i) {
393 if (pos < 0 || pos >= ls->div->n_row)
395 "index out of bounds",
return NULL);
402 "expression of div unknown",
return NULL);
405 "cannot represent divs of map spaces",
return NULL);
464 if (ls->dim == space) {
486 return ls ? ls->div : NULL;
531 if (ls->div == local) {
655 if (ls->div->n_col != div->size)
657 "incompatible dimensions",
goto error);
664 isl_seq_cpy(ls->div->row[ls->div->n_row - 1], div->el, div->size);
699 unsigned c = src->n_col - src->n_row;
704 for (i = 0; i < s; ++i)
705 isl_int_set(dst->row[d][c + exp[i]], src->row[s][c + i]);
715 unsigned n_row,
unsigned n_col)
718 int unknown_i, unknown_j;
723 if (unknown_i && unknown_j)
727 li = n_col - n_row + i;
731 lj = n_col - n_row + j;
745 return cmp_row(div->row[i], div->row[j], i, j, div->n_row, div->n_col);
753 return cmp_row(bmap->div[i], bmap->div[j], i, j, bmap->n_div,
total);
771 if (bmap->n_div <= 1)
777 for (i = 1; i < bmap->n_div; ++i) {
778 for (j = i - 1; j >= 0; --j) {
815 d = div1->n_col - div1->n_row;
816 div =
isl_mat_alloc(div1->ctx, 1 + div1->n_row + div2->n_row,
817 d + div1->n_row + div2->n_row);
821 for (i = 0, j = 0, k = 0; i < div1->n_row && j < div2->n_row; ++k) {
831 }
else if (
cmp < 0) {
835 isl_seq_cpy(div->row[k], div->row[k + 1], div->n_col);
838 for (; i < div1->n_row; ++i, ++k) {
842 for (; j < div2->n_row; ++j, ++k) {
863 if (a < 0 || a >= ls->div->n_row || b < 0 || b >= ls->div->n_row)
866 offset = ls->div->n_col - ls->div->n_row;
892 "spaces should be identical",
goto error);
894 if (ls2->div->n_row == 0) {
899 if (ls1->div->n_row == 0) {
1107 unsigned total = ls->div->n_col - 2;
1142 if (dim < 0 ||
total < 0)
1146 "spaces don't match",
goto error);
1149 for (i = 0; i < eq->n_eq; ++i) {
1151 if (j < 0 || j == 0 || j >=
total)
1154 for (k = 0; k < ls->div->n_row; ++k) {
1164 &ls->div->row[k][0]);
1212 if (first +
n > ls->div->n_row)
1219 for (i = first; i < first +
n; ++i) {
1223 ls->div->n_col, subs_len, v);
1266 "cannot handle divs yet",
1270 subs->v->size, 0, ls->div->n_row);
1357 isl_int *constraint,
unsigned div,
int *sign)
1373 ls->div->row[div] + 2,
pos - 1))
1377 if (!
isl_seq_eq(constraint + 1, ls->div->row[div] + 2,
pos - 1))
1383 ls->div->n_row - div - 1) != -1)
1401 isl_int *constraint,
unsigned div)
1407 if (linear < 0 || !linear)
1413 ls->div->row[div][1], ls->div->row[div][0]);
1418 ls->div->row[div][1], ls->div->row[div][0]);
1422 if (!
isl_int_eq(constraint[0], ls->div->row[div][1]))
1445 isl_int *constraint,
unsigned div)
1451 if (linear < 0 || !linear)
1474 if (
total && !active)
1477 for (i = 0; i <
total; ++i)
1481 for (i = ls->div->n_row - 1; i >= 0; --i) {
1484 for (j = 0; j <
total; ++j)
1505 if (!ls->dim || !ls->div)
1524 "lifting only defined on set spaces",
goto error);
1570 "spaces don't match",
goto error);
1574 if (n_div_ls < 0 || n_div_ma < 0)
1596 for (i = 0; i < ls->div->n_row; ++i) {
1603 ma, 0, 0, n_div_ma, n_div_ls,
f,
c1,
c2, g, 1) < 0)
1616 isl_multi_aff_free(
ma);
1620 isl_multi_aff_free(
ma);
1659 if (dst_type == src_type && dst_pos == src_pos)
1661 if (dst_type == src_type)
1663 "moving dims within the same type not supported",
1668 if (v_src < 0 || v_dst < 0)
1670 g_src_pos = v_src + src_pos;
1671 g_dst_pos = v_dst + dst_pos;
1672 if (dst_type > src_type)
1681 src_type, src_pos,
n);
1697 if (!ls->dim->nested[0])
1721 if (!ls->dim->nested[1])
isl_size isl_aff_dim(__isl_keep isl_aff *aff, enum isl_dim_type type)
struct isl_multi_aff isl_multi_aff
#define isl_calloc_type(ctx, type)
#define isl_die(ctx, errno, msg, code)
isl_bool isl_bool_ok(int b)
#define isl_alloc_array(ctx, type, n)
#define isl_calloc_array(ctx, type, n)
#define isl_hash_hash(h, h2)
__isl_null isl_id * isl_id_free(__isl_take isl_id *id)
void GMPZAPI() neg(mp_int rop, mp_int op)
int GMPQAPI() cmp(mp_rat op1, mp_rat op2)
isl_stat isl_seq_preimage(isl_int *dst, isl_int *src, __isl_keep isl_multi_aff *ma, int n_before, int n_after, int n_div_ma, int n_div_bmap, isl_int f, isl_int c1, isl_int c2, isl_int g, int has_denom)
__isl_give isl_multi_aff * isl_multi_aff_align_divs(__isl_take isl_multi_aff *maff)
__isl_give isl_aff * isl_aff_alloc(__isl_take isl_local_space *ls)
#define isl_int_is_zero(i)
#define isl_int_is_one(i)
#define isl_int_gcd(r, i, j)
#define isl_int_abs_eq(i, j)
#define isl_int_add_ui(r, i, j)
#define isl_int_add(r, i, j)
#define isl_int_set(r, i)
#define isl_int_divexact(r, i, j)
#define isl_int_set_si(r, i)
#define isl_int_sub_ui(r, i, j)
#define isl_int_fdiv_q(r, i, j)
#define isl_int_sub(r, i, j)
__isl_give isl_local * isl_local_copy(__isl_keep isl_local *local)
__isl_give isl_vec * isl_local_extend_point_vec(__isl_keep isl_local *local, __isl_take isl_vec *v)
__isl_give isl_local * isl_local_reorder(__isl_take isl_local *local, __isl_take isl_reordering *r)
isl_bool isl_local_divs_known(__isl_keep isl_local *local)
isl_bool isl_local_div_is_marked_unknown(__isl_keep isl_local *local, int pos)
__isl_null isl_local * isl_local_free(__isl_take isl_local *local)
__isl_give isl_local * isl_local_move_vars(__isl_take isl_local *local, unsigned dst_pos, unsigned src_pos, unsigned n)
isl_bool isl_local_div_is_known(__isl_keep isl_local *local, int pos)
int isl_local_cmp(__isl_keep isl_local *local1, __isl_keep isl_local *local2)
__isl_give isl_aff * isl_local_space_get_div(__isl_keep isl_local_space *ls, int pos)
isl_bool isl_local_space_div_is_marked_unknown(__isl_keep isl_local_space *ls, int div)
__isl_give isl_local_space * isl_local_space_set_dim_id(__isl_take isl_local_space *ls, enum isl_dim_type type, unsigned pos, __isl_take isl_id *id)
__isl_give isl_local_space * isl_local_space_move_dims(__isl_take isl_local_space *ls, enum isl_dim_type dst_type, unsigned dst_pos, enum isl_dim_type src_type, unsigned src_pos, unsigned n)
static isl_bool is_linear_div_constraint(__isl_keep isl_local_space *ls, isl_int *constraint, unsigned div, int *sign)
isl_bool isl_local_space_divs_known(__isl_keep isl_local_space *ls)
__isl_give isl_local_space * isl_local_space_cow(__isl_take isl_local_space *ls)
static __isl_give isl_local_space * isl_local_space_restore_local(__isl_take isl_local_space *ls, __isl_take isl_local *local)
isl_bool isl_local_space_is_set(__isl_keep isl_local_space *ls)
__isl_give isl_local_space * isl_local_space_from_space(__isl_take isl_space *space)
__isl_give isl_local_space * isl_local_space_replace_divs(__isl_take isl_local_space *ls, __isl_take isl_mat *div)
__isl_give isl_space * isl_local_space_take_space(__isl_keep isl_local_space *ls)
const char * isl_local_space_get_dim_name(__isl_keep isl_local_space *ls, enum isl_dim_type type, unsigned pos)
isl_bool isl_local_space_is_div_constraint(__isl_keep isl_local_space *ls, isl_int *constraint, unsigned div)
static void expand_row(__isl_keep isl_mat *dst, int d, __isl_keep isl_mat *src, int s, int *exp)
__isl_give isl_local_space * isl_local_space_drop_dims(__isl_take isl_local_space *ls, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_point * isl_local_space_lift_point(__isl_take isl_local_space *ls, __isl_take isl_point *pnt)
__isl_give isl_local_space * isl_local_space_dup(__isl_keep isl_local_space *ls)
isl_bool isl_local_space_is_div_equality(__isl_keep isl_local_space *ls, isl_int *constraint, unsigned div)
int * isl_local_space_get_active(__isl_keep isl_local_space *ls, isl_int *l)
__isl_give isl_local_space * isl_local_space_set_from_params(__isl_take isl_local_space *ls)
__isl_keep isl_local * isl_local_space_peek_local(__isl_keep isl_local_space *ls)
__isl_keep isl_space * isl_local_space_peek_space(__isl_keep isl_local_space *ls)
unsigned isl_local_space_offset(__isl_keep isl_local_space *ls, enum isl_dim_type type)
__isl_give isl_mat * isl_merge_divs(__isl_keep isl_mat *div1, __isl_keep isl_mat *div2, int *exp1, int *exp2)
__isl_give isl_local_space * isl_local_space_insert_dims(__isl_take isl_local_space *ls, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_local_space * isl_local_space_flatten_range(__isl_take isl_local_space *ls)
__isl_give isl_set * isl_local_space_lift_set(__isl_take isl_local_space *ls, __isl_take isl_set *set)
__isl_give isl_basic_set * isl_local_space_lift_basic_set(__isl_take isl_local_space *ls, __isl_take isl_basic_set *bset)
static __isl_give isl_local * isl_local_space_take_local(__isl_keep isl_local_space *ls)
__isl_give isl_local_space * isl_local_space_alloc_div(__isl_take isl_space *space, __isl_take isl_mat *div)
int isl_mat_cmp_div(__isl_keep isl_mat *div, int i, int j)
__isl_give isl_local_space * isl_local_space_add_dims(__isl_take isl_local_space *ls, enum isl_dim_type type, unsigned n)
__isl_give isl_local_space * isl_local_space_swap_div(__isl_take isl_local_space *ls, int a, int b)
__isl_give isl_local_space * isl_local_space_domain(__isl_take isl_local_space *ls)
__isl_give isl_basic_map * isl_local_space_lifting(__isl_take isl_local_space *ls)
__isl_give isl_local_space * isl_local_space_set_tuple_id(__isl_take isl_local_space *ls, enum isl_dim_type type, __isl_take isl_id *id)
isl_bool isl_local_space_is_params(__isl_keep isl_local_space *ls)
static __isl_give isl_aff * extract_div(__isl_keep isl_local_space *ls, int pos)
isl_ctx * isl_local_space_get_ctx(__isl_keep isl_local_space *ls)
static int bmap_cmp_row(__isl_keep isl_basic_map *bmap, int i, int j, unsigned total)
__isl_give isl_local_space * isl_local_space_substitute_seq(__isl_take isl_local_space *ls, enum isl_dim_type type, unsigned pos, isl_int *subs, int subs_len, int first, int n)
isl_bool isl_local_space_is_equal(__isl_keep isl_local_space *ls1, __isl_keep isl_local_space *ls2)
__isl_give isl_local_space * isl_local_space_reset_space(__isl_take isl_local_space *ls, __isl_take isl_space *space)
__isl_give isl_local_space * isl_local_space_range(__isl_take isl_local_space *ls)
__isl_give isl_local_space * isl_local_space_restore_space(__isl_take isl_local_space *ls, __isl_take isl_space *space)
int isl_local_space_find_dim_by_name(__isl_keep isl_local_space *ls, enum isl_dim_type type, const char *name)
static isl_stat isl_local_space_check_has_space(__isl_keep isl_local_space *ls, __isl_keep isl_space *space)
__isl_give isl_map * isl_map_sort_divs(__isl_take isl_map *map)
isl_size isl_local_space_dim(__isl_keep isl_local_space *ls, enum isl_dim_type type)
int isl_local_space_cmp(__isl_keep isl_local_space *ls1, __isl_keep isl_local_space *ls2)
__isl_give isl_local_space * isl_local_space_preimage_multi_aff(__isl_take isl_local_space *ls, __isl_take isl_multi_aff *ma)
__isl_give isl_local_space * isl_local_space_from_domain(__isl_take isl_local_space *ls)
isl_bool isl_local_space_is_named_or_nested(__isl_keep isl_local_space *ls, enum isl_dim_type type)
__isl_give isl_local_space * isl_local_space_add_div(__isl_take isl_local_space *ls, __isl_take isl_vec *div)
__isl_give isl_local_space * isl_local_space_substitute(__isl_take isl_local_space *ls, enum isl_dim_type type, unsigned pos, __isl_keep isl_aff *subs)
__isl_give isl_local_space * isl_local_space_flatten_domain(__isl_take isl_local_space *ls)
isl_bool isl_local_space_has_dim_name(__isl_keep isl_local_space *ls, enum isl_dim_type type, unsigned pos)
static __isl_give isl_aff * drop_unknown_divs_and_extract_div(__isl_keep isl_local_space *ls, int pos)
__isl_keep isl_local * isl_local_space_get_local(__isl_keep isl_local_space *ls)
__isl_null isl_local_space * isl_local_space_free(__isl_take isl_local_space *ls)
uint32_t isl_local_space_get_hash(__isl_keep isl_local_space *ls)
__isl_give isl_local_space * isl_local_space_copy(__isl_keep isl_local_space *ls)
__isl_give isl_basic_map * isl_basic_map_sort_divs(__isl_take isl_basic_map *bmap)
__isl_give isl_local_space * isl_local_space_substitute_equalities(__isl_take isl_local_space *ls, __isl_take isl_basic_set *eq)
__isl_give isl_local_space * isl_local_space_wrap(__isl_take isl_local_space *ls)
isl_size isl_local_space_var_offset(__isl_keep isl_local_space *ls, enum isl_dim_type type)
__isl_give isl_local_space * isl_local_space_intersect(__isl_take isl_local_space *ls1, __isl_take isl_local_space *ls2)
__isl_give isl_space * isl_local_space_get_space(__isl_keep isl_local_space *ls)
isl_bool isl_local_space_div_is_known(__isl_keep isl_local_space *ls, int div)
static __isl_give isl_local_space * normalize_div(__isl_take isl_local_space *ls, int div)
__isl_give isl_id * isl_local_space_get_dim_id(__isl_keep isl_local_space *ls, enum isl_dim_type type, unsigned pos)
__isl_give isl_local_space * isl_local_space_lift(__isl_take isl_local_space *ls)
static int cmp_row(isl_int *row_i, isl_int *row_j, int i, int j, unsigned n_row, unsigned n_col)
__isl_give isl_local_space * isl_local_space_realign(__isl_take isl_local_space *ls, __isl_take isl_reordering *r)
isl_bool isl_local_space_has_dim_id(__isl_keep isl_local_space *ls, enum isl_dim_type type, unsigned pos)
__isl_give isl_local_space * isl_local_space_alloc(__isl_take isl_space *space, unsigned n_div)
__isl_give isl_local_space * isl_local_space_set_dim_name(__isl_take isl_local_space *ls, enum isl_dim_type type, unsigned pos, const char *s)
isl_bool isl_local_space_has_space(__isl_keep isl_local_space *ls, __isl_keep isl_space *space)
isl_stat isl_local_space_check_range(__isl_keep isl_local_space *ls, enum isl_dim_type type, unsigned first, unsigned n)
isl_bool isl_local_space_has_equal_space(__isl_keep isl_local_space *ls1, __isl_keep isl_local_space *ls2)
__isl_give isl_basic_map * isl_basic_map_order_divs(__isl_take isl_basic_map *bmap)
__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))
static unsigned pos(__isl_keep isl_space *space, enum isl_dim_type type)
__isl_keep isl_space * isl_set_peek_space(__isl_keep isl_set *set)
__isl_keep isl_space * isl_basic_set_peek_space(__isl_keep isl_basic_set *bset)
__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_swap_div(__isl_take isl_basic_map *bmap, int a, int b)
__isl_give isl_mat * isl_mat_cow(__isl_take isl_mat *mat)
uint32_t isl_mat_get_hash(__isl_keep isl_mat *mat)
__isl_give isl_vec * isl_point_take_vec(__isl_keep isl_point *pnt)
__isl_give isl_space * isl_point_take_space(__isl_keep isl_point *pnt)
__isl_keep isl_space * isl_point_peek_space(__isl_keep isl_point *pnt)
__isl_give isl_point * isl_point_restore_vec(__isl_take isl_point *pnt, __isl_take isl_vec *vec)
__isl_give isl_point * isl_point_restore_space(__isl_take isl_point *pnt, __isl_take isl_space *space)
__isl_null isl_reordering * isl_reordering_free(__isl_take isl_reordering *exp)
__isl_give isl_space * isl_reordering_get_space(__isl_keep isl_reordering *r)
__isl_give isl_reordering * isl_reordering_copy(__isl_keep isl_reordering *exp)
int isl_seq_last_non_zero(isl_int *p, unsigned len)
int isl_seq_is_neg(isl_int *p1, isl_int *p2, unsigned len)
int isl_seq_first_non_zero(isl_int *p, unsigned len)
void isl_seq_scale_down(isl_int *dst, isl_int *src, isl_int m, unsigned len)
void isl_seq_gcd(isl_int *p, unsigned len, isl_int *gcd)
void isl_seq_substitute(isl_int *p, int pos, isl_int *subs, int p_len, int subs_len, isl_int v)
void isl_seq_clr(isl_int *p, unsigned len)
void isl_seq_elim(isl_int *dst, isl_int *src, unsigned pos, unsigned len, isl_int *m)
int isl_seq_cmp(isl_int *p1, isl_int *p2, unsigned len)
void isl_seq_cpy(isl_int *dst, isl_int *src, unsigned len)
int isl_seq_eq(isl_int *p1, isl_int *p2, unsigned len)
uint32_t isl_space_get_full_hash(__isl_keep isl_space *space)
__isl_give isl_space * isl_space_lift(__isl_take isl_space *space, unsigned n_local)
isl_bool isl_space_is_range_internal(__isl_keep isl_space *space1, __isl_keep isl_space *space2)
unsigned isl_space_offset(__isl_keep isl_space *space, enum isl_dim_type type)
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)
static __isl_give isl_union_map * total(__isl_take isl_union_map *umap, __isl_give isl_map *(*fn)(__isl_take isl_map *))
__isl_export __isl_give isl_basic_set * isl_basic_set_flatten(__isl_take isl_basic_set *bset)
__isl_null isl_basic_map * isl_basic_map_free(__isl_take isl_basic_map *bmap)
__isl_give isl_basic_map * isl_basic_map_domain_map(__isl_take isl_basic_map *bmap)
isl_size isl_basic_map_dim(__isl_keep isl_basic_map *bmap, enum isl_dim_type type)
__isl_export __isl_give isl_basic_map * isl_basic_map_reverse(__isl_take isl_basic_map *bmap)
__isl_give isl_basic_map * isl_basic_set_unwrap(__isl_take isl_basic_set *bset)
struct isl_basic_set isl_basic_set
__isl_give isl_mat * isl_mat_copy(__isl_keep isl_mat *mat)
__isl_give isl_mat * isl_mat_insert_zero_rows(__isl_take isl_mat *mat, unsigned row, unsigned n)
__isl_give isl_mat * isl_mat_add_zero_cols(__isl_take isl_mat *mat, unsigned n)
__isl_give isl_mat * isl_mat_swap_cols(__isl_take isl_mat *mat, unsigned i, unsigned j)
__isl_give isl_mat * isl_mat_drop_rows(__isl_take isl_mat *mat, unsigned row, unsigned n)
__isl_give isl_mat * isl_mat_swap_rows(__isl_take isl_mat *mat, unsigned i, unsigned j)
__isl_give isl_mat * isl_mat_add_rows(__isl_take isl_mat *mat, unsigned n)
__isl_null isl_mat * isl_mat_free(__isl_take isl_mat *mat)
__isl_give isl_mat * isl_mat_insert_zero_cols(__isl_take isl_mat *mat, unsigned first, unsigned n)
__isl_give isl_mat * isl_mat_alloc(isl_ctx *ctx, unsigned n_row, unsigned n_col)
isl_bool isl_mat_is_equal(__isl_keep isl_mat *mat1, __isl_keep isl_mat *mat2)
__isl_give isl_mat * isl_mat_drop_cols(__isl_take isl_mat *mat, unsigned col, unsigned n)
__isl_null isl_point * isl_point_free(__isl_take isl_point *pnt)
__isl_null isl_basic_set * isl_basic_set_free(__isl_take isl_basic_set *bset)
__isl_null isl_set * isl_set_free(__isl_take isl_set *set)
__isl_give isl_set * isl_set_add_dims(__isl_take isl_set *set, enum isl_dim_type type, unsigned n)
__isl_give isl_basic_set * isl_basic_set_add_dims(__isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned n)
__isl_export __isl_give isl_set * isl_set_intersect(__isl_take isl_set *set1, __isl_take isl_set *set2)
__isl_constructor __isl_give isl_set * isl_set_from_basic_set(__isl_take isl_basic_set *bset)
__isl_export __isl_give isl_basic_set * isl_basic_set_intersect(__isl_take isl_basic_set *bset1, __isl_take isl_basic_set *bset2)
__isl_give isl_basic_set * isl_basic_set_lift(__isl_take isl_basic_set *bset)
__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_give isl_space * isl_space_from_domain(__isl_take isl_space *space)
__isl_export __isl_give isl_space * isl_space_flatten_range(__isl_take isl_space *space)
__isl_give isl_space * isl_space_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_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_bool isl_space_has_dim_name(__isl_keep isl_space *space, enum isl_dim_type type, unsigned pos)
__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_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_give isl_space * isl_space_range(__isl_take isl_space *space)
isl_bool isl_space_is_params(__isl_keep isl_space *space)
__isl_export __isl_give isl_space * isl_space_flatten_domain(__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_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_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_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_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_export __isl_give isl_space * isl_space_domain(__isl_take isl_space *space)
__isl_null isl_vec * isl_vec_free(__isl_take isl_vec *vec)