add isl_basic_set_lexmax
authorSven Verdoolaege <skimo@kotnet.org>
Sun, 15 Nov 2009 17:22:07 +0000 (18:22 +0100)
committerSven Verdoolaege <skimo@kotnet.org>
Sun, 15 Nov 2009 19:30:49 +0000 (20:30 +0100)
doc/user.pod
include/isl_set.h
isl_map.c

index 62a9681..61a5b3c 100644 (file)
@@ -853,12 +853,14 @@ is equal to C<dom>.
                __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
index 1aa47ea..ebd2846 100644 (file)
@@ -152,6 +152,7 @@ __isl_give isl_set *isl_basic_set_partial_lexmax(
                __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);
index 156ba0b..89673ea 100644 (file)
--- a/isl_map.c
+++ b/isl_map.c
@@ -3355,27 +3355,41 @@ struct isl_set *isl_basic_set_partial_lexmax(
                        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)
 {