add isl_map_from_domain_and_range
authorSven Verdoolaege <skimo@kotnet.org>
Mon, 1 Feb 2010 16:03:54 +0000 (17:03 +0100)
committerSven Verdoolaege <skimo@kotnet.org>
Wed, 3 Feb 2010 17:29:52 +0000 (18:29 +0100)
include/isl_map.h
isl_map.c

index 06719be..e6bfd04 100644 (file)
@@ -313,7 +313,10 @@ struct isl_map *isl_map_remove_inputs(struct isl_map *map,
 __isl_give isl_set *isl_map_domain(__isl_take isl_map *bmap);
 __isl_give isl_set *isl_map_range(__isl_take isl_map *map);
 __isl_give isl_map *isl_map_from_basic_map(__isl_take isl_basic_map *bmap);
+__isl_give isl_map *isl_map_from_domain(__isl_take isl_set *set);
 struct isl_map *isl_map_from_range(struct isl_set *set);
+__isl_give isl_map *isl_map_from_domain_and_range(__isl_take isl_set *domain,
+       __isl_take isl_set *range);
 struct isl_map *isl_map_from_set(struct isl_set *set, struct isl_dim *dim);
 struct isl_set *isl_set_from_map(struct isl_map *map);
 __isl_give isl_basic_map *isl_map_sample(__isl_take isl_map *map);
index bf4c81f..7746979 100644 (file)
--- a/isl_map.c
+++ b/isl_map.c
@@ -2867,6 +2867,18 @@ struct isl_map *isl_map_from_range(struct isl_set *set)
        return (struct isl_map *)set;
 }
 
+__isl_give isl_map *isl_map_from_domain(__isl_take isl_set *set)
+{
+       return isl_map_reverse(isl_map_from_range(set));;
+}
+
+__isl_give isl_map *isl_map_from_domain_and_range(__isl_take isl_set *domain,
+       __isl_take isl_set *range)
+{
+       return isl_map_product(isl_map_from_domain(domain),
+                              isl_map_from_range(range));
+}
+
 struct isl_set *isl_set_from_map(struct isl_map *map)
 {
        int i;