75 size_t prefix_len = strlen(prefix);
85 for (i = 0; i < nvar; ++i) {
94 prefix_len + strlen(
name) + 1);
97 memcpy(prefix_name, prefix, prefix_len);
98 strcpy(prefix_name + prefix_len,
name);
132 if (nvar < 0 || nparam < 0)
159 size_t prefix_len = strlen(prefix);
165 for (i = 0; i <
n; ++i) {
171 if (strncmp(
name, prefix, prefix_len))
258 total, bset->n_ineq + (shift > 0));
261 for (i = 0; i < bset->n_eq + bset->n_ineq; ++i) {
268 for (i = 0; i <
total; ++i) {
274 for (j = 0; j < bset->n_eq; ++j)
277 for (j = 0; j < bset->n_ineq; ++j)
279 bset->ineq[j][1 + i]);
282 for (i = 0; i < bset->n_ineq; ++i) {
287 1 + shift +
total + bset->n_eq + bset->n_ineq);
297 for (j = 0; j < bset->n_eq; ++j)
300 for (j = 0; j < bset->n_ineq; ++j)
331 return morph ? morph->inv : NULL;
403 for (i = 0; i < data->
n; ++i) {
431 int i, n_ray, n_vertex;
441 if (dim < 0 || n_eq < 0 || n_ineq < 0)
443 n_ray = n_vertex = 0;
444 for (i = 0; i < n_ineq; ++i) {
496 for (i = 0; i < factor->
n_line; ++i) {
519 for (i = 0; i < n_ineq; ++i) {
545 for (j = start; j <
n; ++j) {
563 for (i = first; i < data->
n; ++i)
580 for (i = data->
n - 1; i >= 0; --i) {
616 for (i = 0; i < data->
n; ++i) {
625 for (i = 0; i < data->
n; ++i) {
691 for (i = 0; i < data->
n; ++i) {
703 for (i = 0; i < data->
n; ++i)
705 for (i = 0; i < data->
n; ++i)
828 if (
f->n_group > 0) {
848 "input set not allowed to have local variables",
875 "input set not allowed to have local variables",
908 for (i = 1; i <
set->n; ++i) {
957 for (i = 1; i <
set->n; ++i) {
struct isl_multi_aff isl_multi_aff
#define isl_die(ctx, errno, msg, code)
#define isl_alloc_array(ctx, type, n)
#define isl_calloc_array(ctx, type, n)
isl_stat isl_stat(*) void user)
void GMPZAPI() lcm(mp_int rop, mp_int op1, mp_int op2)
__isl_give isl_multi_aff * isl_multi_aff_from_aff_mat(__isl_take isl_space *space, __isl_take isl_mat *mat)
isl_ctx * isl_factorizer_get_ctx(__isl_keep isl_factorizer *f)
__isl_give isl_factorizer * isl_basic_set_factorizer(__isl_keep isl_basic_set *bset)
__isl_give isl_bool isl_factorizer_every_factor_basic_set(__isl_keep isl_factorizer *f, isl_bool(*test)(__isl_keep isl_basic_set *bset, void *user), void *user)
__isl_null isl_factorizer * isl_factorizer_free(__isl_take isl_factorizer *f)
static void isl_coefficients_product_data_clear(struct isl_coefficients_product_data *data)
__isl_give isl_basic_set * isl_basic_set_solutions(__isl_take isl_basic_set *bset)
static void set_factor(isl_int *entry, isl_int *src, struct isl_coefficients_factor_data *data)
static isl_bool isl_basic_set_coefficients_factor(__isl_keep isl_basic_set *bset, void *user)
static int next_vertex(struct isl_coefficients_product_data *data)
static __isl_give isl_basic_set * isl_basic_set_coefficients_product(__isl_take isl_factorizer *f)
static __isl_give isl_basic_set * isl_basic_set_coefficients_morphed_product(__isl_take isl_factorizer *f)
static __isl_give isl_basic_set * rational_universe(__isl_take isl_space *space)
__isl_give isl_basic_set_list * isl_basic_set_list_coefficients(__isl_take isl_basic_set_list *list)
static __isl_give isl_space * isl_space_prefix(__isl_take isl_space *space, const char *prefix)
static void scale_factor(isl_int *entry, isl_int *src, isl_int f, struct isl_coefficients_factor_data *data)
static __isl_give isl_basic_set * add_vertex(__isl_take isl_basic_set *bset, struct isl_coefficients_product_data *data)
static __isl_give isl_basic_set * add_rays(__isl_take isl_basic_set *bset, struct isl_coefficients_factor_data *data, int total)
static __isl_give isl_basic_set * isl_basic_set_coefficients_base(__isl_take isl_basic_set *bset)
static __isl_give isl_space * isl_space_unprefix(__isl_take isl_space *space, enum isl_dim_type type, const char *prefix)
static int is_ray(__isl_keep isl_basic_set *bset, int ineq)
static void clear_entry(isl_int *entry, int total)
static __isl_give isl_mat * get_inv(__isl_keep isl_morph *morph)
static __isl_give isl_basic_set * basic_set_coefficients(__isl_take isl_basic_set *bset)
static __isl_give isl_space * isl_space_coefficients(__isl_take isl_space *space)
static void first_vertex(struct isl_coefficients_product_data *data, int first)
static __isl_give isl_basic_set * construct_product(isl_ctx *ctx, struct isl_coefficients_product_data *data)
static __isl_give isl_basic_set * add_lines(__isl_take isl_basic_set *bset, struct isl_coefficients_factor_data *factor, int total)
static __isl_give isl_space * isl_space_solutions(__isl_take isl_space *space)
__isl_give isl_basic_set * isl_set_coefficients(__isl_take isl_set *set)
__isl_give isl_basic_set * isl_basic_set_coefficients(__isl_take isl_basic_set *bset)
static __isl_give isl_basic_set * farkas(__isl_take isl_basic_set *bset, int shift)
static isl_stat isl_coefficients_product_data_init(isl_ctx *ctx, struct isl_coefficients_product_data *data, int n)
static int factor_first_vertex(struct isl_coefficients_factor_data *factor, int start)
__isl_give isl_basic_set * isl_set_solutions(__isl_take isl_set *set)
static __isl_give isl_mat * peek_inv(__isl_keep isl_morph *morph)
static __isl_give isl_basic_set * coefficients_wrap(__isl_take isl_basic_set *bset, void *user)
#define isl_int_is_zero(i)
#define isl_int_neg(r, i)
#define isl_int_set(r, i)
#define isl_int_lcm(r, i, j)
#define isl_int_divexact(r, i, j)
#define isl_int_set_si(r, i)
__isl_give isl_basic_set * isl_basic_set_alloc_space(__isl_take isl_space *space, unsigned extra, unsigned n_eq, unsigned n_ineq)
isl_size isl_basic_set_n_equality(__isl_keep isl_basic_set *bset)
int isl_basic_set_alloc_div(__isl_keep isl_basic_set *bset)
int isl_basic_set_alloc_equality(__isl_keep isl_basic_set *bset)
static unsigned pos(__isl_keep isl_space *space, enum isl_dim_type type)
isl_size isl_basic_set_n_inequality(__isl_keep isl_basic_set *bset)
__isl_give isl_basic_set * isl_basic_set_set_rational(__isl_take isl_basic_set *bset)
__isl_give isl_basic_set * isl_basic_set_reset_space(__isl_take isl_basic_set *bset, __isl_take isl_space *space)
int isl_basic_set_alloc_inequality(__isl_keep isl_basic_set *bset)
#define isl_basic_set_list
__isl_give isl_basic_set * isl_basic_set_simplify(__isl_take isl_basic_set *bset)
__isl_give isl_basic_set * isl_basic_set_finalize(__isl_take isl_basic_set *bset)
isl_bool isl_mat_is_scaled_identity(__isl_keep isl_mat *mat)
void isl_seq_clr(isl_int *p, unsigned len)
void isl_seq_scale(isl_int *dst, isl_int *src, isl_int m, unsigned len)
void isl_seq_cpy(isl_int *dst, isl_int *src, unsigned len)
static __isl_give isl_union_map * total(__isl_take isl_union_map *umap, __isl_give isl_map *(*fn)(__isl_take isl_map *))
struct isl_basic_set isl_basic_set
__isl_give isl_mat * isl_mat_transpose(__isl_take isl_mat *mat)
__isl_give isl_mat * isl_mat_copy(__isl_keep isl_mat *mat)
__isl_give isl_mat * isl_mat_lin_to_aff(__isl_take isl_mat *mat)
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_space * isl_basic_set_get_space(__isl_keep isl_basic_set *bset)
__isl_give isl_basic_set * isl_basic_set_preimage_multi_aff(__isl_take isl_basic_set *bset, __isl_take isl_multi_aff *ma)
__isl_null isl_basic_set * isl_basic_set_free(__isl_take isl_basic_set *bset)
isl_bool isl_basic_set_plain_is_empty(__isl_keep isl_basic_set *bset)
__isl_null isl_set * isl_set_free(__isl_take isl_set *set)
__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_basic_set * isl_basic_set_remove_divs(__isl_take isl_basic_set *bset)
isl_ctx * isl_basic_set_get_ctx(__isl_keep 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_basic_set_intersect(__isl_take isl_basic_set *bset1, __isl_take isl_basic_set *bset2)
__isl_give isl_basic_set * isl_basic_set_universe(__isl_take isl_space *space)
__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_give isl_space * isl_space_from_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_copy(__isl_keep isl_space *space)
__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_give isl_space * isl_space_join(__isl_take isl_space *left, __isl_take isl_space *right)
__isl_export __isl_give isl_space * isl_space_range(__isl_take isl_space *space)
__isl_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_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_give isl_space * isl_space_drop_dims(__isl_take isl_space *space, enum isl_dim_type type, unsigned first, unsigned num)
isl_size isl_space_dim(__isl_keep isl_space *space, enum isl_dim_type type)
__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)
struct isl_coefficients_factor_data * factors