fix isl_union_{set,map}_lex_g{e,t}_union_map
authorSven Verdoolaege <skimo@kotnet.org>
Tue, 26 Oct 2010 09:25:03 +0000 (11:25 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Tue, 26 Oct 2010 14:23:17 +0000 (16:23 +0200)
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
isl_test.c
isl_union_map.c

index b73b642..c4d8b51 100644 (file)
@@ -15,6 +15,7 @@
 #include <isl_flow.h>
 #include <isl_constraint.h>
 #include <isl_polynomial.h>
+#include <isl_union_map.h>
 
 static char *srcdir;
 
@@ -1431,6 +1432,24 @@ void test_split_periods(isl_ctx *ctx)
        isl_pw_qpolynomial_free(pwqp);
 }
 
+void test_union(isl_ctx *ctx)
+{
+       const char *str;
+       isl_union_set *uset;
+       isl_union_map *umap1, *umap2;
+
+       str = "{ [i] : 0 <= i <= 1 }";
+       uset = isl_union_set_from_set(isl_set_read_from_str(ctx, str, -1));
+       str = "{ [1] -> [0] }";
+       umap1 = isl_union_map_from_map(isl_map_read_from_str(ctx, str, -1));
+
+       umap2 = isl_union_set_lex_gt_union_set(isl_union_set_copy(uset), uset);
+       assert(isl_union_map_is_equal(umap1, umap2));
+
+       isl_union_map_free(umap1);
+       isl_union_map_free(umap2);
+}
+
 int main()
 {
        struct isl_ctx *ctx;
@@ -1439,6 +1458,7 @@ int main()
        assert(srcdir);
 
        ctx = isl_ctx_alloc();
+       test_union(ctx);
        test_split_periods(ctx);
        test_parse(ctx);
        test_pwqp(ctx);
index 6b11f60..836f23f 100644 (file)
@@ -609,25 +609,25 @@ __isl_give isl_union_map *isl_union_set_lex_le_union_set(
 __isl_give isl_union_map *isl_union_set_lex_gt_union_set(
        __isl_take isl_union_set *uset1, __isl_take isl_union_set *uset2)
 {
-       return isl_union_set_lex_lt_union_set(uset2, uset1);
+       return isl_union_map_reverse(isl_union_set_lex_lt_union_set(uset2, uset1));
 }
 
 __isl_give isl_union_map *isl_union_set_lex_ge_union_set(
        __isl_take isl_union_set *uset1, __isl_take isl_union_set *uset2)
 {
-       return isl_union_set_lex_le_union_set(uset2, uset1);
+       return isl_union_map_reverse(isl_union_set_lex_le_union_set(uset2, uset1));
 }
 
 __isl_give isl_union_map *isl_union_map_lex_gt_union_map(
        __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2)
 {
-       return isl_union_map_lex_lt_union_map(umap2, umap1);
+       return isl_union_map_reverse(isl_union_map_lex_lt_union_map(umap2, umap1));
 }
 
 __isl_give isl_union_map *isl_union_map_lex_ge_union_map(
        __isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2)
 {
-       return isl_union_map_lex_le_union_map(umap2, umap1);
+       return isl_union_map_reverse(isl_union_map_lex_le_union_map(umap2, umap1));
 }
 
 static int intersect_domain_entry(void **entry, void *user)