add isl_set_intersect_params
authorSven Verdoolaege <skimo@kotnet.org>
Sat, 9 Jul 2011 09:11:01 +0000 (11:11 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Sat, 9 Jul 2011 14:13:29 +0000 (16:13 +0200)
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
doc/user.pod
include/isl/map.h
include/isl/set.h
isl_map.c

index 421f138..899aa6e 100644 (file)
@@ -1835,6 +1835,9 @@ the same (number of) parameters.
        __isl_give isl_basic_set *isl_basic_set_intersect(
                __isl_take isl_basic_set *bset1,
                __isl_take isl_basic_set *bset2);
+       __isl_give isl_set *isl_set_intersect_params(
+               __isl_take isl_set *set,
+               __isl_take isl_set *params);
        __isl_give isl_set *isl_set_intersect(
                __isl_take isl_set *set1,
                __isl_take isl_set *set2);
@@ -1850,6 +1853,9 @@ the same (number of) parameters.
        __isl_give isl_basic_map *isl_basic_map_intersect(
                __isl_take isl_basic_map *bmap1,
                __isl_take isl_basic_map *bmap2);
+       __isl_give isl_map *isl_map_intersect_params(
+               __isl_take isl_map *map,
+               __isl_take isl_set *params);
        __isl_give isl_map *isl_map_intersect_domain(
                __isl_take isl_map *map,
                __isl_take isl_set *set);
index 67e15da..77bd46f 100644 (file)
@@ -296,6 +296,8 @@ __isl_give isl_map *isl_map_flat_range_product(__isl_take isl_map *map1,
        __isl_take isl_map *map2);
 __isl_give isl_map *isl_map_intersect(__isl_take isl_map *map1,
                                      __isl_take isl_map *map2);
+__isl_give isl_map *isl_map_intersect_params(__isl_take isl_map *map,
+               __isl_take isl_set *params);
 __isl_give isl_map *isl_map_subtract(
                __isl_take isl_map *map1,
                __isl_take isl_map *map2);
index 2eabc7d..026adc3 100644 (file)
@@ -221,6 +221,8 @@ __isl_give isl_set *isl_set_flat_product(__isl_take isl_set *set1,
 __isl_give isl_set *isl_set_intersect(
                __isl_take isl_set *set1,
                __isl_take isl_set *set2);
+__isl_give isl_set *isl_set_intersect_params(__isl_take isl_set *set,
+               __isl_take isl_set *params);
 __isl_give isl_set *isl_set_subtract(
                __isl_take isl_set *set1,
                __isl_take isl_set *set2);
index 7d5151c..3d30064 100644 (file)
--- a/isl_map.c
+++ b/isl_map.c
@@ -2331,6 +2331,21 @@ struct isl_set *isl_set_intersect(struct isl_set *set1, struct isl_set *set2)
                                  (struct isl_map *)set2);
 }
 
+/* The current implementation of isl_map_intersect accepts intersections
+ * with parameter domains, so we can just call that for now.
+ */
+__isl_give isl_map *isl_map_intersect_params(__isl_take isl_map *map,
+               __isl_take isl_set *params)
+{
+       return isl_map_intersect(map, params);
+}
+
+__isl_give isl_set *isl_set_intersect_params(__isl_take isl_set *set,
+               __isl_take isl_set *params)
+{
+       return isl_map_intersect_params(set, params);
+}
+
 struct isl_basic_map *isl_basic_map_reverse(struct isl_basic_map *bmap)
 {
        struct isl_dim *dim;