add isl_union_map_is_injective
authorSven Verdoolaege <skimo@kotnet.org>
Tue, 12 Apr 2011 11:01:21 +0000 (13:01 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Thu, 21 Apr 2011 11:13:11 +0000 (13:13 +0200)
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
doc/user.pod
include/isl/map.h
include/isl/union_map.h
isl_map.c
isl_union_map.c

index 312314f..50fdaad 100644 (file)
@@ -1174,6 +1174,11 @@ is already known to be empty.
        int isl_map_is_single_valued(__isl_keep isl_map *map);
        int isl_union_map_is_single_valued(__isl_keep isl_union_map *umap);
 
+=item * Injectivity
+
+       int isl_map_is_injective(__isl_keep isl_map *map);
+       int isl_union_map_is_injective(__isl_keep isl_union_map *umap);
+
 =item * Bijectivity
 
        int isl_map_is_bijective(__isl_keep isl_map *map);
index 8884aee..5755d14 100644 (file)
@@ -372,6 +372,7 @@ int isl_map_is_subset(__isl_keep isl_map *map1, __isl_keep isl_map *map2);
 int isl_map_is_strict_subset(__isl_keep isl_map *map1, __isl_keep isl_map *map2);
 int isl_map_is_equal(__isl_keep isl_map *map1, __isl_keep isl_map *map2);
 int isl_map_is_single_valued(__isl_keep isl_map *map);
+int isl_map_is_injective(__isl_keep isl_map *map);
 int isl_map_is_bijective(__isl_keep isl_map *map);
 int isl_map_is_translation(__isl_keep isl_map *map);
 int isl_map_has_equal_dim(__isl_keep isl_map *map1, __isl_keep isl_map *map2);
index 2a0076e..c6cfd0e 100644 (file)
@@ -85,6 +85,7 @@ __isl_give isl_union_map *isl_union_set_identity(__isl_take isl_union_set *uset)
 
 int isl_union_map_is_empty(__isl_keep isl_union_map *umap);
 int isl_union_map_is_single_valued(__isl_keep isl_union_map *umap);
+int isl_union_map_is_injective(__isl_keep isl_union_map *umap);
 int isl_union_map_is_bijective(__isl_keep isl_union_map *umap);
 
 int isl_union_map_is_subset(__isl_keep isl_union_map *umap1,
index b81190f..6c34c22 100644 (file)
--- a/isl_map.c
+++ b/isl_map.c
@@ -7729,6 +7729,18 @@ int isl_map_is_single_valued(__isl_keep isl_map *map)
        return sv;
 }
 
+int isl_map_is_injective(__isl_keep isl_map *map)
+{
+       int in;
+
+       map = isl_map_copy(map);
+       map = isl_map_reverse(map);
+       in = isl_map_is_single_valued(map);
+       isl_map_free(map);
+
+       return in;
+}
+
 int isl_map_is_bijective(__isl_keep isl_map *map)
 {
        int sv;
@@ -7737,12 +7749,7 @@ int isl_map_is_bijective(__isl_keep isl_map *map)
        if (sv < 0 || !sv)
                return sv;
 
-       map = isl_map_copy(map);
-       map = isl_map_reverse(map);
-       sv = isl_map_is_single_valued(map);
-       isl_map_free(map);
-
-       return sv;
+       return isl_map_is_injective(map);
 }
 
 int isl_set_is_singleton(__isl_keep isl_set *set)
index 44916d5..f384fd5 100644 (file)
@@ -1581,6 +1581,18 @@ int isl_union_map_is_single_valued(__isl_keep isl_union_map *umap)
        return sv;
 }
 
+int isl_union_map_is_injective(__isl_keep isl_union_map *umap)
+{
+       int in;
+
+       umap = isl_union_map_copy(umap);
+       umap = isl_union_map_reverse(umap);
+       in = isl_union_map_is_single_valued(umap);
+       isl_union_map_free(umap);
+
+       return in;
+}
+
 int isl_union_map_is_bijective(__isl_keep isl_union_map *umap)
 {
        int sv;
@@ -1589,12 +1601,7 @@ int isl_union_map_is_bijective(__isl_keep isl_union_map *umap)
        if (sv < 0 || !sv)
                return sv;
 
-       umap = isl_union_map_copy(umap);
-       umap = isl_union_map_reverse(umap);
-       sv = isl_union_map_is_single_valued(umap);
-       isl_union_map_free(umap);
-
-       return sv;
+       return isl_union_map_is_injective(umap);
 }
 
 static int zip_entry(void **entry, void *user)