__isl_take isl_basic_set *dom,
__isl_give isl_set **empty);
-Given a basic set C<bset>, the following function simply
-returns a set containing the lexicographic minimum
+Given a basic set C<bset>, the following functions simply
+return a set containing the lexicographic minimum or maximum
of the elements in C<bset>.
__isl_give isl_set *isl_basic_set_lexmin(
__isl_take isl_basic_set *bset);
+ __isl_give isl_set *isl_basic_set_lexmax(
+ __isl_take isl_basic_set *bset);
Given a basic relation C<bmap> and a domain C<dom>,
the following functions
__isl_take isl_basic_set *bset, __isl_take isl_basic_set *dom,
__isl_give isl_set **empty);
__isl_give isl_set *isl_basic_set_lexmin(__isl_take isl_basic_set *bset);
+__isl_give isl_set *isl_basic_set_lexmax(__isl_take isl_basic_set *bset);
__isl_give isl_set *isl_basic_set_union(
__isl_take isl_basic_set *bset1,
__isl_take isl_basic_set *bset2);
dom, empty);
}
-__isl_give isl_map *isl_basic_map_lexmin(__isl_take isl_basic_map *bmap)
+__isl_give isl_map *isl_basic_map_lexopt(__isl_take isl_basic_map *bmap, int max)
{
struct isl_basic_set *dom = NULL;
- struct isl_map *min;
struct isl_dim *dom_dim;
if (!bmap)
goto error;
dom_dim = isl_dim_domain(isl_dim_copy(bmap->dim));
dom = isl_basic_set_universe(dom_dim);
- return isl_basic_map_partial_lexmin(bmap, dom, NULL);
+ return isl_basic_map_partial_lexopt(bmap, dom, NULL, max);
error:
isl_basic_map_free(bmap);
return NULL;
}
+__isl_give isl_map *isl_basic_map_lexmin(__isl_take isl_basic_map *bmap)
+{
+ return isl_basic_map_lexopt(bmap, 0);
+}
+
+__isl_give isl_map *isl_basic_map_lexmax(__isl_take isl_basic_map *bmap)
+{
+ return isl_basic_map_lexopt(bmap, 1);
+}
+
__isl_give isl_set *isl_basic_set_lexmin(__isl_take isl_basic_set *bset)
{
return (isl_set *)isl_basic_map_lexmin((isl_basic_map *)bset);
}
+__isl_give isl_set *isl_basic_set_lexmax(__isl_take isl_basic_set *bset)
+{
+ return (isl_set *)isl_basic_map_lexmax((isl_basic_map *)bset);
+}
+
static struct isl_map *isl_map_reset_dim(struct isl_map *map,
struct isl_dim *dim)
{