}
isl_int_clear(num);
isl_int_clear(den);
- isl_vec_free(set->ctx, obj);
+ isl_vec_free(obj);
isl_basic_set_free(lp);
isl_set_free(set);
isl_assert(set->ctx, res == isl_lp_ok, return NULL);
isl_seq_combine(dir->block.data,
bset1->ctx->one, dir->block.data,
sample->block.data[n++], bset1->ineq[i], 1 + d);
- isl_vec_free(ctx, sample);
+ isl_vec_free(sample);
isl_basic_set_free(bset1);
isl_basic_set_free(bset2);
isl_seq_normalize(dir->block.data + 1, dir->size - 1);
return dir;
error:
- isl_vec_free(ctx, sample);
+ isl_vec_free(sample);
isl_basic_set_free(bset1);
isl_basic_set_free(bset2);
return NULL;
hull = uset_convex_hull(set);
hull = isl_basic_set_preimage(hull, T);
- isl_vec_free(ctx, dir);
+ isl_vec_free(dir);
return hull;
error:
- isl_vec_free(ctx, dir);
+ isl_vec_free(dir);
isl_basic_set_free(bset1);
isl_basic_set_free(bset2);
return NULL;
return NULL;
}
-/* Compute the lineality space of an "underlying" basic set.
+/* Compute the lineality space of a basic set.
+ * We currently do not allow the basic set to have any divs.
* We basically just drop the constants and turn every inequality
* into an equality.
*/
-static struct isl_basic_set *ubasic_set_lineality_space(
- struct isl_basic_set *bset)
+struct isl_basic_set *isl_basic_set_lineality_space(struct isl_basic_set *bset)
{
int i, k;
struct isl_basic_set *lin = NULL;
if (!bset)
goto error;
+ isl_assert(bset->ctx, bset->n_div == 0, goto error);
dim = isl_basic_set_total_dim(bset);
lin = isl_basic_set_alloc_dim(isl_basic_set_get_dim(bset), 0, dim, 0);
lin = isl_set_alloc_dim(isl_set_get_dim(set), set->n, 0);
for (i = 0; i < set->n; ++i)
lin = isl_set_add(lin,
- ubasic_set_lineality_space(isl_basic_set_copy(set->p[i])));
+ isl_basic_set_lineality_space(isl_basic_set_copy(set->p[i])));
isl_set_free(set);
return isl_set_affine_hull(lin);
}
convex_hull = convex_hull_pair(convex_hull, t);
if (set->n == 0)
break;
- t = ubasic_set_lineality_space(isl_basic_set_copy(convex_hull));
+ t = isl_basic_set_lineality_space(isl_basic_set_copy(convex_hull));
if (!t)
goto error;
if (isl_basic_set_is_universe(t)) {