summaryrefslogtreecommitdiff
path: root/isl_polynomial.c
diff options
context:
space:
mode:
authorSven Verdoolaege <skimo@kotnet.org>2011-07-25 09:01:53 +0200
committerSven Verdoolaege <skimo@kotnet.org>2011-07-28 16:44:50 +0200
commita375d8331bc507207c7aee6f6807044023e05136 (patch)
tree4fe8b5db82b3e6b3baa0e4ed9307a7b8b48e847b /isl_polynomial.c
parent93d535d72ed7891b1adf5c8e31f7207697906a9f (diff)
downloadisl-a375d8331bc507207c7aee6f6807044023e05136.tar.gz
isl-a375d8331bc507207c7aee6f6807044023e05136.tar.bz2
isl-a375d8331bc507207c7aee6f6807044023e05136.zip
add isl_pw_qpolynomial_from_pw_aff
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Diffstat (limited to 'isl_polynomial.c')
-rw-r--r--isl_polynomial.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/isl_polynomial.c b/isl_polynomial.c
index 5a78619a..14a7b52d 100644
--- a/isl_polynomial.c
+++ b/isl_polynomial.c
@@ -3026,6 +3026,30 @@ error:
return NULL;
}
+__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_from_pw_aff(
+ __isl_take isl_pw_aff *pwaff)
+{
+ int i;
+ isl_pw_qpolynomial *pwqp;
+
+ if (!pwaff)
+ return NULL;
+
+ pwqp = isl_pw_qpolynomial_alloc_(isl_pw_aff_get_dim(pwaff), pwaff->n);
+
+ for (i = 0; i < pwaff->n; ++i) {
+ isl_set *dom;
+ isl_qpolynomial *qp;
+
+ dom = isl_set_copy(pwaff->p[i].set);
+ qp = isl_qpolynomial_from_aff(isl_aff_copy(pwaff->p[i].aff));
+ pwqp = isl_pw_qpolynomial_add_piece(pwqp, dom, qp);
+ }
+
+ isl_pw_aff_free(pwaff);
+ return pwqp;
+}
+
__isl_give isl_qpolynomial *isl_qpolynomial_from_constraint(
__isl_take isl_constraint *c, enum isl_dim_type type, unsigned pos)
{