__isl_take isl_set *set);
__isl_give isl_basic_map *isl_map_simple_hull(
__isl_take isl_map *map);
+ __isl_give isl_union_map *isl_union_map_simple_hull(
+ __isl_take isl_union_map *umap);
These functions compute a single basic set or relation
that contains the whole input set or relation.
__isl_take isl_union_map *umap);
__isl_give isl_union_map *isl_union_map_polyhedral_hull(
__isl_take isl_union_map *umap);
+__isl_give isl_union_map *isl_union_map_simple_hull(
+ __isl_take isl_union_map *umap);
__isl_give isl_union_map *isl_union_map_coalesce(
__isl_take isl_union_map *umap);
__isl_give isl_union_map *isl_union_map_compute_divs(
__isl_take isl_union_set *uset);
__isl_give isl_union_set *isl_union_set_polyhedral_hull(
__isl_take isl_union_set *uset);
+__isl_give isl_union_set *isl_union_set_simple_hull(
+ __isl_take isl_union_set *uset);
__isl_give isl_union_set *isl_union_set_coalesce(
__isl_take isl_union_set *uset);
__isl_give isl_union_set *isl_union_set_compute_divs(
return isl_union_map_polyhedral_hull(uset);
}
+static int simple_entry(void **entry, void *user)
+{
+ isl_map **map = (isl_map **)entry;
+
+ *map = isl_map_from_basic_map(isl_map_simple_hull(*map));
+
+ return *map ? 0 : -1;
+}
+
+__isl_give isl_union_map *isl_union_map_simple_hull(
+ __isl_take isl_union_map *umap)
+{
+ return un_op(umap, &simple_entry);
+}
+
+__isl_give isl_union_set *isl_union_set_simple_hull(
+ __isl_take isl_union_set *uset)
+{
+ return isl_union_map_simple_hull(uset);
+}
+
static int inplace_entry(void **entry, void *user)
{
__isl_give isl_map *(*fn)(__isl_take isl_map *) = user;