static struct isl_basic_set *uset_convex_hull_wrap_bounded(struct isl_set *set);
-static void swap_ineq(struct isl_basic_map *bmap, unsigned i, unsigned j)
-{
- isl_int *t;
-
- if (i != j) {
- t = bmap->ineq[i];
- bmap->ineq[i] = bmap->ineq[j];
- bmap->ineq[j] = t;
- }
-}
-
/* Return 1 if constraint c is redundant with respect to the constraints
* in bmap. If c is a lower [upper] bound in some variable and bmap
* does not have a lower [upper] bound in that variable, then c cannot
isl_basic_map_remove_redundancies((struct isl_basic_map *)bset);
}
+/* Remove redundant constraints in each of the basic maps.
+ */
+__isl_give isl_map *isl_map_remove_redundancies(__isl_take isl_map *map)
+{
+ return isl_map_inline_foreach_basic_map(map,
+ &isl_basic_map_remove_redundancies);
+}
+
+__isl_give isl_set *isl_set_remove_redundancies(__isl_take isl_set *set)
+{
+ return isl_map_remove_redundancies(set);
+}
+
/* Check if the set set is bound in the direction of the affine
* constraint c and if so, set the constant term such that the
* resulting constraint is a bounding constraint for the set.
return isl_basic_map_set_rational(bset);
}
-static struct isl_set *isl_set_set_rational(struct isl_set *set)
+__isl_give isl_map *isl_map_set_rational(__isl_take isl_map *map)
{
int i;
- set = isl_set_cow(set);
- if (!set)
+ map = isl_map_cow(map);
+ if (!map)
return NULL;
- for (i = 0; i < set->n; ++i) {
- set->p[i] = isl_basic_set_set_rational(set->p[i]);
- if (!set->p[i])
+ for (i = 0; i < map->n; ++i) {
+ map->p[i] = isl_basic_map_set_rational(map->p[i]);
+ if (!map->p[i])
goto error;
}
- return set;
+ return map;
error:
- isl_set_free(set);
+ isl_map_free(map);
return NULL;
}
+__isl_give isl_set *isl_set_set_rational(__isl_take isl_set *set)
+{
+ return isl_map_set_rational(set);
+}
+
static struct isl_basic_set *isl_basic_set_add_equality(
struct isl_basic_set *bset, isl_int *c)
{
return NULL;
}
-/* Project out final n dimensions using Fourier-Motzkin */
-static struct isl_set *set_project_out(struct isl_ctx *ctx,
- struct isl_set *set, unsigned n)
-{
- return isl_set_remove_dims(set, isl_dim_set, isl_set_n_dim(set) - n, n);
-}
-
static struct isl_basic_set *convex_hull_0d(struct isl_set *set)
{
struct isl_basic_set *convex_hull;
if (!bset)
return -1;
- if (isl_basic_set_fast_is_empty(bset))
+ if (isl_basic_set_plain_is_empty(bset))
return 1;
tab = isl_tab_from_recession_cone(bset, 1);