84 f, d, opt, opt_denom, sol);
107 for (i = 0; i <
map->n; ++i)
108 if (
map->p[i]->n_div > max_div)
109 max_div =
map->p[i]->n_div;
122 if (!opt &&
map->n > 1 && sol) {
128 if (
map->n > 0 && opt_denom) {
134 opt, opt_denom, sol);
141 for (i = 1; i <
map->n; ++i) {
148 opt_denom ? &opt_denom_i : NULL,
149 sol ? &sol_i : NULL);
158 }
else if (!opt_denom) {
187 if (
map->n > 0 && opt_denom) {
204 f, d, opt, opt_denom, sol);
273 "spaces don't match",
return NULL);
277 if (bset_n_div < 0 || obj_n_div < 0)
279 if (bset_n_div == 0 && obj_n_div == 0)
288 if (!bset_div || (bset_n_div && !exp1) || (obj_n_div && !exp2))
isl_ctx * isl_aff_get_ctx(__isl_keep isl_aff *aff)
__isl_give isl_aff * isl_aff_align_params(__isl_take isl_aff *aff, __isl_take isl_space *model)
__isl_null isl_aff * isl_aff_free(__isl_take isl_aff *aff)
__isl_give isl_aff * isl_aff_copy(__isl_keep isl_aff *aff)
__isl_give isl_space * isl_aff_get_domain_space(__isl_keep isl_aff *aff)
isl_size isl_aff_dim(__isl_keep isl_aff *aff, enum isl_dim_type type)
static __isl_give isl_basic_map * bset_to_bmap(__isl_take isl_basic_set *bset)
#define isl_die(ctx, errno, msg, code)
#define isl_alloc_array(ctx, type, n)
__isl_give isl_aff * isl_aff_expand_divs(__isl_take isl_aff *aff, __isl_take isl_mat *div, int *exp)
#define isl_int_is_pos(i)
#define isl_int_is_neg(i)
#define isl_int_neg(r, i)
#define isl_int_set(r, i)
#define isl_int_mul(r, i, j)
#define isl_int_submul(r, i, j)
__isl_give isl_mat * isl_merge_divs(__isl_keep isl_mat *div1, __isl_keep isl_mat *div2, int *exp1, int *exp2)
enum isl_lp_result isl_basic_set_solve_lp(__isl_keep isl_basic_set *bset, int max, isl_int *f, isl_int d, isl_int *opt, isl_int *opt_denom, __isl_give isl_vec **sol)
static __isl_give isl_val * basic_set_opt_lp(__isl_keep isl_basic_set *bset, int max, __isl_keep isl_aff *obj)
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)
static enum isl_lp_result isl_tab_solve_lp(__isl_keep isl_basic_map *bmap, int maximize, isl_int *f, isl_int denom, isl_int *opt, isl_int *opt_denom, __isl_give isl_vec **sol)
enum isl_lp_result isl_map_solve_lp(__isl_keep isl_map *map, int max, isl_int *f, isl_int d, isl_int *opt, isl_int *opt_denom, __isl_give isl_vec **sol)
__isl_give isl_val * isl_basic_set_min_lp_val(__isl_keep isl_basic_set *bset, __isl_keep isl_aff *obj)
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)
static __isl_give isl_val * isl_basic_set_opt_lp_val_aligned(__isl_keep isl_basic_set *bset, int max, __isl_keep isl_aff *obj)
static __isl_give isl_val * isl_basic_set_opt_lp_val(__isl_keep isl_basic_set *bset, int max, __isl_keep isl_aff *obj)
__isl_give isl_val * isl_basic_set_max_lp_val(__isl_keep isl_basic_set *bset, __isl_keep isl_aff *obj)
__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_basic_set_space_has_equal_params(__isl_keep isl_basic_set *bset, __isl_keep isl_space *space)
__isl_give isl_mat * isl_basic_set_get_divs(__isl_keep isl_basic_set *bset)
__isl_give isl_basic_map * isl_basic_map_gauss(__isl_take isl_basic_map *bmap, int *progress)
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)
void isl_tab_free(struct isl_tab *tab)
__isl_give isl_vec * isl_tab_get_sample_value(struct isl_tab *tab)
enum isl_lp_result isl_tab_min(struct isl_tab *tab, isl_int *f, isl_int denom, isl_int *opt, isl_int *opt_denom, unsigned flags)
__isl_give struct isl_tab * isl_tab_from_basic_map(__isl_keep isl_basic_map *bmap, int track)
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_val * isl_val_normalize(__isl_take isl_val *v)
isl_size isl_basic_map_dim(__isl_keep isl_basic_map *bmap, enum isl_dim_type type)
isl_size isl_map_dim(__isl_keep isl_map *map, enum isl_dim_type type)
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_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_copy(__isl_keep isl_basic_set *bset)
__isl_give isl_basic_set * isl_basic_set_align_params(__isl_take isl_basic_set *bset, __isl_take isl_space *model)
__isl_export isl_bool isl_space_is_equal(__isl_keep isl_space *space1, __isl_keep isl_space *space2)
struct isl_basic_map * bmap
static Signature set_to_map
__isl_export __isl_give isl_val * isl_val_neginfty(isl_ctx *ctx)
__isl_export __isl_give isl_val * isl_val_infty(isl_ctx *ctx)
__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_null isl_vec * isl_vec_free(__isl_take isl_vec *vec)
__isl_give isl_vec * isl_vec_alloc(isl_ctx *ctx, unsigned size)