add isl_union_map_contains
authorSven Verdoolaege <skimo@kotnet.org>
Thu, 7 Apr 2011 12:51:41 +0000 (14:51 +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>
include/isl/union_map.h
include/isl/union_set.h
isl_union_map.c

index bd79494..5dcf358 100644 (file)
@@ -95,6 +95,8 @@ int isl_union_map_is_strict_subset(__isl_keep isl_union_map *umap1,
 int isl_union_map_n_map(__isl_keep isl_union_map *umap);
 int isl_union_map_foreach_map(__isl_keep isl_union_map *umap,
        int (*fn)(__isl_take isl_map *map, void *user), void *user);
+__isl_give int isl_union_map_contains(__isl_keep isl_union_map *umap,
+       __isl_keep isl_dim *dim);
 __isl_give isl_map *isl_union_map_extract_map(__isl_keep isl_union_map *umap,
        __isl_take isl_dim *dim);
 
index 934d34e..1e647ec 100644 (file)
@@ -59,6 +59,8 @@ int isl_union_set_is_strict_subset(__isl_keep isl_union_set *uset1,
 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);
+__isl_give int isl_union_set_contains(__isl_keep isl_union_set *uset,
+       __isl_keep isl_dim *dim);
 __isl_give isl_set *isl_union_set_extract_set(__isl_keep isl_union_set *uset,
        __isl_take isl_dim *dim);
 int isl_union_set_foreach_point(__isl_keep isl_union_set *uset,
index 84fb6ce..428a87c 100644 (file)
@@ -386,6 +386,29 @@ __isl_give isl_set *isl_union_set_extract_set(__isl_keep isl_union_set *uset,
        return (isl_set *)isl_union_map_extract_map(uset, dim);
 }
 
+/* Check if umap contains a map in the given space.
+ */
+__isl_give int isl_union_map_contains(__isl_keep isl_union_map *umap,
+       __isl_keep isl_dim *dim)
+{
+       uint32_t hash;
+       struct isl_hash_table_entry *entry;
+
+       if (!umap || !dim)
+               return -1;
+
+       hash = isl_dim_get_hash(dim);
+       entry = isl_hash_table_find(umap->dim->ctx, &umap->table, hash,
+                                   &has_dim, dim, 0);
+       return !!entry;
+}
+
+__isl_give int isl_union_set_contains(__isl_keep isl_union_set *uset,
+       __isl_keep isl_dim *dim)
+{
+       return isl_union_map_contains(uset, dim);
+}
+
 int isl_union_set_foreach_set(__isl_keep isl_union_set *uset,
        int (*fn)(__isl_take isl_set *set, void *user), void *user)
 {