summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSven Verdoolaege <skimo@kotnet.org>2009-07-09 16:20:47 +0200
committerSven Verdoolaege <skimo@kotnet.org>2009-07-13 13:05:55 +0200
commitb7798ecb6330981849f819f3b21b6d8cf7a7f655 (patch)
treed0a9d1bf9ef6b6e182ea3c0a1a13c002892d34a2
parent9562e7ec05bd6d4cfcafc324a398324b5fde7667 (diff)
downloadisl-b7798ecb6330981849f819f3b21b6d8cf7a7f655.tar.gz
isl-b7798ecb6330981849f819f3b21b6d8cf7a7f655.tar.bz2
isl-b7798ecb6330981849f819f3b21b6d8cf7a7f655.zip
privately export isl_basic_set_recession_cone
-rw-r--r--isl_affine_hull.c8
-rw-r--r--isl_map_private.h1
2 files changed, 7 insertions, 2 deletions
diff --git a/isl_affine_hull.c b/isl_affine_hull.c
index 679bb3ee..4b354b93 100644
--- a/isl_affine_hull.c
+++ b/isl_affine_hull.c
@@ -318,13 +318,14 @@ error:
return NULL;
}
-static struct isl_basic_set *recession_cone(struct isl_basic_set *bset)
+struct isl_basic_set *isl_basic_set_recession_cone(struct isl_basic_set *bset)
{
int i;
bset = isl_basic_set_cow(bset);
if (!bset)
return NULL;
+ isl_assert(bset->ctx, bset->n_div == 0, goto error);
for (i = 0; i < bset->n_eq; ++i)
isl_int_set_si(bset->eq[i][0], 0);
@@ -334,6 +335,9 @@ static struct isl_basic_set *recession_cone(struct isl_basic_set *bset)
ISL_F_CLR(bset, ISL_BASIC_SET_NO_IMPLICIT);
return isl_basic_set_implicit_equalities(bset);
+error:
+ isl_basic_set_free(bset);
+ return NULL;
}
static struct isl_basic_set *shift(struct isl_basic_set *bset, isl_int *point)
@@ -399,7 +403,7 @@ static struct isl_basic_set *uset_affine_hull(struct isl_basic_set *bset)
if (hull->n_eq > 0) {
struct isl_basic_set *cone;
- cone = recession_cone(isl_basic_set_copy(bset));
+ cone = isl_basic_set_recession_cone(isl_basic_set_copy(bset));
isl_basic_set_free_inequality(cone, cone->n_ineq);
cone = isl_basic_set_normalize_constraints(cone);
cone = shift(cone, bset->sample->block.data);
diff --git a/isl_map_private.h b/isl_map_private.h
index 622e50c8..6f032523 100644
--- a/isl_map_private.h
+++ b/isl_map_private.h
@@ -110,4 +110,5 @@ int isl_basic_set_constraint_is_redundant(struct isl_basic_set **bset,
struct isl_basic_map *isl_basic_map_drop_redundant_divs(
struct isl_basic_map *bmap);
+struct isl_basic_set *isl_basic_set_recession_cone(struct isl_basic_set *bset);
struct isl_basic_set *isl_basic_set_lineality_space(struct isl_basic_set *bset);