14#define xSF(TYPE,SUFFIX) TYPE ## SUFFIX
15#define SF(TYPE,SUFFIX) xSF(TYPE,SUFFIX)
55 isl_size bmap_in, bmap_param, bmap_all;
56 unsigned n_in, n_out, n_div;
68 if (bmap_in < 0 || bmap_param < 0 || bmap_all < 0)
70 n_in = bmap_param + bmap_in;
71 n_out = bmap_all - n_in;
76 if ((bmap->n_ineq && !list) || (n_out && !
var))
82 for (i = second + 1,
n = 2; i < bmap->n_ineq; ++i) {
92 for (i = 0; i <
n; ++i)
93 isl_seq_cpy(cst->row[i], bmap->ineq[list[i]], 1 + n_in);
98 for (i =
n - 1; i >= 0; --i)
115 for (i = 0; i <
n; ++i) {
128 max, cst, map_space, set_space);
159 if (bmap->ctx->opt->pip_symmetry)
167 return SF(basic_map_partial_lexopt_symm,
SUFFIX)(bmap, dom, empty, max,
217 "domain does not match input",
goto error);
#define ISL_FL_ISSET(l, f)
#define isl_die(ctx, errno, msg, code)
#define isl_alloc_array(ctx, type, n)
static __isl_give isl_ast_expr * var(struct isl_ast_add_term_data *data, enum isl_dim_type type, int pos)
static isl_stat extract_domain(__isl_take isl_map *map, void *user)
#define isl_int_set_si(r, i)
__isl_give isl_basic_set * isl_basic_set_extend_constraints(__isl_take isl_basic_set *base, unsigned n_eq, unsigned n_ineq)
int isl_basic_map_drop_inequality(__isl_keep isl_basic_map *bmap, unsigned pos)
int isl_basic_map_alloc_inequality(__isl_keep isl_basic_map *bmap)
__isl_give isl_basic_map * isl_basic_map_cow(__isl_take isl_basic_map *bmap)
isl_bool isl_basic_map_compatible_domain(__isl_keep isl_basic_map *bmap, __isl_keep isl_basic_set *bset)
__isl_give isl_basic_map * isl_basic_map_extend_constraints(__isl_take isl_basic_map *base, unsigned n_eq, unsigned n_ineq)
int isl_basic_set_alloc_inequality(__isl_keep isl_basic_set *bset)
__isl_give isl_basic_map * isl_basic_map_finalize(__isl_take isl_basic_map *bmap)
void isl_seq_clr(isl_int *p, 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)
__isl_give isl_map * isl_tab_basic_map_partial_lexopt(__isl_take isl_basic_map *bmap, __isl_take isl_basic_set *dom, __isl_give isl_set **empty, unsigned flags)
static __isl_give isl_map * basic_map_partial_lexopt_base(__isl_take isl_basic_map *bmap, __isl_take isl_basic_set *dom, __isl_give isl_set **empty, int max)
static int all_single_occurrence(__isl_keep isl_basic_map *bmap, int ineq, int n)
static __isl_give isl_map * basic_map_partial_lexopt_symm_core(__isl_take isl_basic_map *bmap, __isl_take isl_basic_set *dom, __isl_give isl_set **empty, int max, __isl_take isl_mat *cst, __isl_take isl_space *map_space, __isl_take isl_space *set_space)
static isl_bool parallel_constraints(__isl_keep isl_basic_map *bmap, int *first, int *second)
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)
__isl_give isl_space * isl_basic_map_get_space(__isl_keep isl_basic_map *bmap)
__isl_null isl_basic_map * isl_basic_map_free(__isl_take isl_basic_map *bmap)
isl_ctx * isl_basic_map_get_ctx(__isl_keep isl_basic_map *bmap)
isl_size isl_basic_map_dim(__isl_keep isl_basic_map *bmap, enum isl_dim_type type)
__isl_give isl_basic_map * isl_basic_map_remove_redundancies(__isl_take isl_basic_map *bmap)
__isl_export __isl_give isl_basic_map * isl_basic_map_intersect_domain(__isl_take isl_basic_map *bmap, __isl_take isl_basic_set *bset)
__isl_give isl_basic_map * isl_basic_map_add_dims(__isl_take isl_basic_map *bmap, enum isl_dim_type type, unsigned n)
__isl_export __isl_give isl_basic_map * isl_basic_map_detect_equalities(__isl_take isl_basic_map *bmap)
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_size isl_basic_set_dim(__isl_keep isl_basic_set *bset, enum isl_dim_type type)
__isl_give isl_space * isl_basic_set_get_space(__isl_keep isl_basic_set *bset)
__isl_null isl_basic_set * isl_basic_set_free(__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_basic_set * isl_basic_set_copy(__isl_keep isl_basic_set *bset)
__isl_null isl_space * isl_space_free(__isl_take isl_space *space)
__isl_null isl_vec * isl_vec_free(__isl_take isl_vec *vec)
__isl_give isl_vec * isl_vec_alloc(isl_ctx *ctx, unsigned size)