From da407b46263c1464b8d7c87ac8b727f39d9817ac Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Wed, 4 Aug 2010 15:22:57 +0200 Subject: [PATCH] add isl_basic_map_image_is_bounded Signed-off-by: Sven Verdoolaege --- include/isl_map.h | 1 + isl_convex_hull.c | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/include/isl_map.h b/include/isl_map.h index 0d333cf..ce41c43 100644 --- a/include/isl_map.h +++ b/include/isl_map.h @@ -263,6 +263,7 @@ __isl_give isl_map *isl_map_drop_basic_map(__isl_take isl_map *map, int isl_basic_map_fast_is_fixed(struct isl_basic_map *bmap, enum isl_dim_type type, unsigned pos, isl_int *val); +int isl_basic_map_image_is_bounded(__isl_keep isl_basic_map *bmap); int isl_basic_map_is_universe(__isl_keep isl_basic_map *bmap); int isl_basic_map_fast_is_empty(__isl_keep isl_basic_map *bmap); int isl_basic_map_is_empty(__isl_keep isl_basic_map *bmap); diff --git a/isl_convex_hull.c b/isl_convex_hull.c index 663f142..90720e5 100644 --- a/isl_convex_hull.c +++ b/isl_convex_hull.c @@ -898,6 +898,25 @@ int isl_basic_set_is_bounded(__isl_keep isl_basic_set *bset) return bounded; } +/* Is the image bounded for each value of the parameters and + * the domain variables? + */ +int isl_basic_map_image_is_bounded(__isl_keep isl_basic_map *bmap) +{ + unsigned nparam = isl_basic_map_dim(bmap, isl_dim_param); + unsigned n_in = isl_basic_map_dim(bmap, isl_dim_in); + int bounded; + + bmap = isl_basic_map_copy(bmap); + bmap = isl_basic_map_cow(bmap); + bmap = isl_basic_map_move_dims(bmap, isl_dim_param, nparam, + isl_dim_in, 0, n_in); + bounded = isl_basic_set_is_bounded((isl_basic_set *)bmap); + isl_basic_map_free(bmap); + + return bounded; +} + /* Is the set bounded for each value of the parameters? */ int isl_set_is_bounded(__isl_keep isl_set *set) -- 2.7.4