__isl_give isl_map *isl_map_align_divs(
__isl_take isl_map *map);
+Alternatively, the existentially quantified variables can be removed
+using the following functions, which compute an overapproximation.
+
+ __isl_give isl_basic_set *isl_basic_set_remove_divs(
+ __isl_take isl_basic_set *bset);
+ __isl_give isl_basic_map *isl_basic_map_remove_divs(
+ __isl_take isl_basic_map *bmap);
+ __isl_give isl_set *isl_set_remove_divs(
+ __isl_take isl_set *set);
+
To iterate over all the sets or maps in a union set or map, use
int isl_union_set_foreach_set(__isl_keep isl_union_set *uset,
enum isl_dim_type type, unsigned first, unsigned n);
__isl_give isl_map *isl_map_project_out(__isl_take isl_map *map,
enum isl_dim_type type, unsigned first, unsigned n);
+__isl_give isl_basic_map *isl_basic_map_remove_divs(
+ __isl_take isl_basic_map *bmap);
struct isl_map *isl_map_remove(struct isl_map *map,
enum isl_dim_type type, unsigned first, unsigned n);
struct isl_map *isl_map_remove_inputs(struct isl_map *map,
enum isl_dim_type type, unsigned first, unsigned n);
struct isl_basic_set *isl_basic_set_remove_dims(struct isl_basic_set *bset,
unsigned first, unsigned n);
-struct isl_basic_set *isl_basic_set_remove_divs(struct isl_basic_set *bset);
+__isl_give isl_basic_set *isl_basic_set_remove_divs(
+ __isl_take isl_basic_set *bset);
struct isl_set *isl_set_eliminate_dims(struct isl_set *set,
unsigned first, unsigned n);
__isl_give isl_set *isl_set_remove(__isl_take isl_set *bset,
enum isl_dim_type type, unsigned first, unsigned n);
struct isl_set *isl_set_remove_dims(struct isl_set *set,
unsigned first, unsigned n);
-struct isl_set *isl_set_remove_divs(struct isl_set *set);
+__isl_give isl_set *isl_set_remove_divs(__isl_take isl_set *set);
__isl_give isl_set *isl_set_split_dims(__isl_take isl_set *set,
enum isl_dim_type type, unsigned first, unsigned n);
return set;
}
-struct isl_basic_set *isl_basic_set_remove_divs(struct isl_basic_set *bset)
+__isl_give isl_basic_map *isl_basic_map_remove_divs(
+ __isl_take isl_basic_map *bmap)
{
- bset = isl_basic_set_eliminate_vars(bset, isl_dim_total(bset->dim),
- bset->n_div);
- if (!bset)
+ bmap = isl_basic_map_eliminate_vars(bmap, isl_dim_total(bmap->dim),
+ bmap->n_div);
+ if (!bmap)
return NULL;
- bset->n_div = 0;
- return bset;
+ bmap->n_div = 0;
+ return bmap;
+}
+
+__isl_give isl_basic_set *isl_basic_set_remove_divs(
+ __isl_take isl_basic_set *bset)
+{
+ return (struct isl_basic_set *)isl_basic_map_remove_divs(
+ (struct isl_basic_map *)bset);
}
struct isl_set *isl_set_remove_divs(struct isl_set *set)