add isl_union_set_is_equal
authorSven Verdoolaege <skimo@kotnet.org>
Wed, 17 Nov 2010 15:28:35 +0000 (16:28 +0100)
committerSven Verdoolaege <skimo@kotnet.org>
Wed, 17 Nov 2010 16:12:36 +0000 (17:12 +0100)
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
doc/user.pod
include/isl_union_set.h
isl_test.c
isl_union_map.c

index 59f4c5e..44cb37a 100644 (file)
@@ -1126,6 +1126,9 @@ The followning functions check whether the domain of the given
                __isl_keep isl_set *set2);
        int isl_set_is_equal(__isl_keep isl_set *set1,
                __isl_keep isl_set *set2);
+       int isl_union_set_is_equal(
+               __isl_keep isl_union_set *uset1,
+               __isl_keep isl_union_set *uset2);
        int isl_basic_map_is_equal(
                __isl_keep isl_basic_map *bmap1,
                __isl_keep isl_basic_map *bmap2);
@@ -1149,6 +1152,12 @@ The followning functions check whether the domain of the given
        int isl_set_is_strict_subset(
                __isl_keep isl_set *set1,
                __isl_keep isl_set *set2);
+       int isl_union_set_is_subset(
+               __isl_keep isl_union_set *uset1,
+               __isl_keep isl_union_set *uset2);
+       int isl_union_set_is_strict_subset(
+               __isl_keep isl_union_set *uset1,
+               __isl_keep isl_union_set *uset2);
        int isl_basic_map_is_subset(
                __isl_keep isl_basic_map *bmap1,
                __isl_keep isl_basic_map *bmap2);
index a7b7918..ae2161d 100644 (file)
@@ -45,6 +45,13 @@ __isl_give isl_union_set *isl_union_set_apply(
 
 int isl_union_set_is_empty(__isl_keep isl_union_set *uset);
 
+int isl_union_set_is_subset(__isl_keep isl_union_set *uset1,
+       __isl_keep isl_union_set *uset2);
+int isl_union_set_is_equal(__isl_keep isl_union_set *uset1,
+       __isl_keep isl_union_set *uset2);
+int isl_union_set_is_strict_subset(__isl_keep isl_union_set *uset1,
+       __isl_keep isl_union_set *uset2);
+
 int isl_union_set_n_set(__isl_keep isl_union_set *uset);
 int isl_union_set_foreach_set(__isl_keep isl_union_set *uset,
        int (*fn)(__isl_take isl_set *set, void *user), void *user);
index 793248b..c67a09e 100644 (file)
@@ -1500,19 +1500,31 @@ void test_split_periods(isl_ctx *ctx)
 void test_union(isl_ctx *ctx)
 {
        const char *str;
-       isl_union_set *uset;
+       isl_union_set *uset1, *uset2;
        isl_union_map *umap1, *umap2;
 
        str = "{ [i] : 0 <= i <= 1 }";
-       uset = isl_union_set_read_from_str(ctx, str);
+       uset1 = isl_union_set_read_from_str(ctx, str);
        str = "{ [1] -> [0] }";
        umap1 = isl_union_map_read_from_str(ctx, str);
 
-       umap2 = isl_union_set_lex_gt_union_set(isl_union_set_copy(uset), uset);
+       umap2 = isl_union_set_lex_gt_union_set(isl_union_set_copy(uset1), uset1);
        assert(isl_union_map_is_equal(umap1, umap2));
 
        isl_union_map_free(umap1);
        isl_union_map_free(umap2);
+
+       str = "{ A[i] -> B[i]; B[i] -> C[i]; A[0] -> C[1] }";
+       umap1 = isl_union_map_read_from_str(ctx, str);
+       str = "{ A[i]; B[i] }";
+       uset1 = isl_union_set_read_from_str(ctx, str);
+
+       uset2 = isl_union_map_domain(umap1);
+
+       assert(isl_union_set_is_equal(uset1, uset2));
+
+       isl_union_set_free(uset1);
+       isl_union_set_free(uset2);
 }
 
 void test_bound(isl_ctx *ctx)
index c7cb827..bccf34d 100644 (file)
@@ -1260,6 +1260,12 @@ error:
        return -1;
 }
 
+int isl_union_set_is_subset(__isl_keep isl_union_set *uset1,
+       __isl_keep isl_union_set *uset2)
+{
+       return isl_union_map_is_subset(uset1, uset2);
+}
+
 int isl_union_map_is_equal(__isl_keep isl_union_map *umap1,
        __isl_keep isl_union_map *umap2)
 {
@@ -1274,6 +1280,12 @@ int isl_union_map_is_equal(__isl_keep isl_union_map *umap1,
        return is_subset;
 }
 
+int isl_union_set_is_equal(__isl_keep isl_union_set *uset1,
+       __isl_keep isl_union_set *uset2)
+{
+       return isl_union_map_is_equal(uset1, uset2);
+}
+
 int isl_union_map_is_strict_subset(__isl_keep isl_union_map *umap1,
        __isl_keep isl_union_map *umap2)
 {
@@ -1290,6 +1302,12 @@ int isl_union_map_is_strict_subset(__isl_keep isl_union_map *umap1,
        return !is_subset;
 }
 
+int isl_union_set_is_strict_subset(__isl_keep isl_union_set *uset1,
+       __isl_keep isl_union_set *uset2)
+{
+       return isl_union_map_is_strict_subset(uset1, uset2);
+}
+
 static int sample_entry(void **entry, void *user)
 {
        isl_basic_map **sample = (isl_basic_map **)user;