From 9b46827b45e555d2568d31dae7df5229e4d50593 Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Fri, 21 Nov 2014 11:24:31 +0100 Subject: [PATCH] add isl_basic_map_list_intersect Signed-off-by: Sven Verdoolaege --- doc/user.pod | 2 ++ include/isl/map.h | 2 ++ isl_map.c | 33 +++++++++++++++++++++------------ 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/doc/user.pod b/doc/user.pod index 3e78bdbb..a01c47ac 100644 --- a/doc/user.pod +++ b/doc/user.pod @@ -4935,6 +4935,8 @@ 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_basic_map *isl_basic_map_list_intersect( + __isl_take isl_basic_map_list *list); __isl_give isl_map *isl_map_intersect_params( __isl_take isl_map *map, __isl_take isl_set *params); diff --git a/include/isl/map.h b/include/isl/map.h index 57fe8a9f..18688b8c 100644 --- a/include/isl/map.h +++ b/include/isl/map.h @@ -160,6 +160,8 @@ __isl_export __isl_give isl_basic_map *isl_basic_map_intersect( __isl_take isl_basic_map *bmap1, __isl_take isl_basic_map *bmap2); +__isl_give isl_basic_map *isl_basic_map_list_intersect( + __isl_take isl_basic_map_list *list); __isl_export __isl_give isl_map *isl_basic_map_union( __isl_take isl_basic_map *bmap1, diff --git a/isl_map.c b/isl_map.c index 9679231d..3c8dd43b 100644 --- a/isl_map.c +++ b/isl_map.c @@ -9353,34 +9353,43 @@ __isl_give isl_basic_set_list *isl_set_get_basic_set_list( /* Return the intersection of the elements in the non-empty list "list". * All elements are assumed to live in the same space. */ -__isl_give isl_basic_set *isl_basic_set_list_intersect( - __isl_take struct isl_basic_set_list *list) +__isl_give isl_basic_map *isl_basic_map_list_intersect( + __isl_take isl_basic_map_list *list) { int i, n; - isl_basic_set *bset; + isl_basic_map *bmap; if (!list) return NULL; - n = isl_basic_set_list_n_basic_set(list); + n = isl_basic_map_list_n_basic_map(list); if (n < 1) - isl_die(isl_basic_set_list_get_ctx(list), isl_error_invalid, + isl_die(isl_basic_map_list_get_ctx(list), isl_error_invalid, "expecting non-empty list", goto error); - bset = isl_basic_set_list_get_basic_set(list, 0); + bmap = isl_basic_map_list_get_basic_map(list, 0); for (i = 1; i < n; ++i) { - isl_basic_set *bset_i; + isl_basic_map *bmap_i; - bset_i = isl_basic_set_list_get_basic_set(list, i); - bset = isl_basic_set_intersect(bset, bset_i); + bmap_i = isl_basic_map_list_get_basic_map(list, i); + bmap = isl_basic_map_intersect(bmap, bmap_i); } - isl_basic_set_list_free(list); - return bset; + isl_basic_map_list_free(list); + return bmap; error: - isl_basic_set_list_free(list); + isl_basic_map_list_free(list); return NULL; } +/* Return the intersection of the elements in the non-empty list "list". + * All elements are assumed to live in the same space. + */ +__isl_give isl_basic_set *isl_basic_set_list_intersect( + __isl_take isl_basic_set_list *list) +{ + return isl_basic_map_list_intersect(list); +} + /* Return the Cartesian product of the basic sets in list (in the given order). */ __isl_give isl_basic_set *isl_basic_set_list_product( -- 2.11.4.GIT