diff options
-rw-r--r-- | polly/lib/External/isl/GIT_HEAD_ID | 2 | ||||
-rw-r--r-- | polly/lib/External/isl/isl_convex_hull.c | 52 | ||||
-rw-r--r-- | polly/lib/External/isl/isl_map.c | 231 | ||||
-rw-r--r-- | polly/lib/External/isl/isl_map_private.h | 16 | ||||
-rw-r--r-- | polly/lib/External/isl/isl_map_simplify.c | 47 | ||||
-rw-r--r-- | polly/lib/External/isl/isl_output.c | 12 | ||||
-rw-r--r-- | polly/lib/External/isl/isl_tab.h | 2 | ||||
-rw-r--r-- | polly/lib/External/isl/isl_tab_pip.c | 18 |
8 files changed, 15 insertions, 365 deletions
diff --git a/polly/lib/External/isl/GIT_HEAD_ID b/polly/lib/External/isl/GIT_HEAD_ID index c95231f225e..463d02d7e27 100644 --- a/polly/lib/External/isl/GIT_HEAD_ID +++ b/polly/lib/External/isl/GIT_HEAD_ID @@ -1 +1 @@ -isl-0.18-282-g12465a5 +isl-0.18-304-g1efe43d diff --git a/polly/lib/External/isl/isl_convex_hull.c b/polly/lib/External/isl/isl_convex_hull.c index c85cee4067c..636a03dbece 100644 --- a/polly/lib/External/isl/isl_convex_hull.c +++ b/polly/lib/External/isl/isl_convex_hull.c @@ -29,56 +29,6 @@ static struct isl_basic_set *uset_convex_hull_wrap_bounded(struct isl_set *set); -/* Return 1 if constraint c is redundant with respect to the constraints - * in bmap. If c is a lower [upper] bound in some variable and bmap - * does not have a lower [upper] bound in that variable, then c cannot - * be redundant and we do not need solve any lp. - */ -int isl_basic_map_constraint_is_redundant(struct isl_basic_map **bmap, - isl_int *c, isl_int *opt_n, isl_int *opt_d) -{ - enum isl_lp_result res; - unsigned total; - int i, j; - - if (!bmap) - return -1; - - total = isl_basic_map_total_dim(*bmap); - for (i = 0; i < total; ++i) { - int sign; - if (isl_int_is_zero(c[1+i])) - continue; - sign = isl_int_sgn(c[1+i]); - for (j = 0; j < (*bmap)->n_ineq; ++j) - if (sign == isl_int_sgn((*bmap)->ineq[j][1+i])) - break; - if (j == (*bmap)->n_ineq) - break; - } - if (i < total) - return 0; - - res = isl_basic_map_solve_lp(*bmap, 0, c, (*bmap)->ctx->one, - opt_n, opt_d, NULL); - if (res == isl_lp_unbounded) - return 0; - if (res == isl_lp_error) - return -1; - if (res == isl_lp_empty) { - *bmap = isl_basic_map_set_to_empty(*bmap); - return 0; - } - return !isl_int_is_neg(*opt_n); -} - -int isl_basic_set_constraint_is_redundant(struct isl_basic_set **bset, - isl_int *c, isl_int *opt_n, isl_int *opt_d) -{ - return isl_basic_map_constraint_is_redundant( - (struct isl_basic_map **)bset, c, opt_n, opt_d); -} - /* Remove redundant * constraints. If the minimal value along the normal of a constraint * is the same if the constraint is removed, then the constraint is redundant. @@ -1848,8 +1798,6 @@ static struct isl_basic_set *uset_convex_hull(struct isl_set *set) set = isl_set_set_rational(set); if (!set) - goto error; - if (!set) return NULL; if (set->n == 1) { convex_hull = isl_basic_set_copy(set->p[0]); diff --git a/polly/lib/External/isl/isl_map.c b/polly/lib/External/isl/isl_map.c index 8257268a47d..b2f3b77ea2a 100644 --- a/polly/lib/External/isl/isl_map.c +++ b/polly/lib/External/isl/isl_map.c @@ -3296,9 +3296,6 @@ static __isl_give isl_map *map_intersect_add_constraint( if (map2->p[0]->n_eq + map2->p[0]->n_ineq != 1) return isl_map_intersect(map2, map1); - isl_assert(map2->ctx, - map2->p[0]->n_eq + map2->p[0]->n_ineq == 1, goto error); - map1 = isl_map_cow(map1); if (!map1) goto error; @@ -4954,11 +4951,6 @@ int isl_basic_map_add_div_constraint(__isl_keep isl_basic_map *bmap, return add_lower_div_constraint(bmap, div_pos, bmap->div[div]); } -int isl_basic_set_add_div_constraints(struct isl_basic_set *bset, unsigned div) -{ - return isl_basic_map_add_div_constraints(bset, div); -} - struct isl_basic_set *isl_basic_map_underlying_set( struct isl_basic_map *bmap) { @@ -5084,40 +5076,6 @@ struct isl_basic_set *isl_basic_set_from_underlying_set( bset_to_bmap(like))); } -struct isl_set *isl_set_from_underlying_set( - struct isl_set *set, struct isl_basic_set *like) -{ - int i; - - if (!set || !like) - goto error; - isl_assert(set->ctx, set->dim->n_out == isl_basic_set_total_dim(like), - goto error); - if (isl_space_is_equal(set->dim, like->dim) && like->n_div == 0) { - isl_basic_set_free(like); - return set; - } - set = isl_set_cow(set); - if (!set) - goto error; - for (i = 0; i < set->n; ++i) { - set->p[i] = isl_basic_set_from_underlying_set(set->p[i], - isl_basic_set_copy(like)); - if (!set->p[i]) - goto error; - } - isl_space_free(set->dim); - set->dim = isl_space_copy(like->dim); - if (!set->dim) - goto error; - isl_basic_set_free(like); - return set; -error: - isl_basic_set_free(like); - isl_set_free(set); - return NULL; -} - struct isl_set *isl_map_underlying_set(struct isl_map *map) { int i; @@ -5152,11 +5110,6 @@ error: return NULL; } -struct isl_set *isl_set_to_underlying_set(struct isl_set *set) -{ - return set_from_map(isl_map_underlying_set(set_to_map(set))); -} - /* Replace the space of "bmap" by "space". * * If the space of "bmap" is identical to "space" (including the identifiers @@ -6143,26 +6096,6 @@ __isl_give isl_basic_map *isl_basic_map_upper_bound_si( return basic_map_bound_si(bmap, type, pos, value, 1); } -struct isl_basic_set *isl_basic_set_lower_bound_dim(struct isl_basic_set *bset, - unsigned dim, isl_int value) -{ - int j; - - bset = isl_basic_set_cow(bset); - bset = isl_basic_set_extend_constraints(bset, 0, 1); - j = isl_basic_set_alloc_inequality(bset); - if (j < 0) - goto error; - isl_seq_clr(bset->ineq[j], 1 + isl_basic_set_total_dim(bset)); - isl_int_set_si(bset->ineq[j][1 + isl_basic_set_n_param(bset) + dim], 1); - isl_int_neg(bset->ineq[j][0], value); - bset = isl_basic_set_simplify(bset); - return isl_basic_set_finalize(bset); -error: - isl_basic_set_free(bset); - return NULL; -} - static __isl_give isl_map *map_bound_si(__isl_take isl_map *map, enum isl_dim_type type, unsigned pos, int value, int upper) { @@ -6334,27 +6267,6 @@ error: return NULL; } -struct isl_set *isl_set_lower_bound_dim(struct isl_set *set, unsigned dim, - isl_int value) -{ - int i; - - set = isl_set_cow(set); - if (!set) - return NULL; - - isl_assert(set->ctx, dim < isl_set_n_dim(set), goto error); - for (i = 0; i < set->n; ++i) { - set->p[i] = isl_basic_set_lower_bound_dim(set->p[i], dim, value); - if (!set->p[i]) - goto error; - } - return set; -error: - isl_set_free(set); - return NULL; -} - struct isl_map *isl_map_reverse(struct isl_map *map) { int i; @@ -9058,12 +8970,6 @@ static isl_bool isl_basic_set_plain_has_fixed_var( pos, val); } -static int isl_set_plain_has_fixed_var(__isl_keep isl_set *set, unsigned pos, - isl_int *val) -{ - return isl_map_plain_has_fixed_var(set_to_map(set), pos, val); -} - isl_bool isl_basic_map_plain_is_fixed(__isl_keep isl_basic_map *bmap, enum isl_dim_type type, unsigned pos, isl_int *val) { @@ -9166,101 +9072,6 @@ isl_bool isl_basic_set_plain_dim_is_fixed(__isl_keep isl_basic_set *bset, isl_basic_set_n_param(bset) + dim, val); } -/* Check if dimension dim has fixed value and if so and if val is not NULL, - * then return this fixed value in *val. - */ -int isl_set_plain_dim_is_fixed(__isl_keep isl_set *set, - unsigned dim, isl_int *val) -{ - return isl_set_plain_has_fixed_var(set, isl_set_n_param(set) + dim, val); -} - -/* Check if input variable in has fixed value and if so and if val is not NULL, - * then return this fixed value in *val. - */ -int isl_map_plain_input_is_fixed(__isl_keep isl_map *map, - unsigned in, isl_int *val) -{ - return isl_map_plain_has_fixed_var(map, isl_map_n_param(map) + in, val); -} - -/* Check if dimension dim has an (obvious) fixed lower bound and if so - * and if val is not NULL, then return this lower bound in *val. - */ -int isl_basic_set_plain_dim_has_fixed_lower_bound( - __isl_keep isl_basic_set *bset, unsigned dim, isl_int *val) -{ - int i, i_eq = -1, i_ineq = -1; - isl_int *c; - unsigned total; - unsigned nparam; - - if (!bset) - return -1; - total = isl_basic_set_total_dim(bset); - nparam = isl_basic_set_n_param(bset); - for (i = 0; i < bset->n_eq; ++i) { - if (isl_int_is_zero(bset->eq[i][1+nparam+dim])) - continue; - if (i_eq != -1) - return 0; - i_eq = i; - } - for (i = 0; i < bset->n_ineq; ++i) { - if (!isl_int_is_pos(bset->ineq[i][1+nparam+dim])) - continue; - if (i_eq != -1 || i_ineq != -1) - return 0; - i_ineq = i; - } - if (i_eq == -1 && i_ineq == -1) - return 0; - c = i_eq != -1 ? bset->eq[i_eq] : bset->ineq[i_ineq]; - /* The coefficient should always be one due to normalization. */ - if (!isl_int_is_one(c[1+nparam+dim])) - return 0; - if (isl_seq_first_non_zero(c+1, nparam+dim) != -1) - return 0; - if (isl_seq_first_non_zero(c+1+nparam+dim+1, - total - nparam - dim - 1) != -1) - return 0; - if (val) - isl_int_neg(*val, c[0]); - return 1; -} - -int isl_set_plain_dim_has_fixed_lower_bound(__isl_keep isl_set *set, - unsigned dim, isl_int *val) -{ - int i; - isl_int v; - isl_int tmp; - int fixed; - - if (!set) - return -1; - if (set->n == 0) - return 0; - if (set->n == 1) - return isl_basic_set_plain_dim_has_fixed_lower_bound(set->p[0], - dim, val); - isl_int_init(v); - isl_int_init(tmp); - fixed = isl_basic_set_plain_dim_has_fixed_lower_bound(set->p[0], - dim, &v); - for (i = 1; fixed == 1 && i < set->n; ++i) { - fixed = isl_basic_set_plain_dim_has_fixed_lower_bound(set->p[i], - dim, &tmp); - if (fixed == 1 && isl_int_ne(tmp, v)) - fixed = 0; - } - if (val) - isl_int_set(*val, v); - isl_int_clear(tmp); - isl_int_clear(v); - return fixed; -} - /* Return -1 if the constraint "c1" should be sorted before "c2" * and 1 if it should be sorted after "c2". * Return 0 if the two constraints are the same (up to the constant term). @@ -9361,8 +9172,8 @@ struct isl_basic_set *isl_basic_set_normalize(struct isl_basic_set *bset) return bset_from_bmap(isl_basic_map_normalize(bset_to_bmap(bset))); } -int isl_basic_map_plain_cmp(const __isl_keep isl_basic_map *bmap1, - const __isl_keep isl_basic_map *bmap2) +int isl_basic_map_plain_cmp(__isl_keep isl_basic_map *bmap1, + __isl_keep isl_basic_map *bmap2) { int i, cmp; unsigned total; @@ -9413,8 +9224,8 @@ int isl_basic_map_plain_cmp(const __isl_keep isl_basic_map *bmap1, return 0; } -int isl_basic_set_plain_cmp(const __isl_keep isl_basic_set *bset1, - const __isl_keep isl_basic_set *bset2) +int isl_basic_set_plain_cmp(__isl_keep isl_basic_set *bset1, + __isl_keep isl_basic_set *bset2) { return isl_basic_map_plain_cmp(bset1, bset2); } @@ -9454,8 +9265,8 @@ isl_bool isl_basic_set_plain_is_equal(__isl_keep isl_basic_set *bset1, static int qsort_bmap_cmp(const void *p1, const void *p2) { - const struct isl_basic_map *bmap1 = *(const struct isl_basic_map **)p1; - const struct isl_basic_map *bmap2 = *(const struct isl_basic_map **)p2; + isl_basic_map *bmap1 = *(isl_basic_map **) p1; + isl_basic_map *bmap2 = *(isl_basic_map **) p2; return isl_basic_map_plain_cmp(bmap1, bmap2); } @@ -9596,36 +9407,6 @@ isl_bool isl_set_plain_is_equal(__isl_keep isl_set *set1, return isl_map_plain_is_equal(set_to_map(set1), set_to_map(set2)); } -/* Return an interval that ranges from min to max (inclusive) - */ -struct isl_basic_set *isl_basic_set_interval(struct isl_ctx *ctx, - isl_int min, isl_int max) -{ - int k; - struct isl_basic_set *bset = NULL; - - bset = isl_basic_set_alloc(ctx, 0, 1, 0, 0, 2); - if (!bset) - goto error; - - k = isl_basic_set_alloc_inequality(bset); - if (k < 0) - goto error; - isl_int_set_si(bset->ineq[k][1], 1); - isl_int_neg(bset->ineq[k][0], min); - - k = isl_basic_set_alloc_inequality(bset); - if (k < 0) - goto error; - isl_int_set_si(bset->ineq[k][1], -1); - isl_int_set(bset->ineq[k][0], max); - - return bset; -error: - isl_basic_set_free(bset); - return NULL; -} - /* Return the basic maps in "map" as a list. */ __isl_give isl_basic_map_list *isl_map_get_basic_map_list( diff --git a/polly/lib/External/isl/isl_map_private.h b/polly/lib/External/isl/isl_map_private.h index d672cc4e16e..521c067c0bc 100644 --- a/polly/lib/External/isl/isl_map_private.h +++ b/polly/lib/External/isl/isl_map_private.h @@ -162,9 +162,6 @@ __isl_give isl_map *isl_map_finalize(__isl_take isl_map *map); __isl_give isl_basic_set *isl_basic_set_from_underlying_set( __isl_take isl_basic_set *bset, __isl_take isl_basic_set *like); -__isl_give isl_set *isl_set_from_underlying_set( - __isl_take isl_set *set, __isl_take isl_basic_set *like); -__isl_give isl_set *isl_set_to_underlying_set(__isl_take isl_set *set); __isl_give isl_map *isl_map_realign(__isl_take isl_map *map, __isl_take isl_reordering *r); @@ -221,8 +218,6 @@ __isl_give isl_basic_map *isl_basic_map_alloc_space(__isl_take isl_space *dim, __isl_give isl_map *isl_map_alloc_space(__isl_take isl_space *dim, int n, unsigned flags); -unsigned isl_basic_map_total_dim(const struct isl_basic_map *bmap); - int isl_basic_map_alloc_equality(struct isl_basic_map *bmap); int isl_basic_set_alloc_equality(struct isl_basic_set *bset); int isl_basic_set_free_inequality(struct isl_basic_set *bset, unsigned n); @@ -299,8 +294,8 @@ __isl_give isl_basic_map *isl_basic_map_sort_constraints( __isl_take isl_basic_map *bmap); __isl_give isl_basic_set *isl_basic_set_sort_constraints( __isl_take isl_basic_set *bset); -int isl_basic_map_plain_cmp(const __isl_keep isl_basic_map *bmap1, - const __isl_keep isl_basic_map *bmap2); +int isl_basic_map_plain_cmp(__isl_keep isl_basic_map *bmap1, + __isl_keep isl_basic_map *bmap2); isl_bool isl_basic_map_plain_is_equal(__isl_keep isl_basic_map *bmap1, __isl_keep isl_basic_map *bmap2); struct isl_basic_map *isl_basic_map_normalize_constraints( @@ -331,10 +326,6 @@ struct isl_set *isl_set_drop(struct isl_set *set, enum isl_dim_type type, unsigned first, unsigned n); struct isl_basic_set *isl_basic_set_drop_dims( struct isl_basic_set *bset, unsigned first, unsigned n); -struct isl_set *isl_set_drop_dims( - struct isl_set *set, unsigned first, unsigned n); -struct isl_map *isl_map_drop_inputs( - struct isl_map *map, unsigned first, unsigned n); struct isl_map *isl_map_drop(struct isl_map *map, enum isl_dim_type type, unsigned first, unsigned n); __isl_give isl_basic_map *isl_basic_map_drop_unrelated_constraints( @@ -364,9 +355,6 @@ __isl_give isl_map *isl_map_eliminate(__isl_take isl_map *map, __isl_give isl_set *isl_set_eliminate(__isl_take isl_set *set, enum isl_dim_type type, unsigned first, unsigned n); -int isl_basic_set_constraint_is_redundant(struct isl_basic_set **bset, - isl_int *c, isl_int *opt_n, isl_int *opt_d); - int isl_basic_map_add_div_constraint(__isl_keep isl_basic_map *bmap, unsigned div, int sign); int isl_basic_map_add_div_constraints(struct isl_basic_map *bmap, unsigned div); diff --git a/polly/lib/External/isl/isl_map_simplify.c b/polly/lib/External/isl/isl_map_simplify.c index 0adf819f16c..86e38b54f1a 100644 --- a/polly/lib/External/isl/isl_map_simplify.c +++ b/polly/lib/External/isl/isl_map_simplify.c @@ -98,38 +98,6 @@ error: return NULL; } -struct isl_set *isl_set_drop_dims( - struct isl_set *set, unsigned first, unsigned n) -{ - int i; - - if (!set) - goto error; - - isl_assert(set->ctx, first + n <= set->dim->n_out, goto error); - - if (n == 0 && !isl_space_get_tuple_name(set->dim, isl_dim_set)) - return set; - set = isl_set_cow(set); - if (!set) - goto error; - set->dim = isl_space_drop_outputs(set->dim, first, n); - if (!set->dim) - goto error; - - for (i = 0; i < set->n; ++i) { - set->p[i] = isl_basic_set_drop_dims(set->p[i], first, n); - if (!set->p[i]) - goto error; - } - - ISL_F_CLR(set, ISL_SET_NORMALIZED); - return set; -error: - isl_set_free(set); - return NULL; -} - /* Move "n" divs starting at "first" to the end of the list of divs. */ static struct isl_basic_map *move_divs_last(struct isl_basic_map *bmap, @@ -222,12 +190,6 @@ __isl_give isl_basic_set *isl_basic_set_drop(__isl_take isl_basic_set *bset, type, first, n)); } -struct isl_basic_map *isl_basic_map_drop_inputs( - struct isl_basic_map *bmap, unsigned first, unsigned n) -{ - return isl_basic_map_drop(bmap, isl_dim_in, first, n); -} - struct isl_map *isl_map_drop(struct isl_map *map, enum isl_dim_type type, unsigned first, unsigned n) { @@ -266,12 +228,6 @@ struct isl_set *isl_set_drop(struct isl_set *set, return set_from_map(isl_map_drop(set_to_map(set), type, first, n)); } -struct isl_map *isl_map_drop_inputs( - struct isl_map *map, unsigned first, unsigned n) -{ - return isl_map_drop(map, isl_dim_in, first, n); -} - /* * We don't cow, as the div is assumed to be redundant. */ @@ -4852,11 +4808,10 @@ static int lower_bound_is_cst(__isl_keep isl_basic_map *bmap, int div, int ineq) { int i; int lower = -1, upper = -1; - unsigned o_div, n_div; + unsigned o_div; isl_int l, u; int equal; - n_div = isl_basic_map_dim(bmap, isl_dim_div); o_div = isl_basic_map_offset(bmap, isl_dim_div); for (i = 0; i < bmap->n_ineq && (lower < 0 || upper < 0); ++i) { if (i == ineq) diff --git a/polly/lib/External/isl/isl_output.c b/polly/lib/External/isl/isl_output.c index 6dd5890874e..3b695a5b6eb 100644 --- a/polly/lib/External/isl/isl_output.c +++ b/polly/lib/External/isl/isl_output.c @@ -1576,11 +1576,10 @@ static __isl_give isl_printer *print_pow(__isl_take isl_printer *p, /* Print the polynomial "up" defined over the domain space "space" and * local variables defined by "div" to "p". - * If "outer" is set, then "up" is not nested inside another polynomial. */ static __isl_give isl_printer *upoly_print(__isl_keep struct isl_upoly *up, __isl_keep isl_space *space, __isl_keep isl_mat *div, - __isl_take isl_printer *p, int outer) + __isl_take isl_printer *p) { int i, n, first, print_parens; struct isl_upoly_rec *rec; @@ -1595,8 +1594,7 @@ static __isl_give isl_printer *upoly_print(__isl_keep struct isl_upoly *up, if (!rec) goto error; n = upoly_rec_n_non_zero(rec); - print_parens = n > 1 || - (outer && rec->up.var >= isl_space_dim(space, isl_dim_all)); + print_parens = n > 1; if (print_parens) p = isl_printer_print_str(p, "("); for (i = 0, first = 1; i < rec->n; ++i) { @@ -1616,7 +1614,7 @@ static __isl_give isl_printer *upoly_print(__isl_keep struct isl_upoly *up, if (!first) p = isl_printer_print_str(p, " + "); if (i == 0 || !isl_upoly_is_one(rec->p[i])) - p = upoly_print(rec->p[i], space, div, p, 0); + p = upoly_print(rec->p[i], space, div, p); } first = 0; if (i == 0) @@ -1639,7 +1637,7 @@ static __isl_give isl_printer *print_qpolynomial(__isl_take isl_printer *p, { if (!p || !qp) goto error; - p = upoly_print(qp->upoly, qp->dim, qp->div, p, 1); + p = upoly_print(qp->upoly, qp->dim, qp->div, p); return p; error: isl_printer_free(p); @@ -1687,7 +1685,7 @@ static __isl_give isl_printer *print_qpolynomial_c(__isl_take isl_printer *p, qp = isl_qpolynomial_mul(qp, f); } if (qp) - p = upoly_print(qp->upoly, space, qp->div, p, 0); + p = upoly_print(qp->upoly, space, qp->div, p); else p = isl_printer_free(p); if (!isl_int_is_one(den)) { diff --git a/polly/lib/External/isl/isl_tab.h b/polly/lib/External/isl/isl_tab.h index fe8ddfdba97..a8bc77a0a69 100644 --- a/polly/lib/External/isl/isl_tab.h +++ b/polly/lib/External/isl/isl_tab.h @@ -272,8 +272,6 @@ __isl_give isl_vec *isl_tab_basic_set_non_trivial_lexmin( __isl_take isl_basic_set *bset, int n_op, int n_region, struct isl_region *region, int (*conflict)(int con, void *user), void *user); -__isl_give isl_vec *isl_tab_basic_set_non_neg_lexmin( - __isl_take isl_basic_set *bset); struct isl_tab_lexmin; typedef struct isl_tab_lexmin isl_tab_lexmin; diff --git a/polly/lib/External/isl/isl_tab_pip.c b/polly/lib/External/isl/isl_tab_pip.c index 20abe47e3f3..23d75c3a4dc 100644 --- a/polly/lib/External/isl/isl_tab_pip.c +++ b/polly/lib/External/isl/isl_tab_pip.c @@ -4455,7 +4455,6 @@ static int all_single_occurrence(__isl_keep isl_basic_map *bmap, int ineq, * val: the coefficients of the output variables */ struct isl_constraint_equal_info { - isl_basic_map *bmap; unsigned n_in; unsigned n_out; isl_int *val; @@ -4504,7 +4503,6 @@ static isl_bool parallel_constraints(__isl_keep isl_basic_map *bmap, occurrences = count_occurrences(bmap, info.n_in); if (info.n_in && !occurrences) goto error; - info.bmap = bmap; n_out = isl_basic_map_dim(bmap, isl_dim_out); n_div = isl_basic_map_dim(bmap, isl_dim_div); info.n_out = n_out + n_div; @@ -5432,22 +5430,6 @@ __isl_give isl_vec *isl_tab_lexmin_get_solution(__isl_keep isl_tab_lexmin *tl) return isl_tab_get_sample_value(tl->tab); } -/* Return the lexicographically smallest rational point in "bset", - * assuming that all variables are non-negative. - * If "bset" is empty, then return a zero-length vector. - */ -__isl_give isl_vec *isl_tab_basic_set_non_neg_lexmin( - __isl_take isl_basic_set *bset) -{ - isl_tab_lexmin *tl; - isl_vec *sol; - - tl = isl_tab_lexmin_from_basic_set(bset); - sol = isl_tab_lexmin_get_solution(tl); - isl_tab_lexmin_free(tl); - return sol; -} - struct isl_sol_pma { struct isl_sol sol; isl_pw_multi_aff *pma; |