From 2cc57ea2b8a85684ea243fbd3581483670356168 Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Sun, 13 Sep 2009 19:39:17 +0200 Subject: [PATCH] isl_sample.c: move isl_basic_set_from_vec from isl_affine_hull.c --- isl_affine_hull.c | 34 ---------------------------------- isl_sample.c | 34 ++++++++++++++++++++++++++++++++++ isl_sample.h | 2 ++ 3 files changed, 36 insertions(+), 34 deletions(-) diff --git a/isl_affine_hull.c b/isl_affine_hull.c index 11522bc..00108ce 100644 --- a/isl_affine_hull.c +++ b/isl_affine_hull.c @@ -221,40 +221,6 @@ error: return NULL; } -static struct isl_basic_set *isl_basic_set_from_vec(struct isl_vec *vec) -{ - int i; - int k; - struct isl_basic_set *bset = NULL; - struct isl_ctx *ctx; - unsigned dim; - - if (!vec) - return NULL; - ctx = vec->ctx; - isl_assert(ctx, vec->size != 0, goto error); - - bset = isl_basic_set_alloc(ctx, 0, vec->size - 1, 0, vec->size - 1, 0); - if (!bset) - goto error; - dim = isl_basic_set_n_dim(bset); - for (i = dim - 1; i >= 0; --i) { - k = isl_basic_set_alloc_equality(bset); - if (k < 0) - goto error; - isl_seq_clr(bset->eq[k], 1 + dim); - isl_int_neg(bset->eq[k][0], vec->el[1 + i]); - isl_int_set(bset->eq[k][1 + i], vec->el[0]); - } - isl_vec_free(vec); - - return bset; -error: - isl_basic_set_free(bset); - isl_vec_free(vec); - return NULL; -} - /* Find an integer point in "bset" that lies outside of the equality * "eq" e(x) = 0. * If "up" is true, look for a point satisfying e(x) - 1 >= 0. diff --git a/isl_sample.c b/isl_sample.c index 1d3b296..4784f14 100644 --- a/isl_sample.c +++ b/isl_sample.c @@ -939,3 +939,37 @@ struct isl_vec *isl_basic_set_sample_bounded(struct isl_basic_set *bset) { return basic_set_sample(bset, 1); } + +__isl_give isl_basic_set *isl_basic_set_from_vec(__isl_take isl_vec *vec) +{ + int i; + int k; + struct isl_basic_set *bset = NULL; + struct isl_ctx *ctx; + unsigned dim; + + if (!vec) + return NULL; + ctx = vec->ctx; + isl_assert(ctx, vec->size != 0, goto error); + + bset = isl_basic_set_alloc(ctx, 0, vec->size - 1, 0, vec->size - 1, 0); + if (!bset) + goto error; + dim = isl_basic_set_n_dim(bset); + for (i = dim - 1; i >= 0; --i) { + k = isl_basic_set_alloc_equality(bset); + if (k < 0) + goto error; + isl_seq_clr(bset->eq[k], 1 + dim); + isl_int_neg(bset->eq[k][0], vec->el[1 + i]); + isl_int_set(bset->eq[k][1 + i], vec->el[0]); + } + isl_vec_free(vec); + + return bset; +error: + isl_basic_set_free(bset); + isl_vec_free(vec); + return NULL; +} diff --git a/isl_sample.h b/isl_sample.h index 19b899f..8e756c4 100644 --- a/isl_sample.h +++ b/isl_sample.h @@ -10,6 +10,8 @@ extern "C" { __isl_give isl_vec *isl_basic_set_sample_vec(__isl_take isl_basic_set *bset); struct isl_vec *isl_basic_set_sample_bounded(struct isl_basic_set *bset); +__isl_give isl_basic_set *isl_basic_set_from_vec(__isl_take isl_vec *vec); + #if defined(__cplusplus) } #endif -- 2.7.4