From 4a95643952fdaf0d184aca351bb91a567198726b Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Mon, 25 Jul 2011 08:57:56 +0200 Subject: [PATCH] add isl_pw_qpolynomial_from_qpolynomial Signed-off-by: Sven Verdoolaege --- doc/user.pod | 2 ++ include/isl/polynomial.h | 2 ++ isl_polynomial.c | 17 +++++++++++++++++ 3 files changed, 21 insertions(+) diff --git a/doc/user.pod b/doc/user.pod index 3ad2b0a2..96020d20 100644 --- a/doc/user.pod +++ b/doc/user.pod @@ -2812,6 +2812,8 @@ be combined to create more complicated piecewise quasipolynomials. __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_alloc( __isl_take isl_set *set, __isl_take isl_qpolynomial *qp); + __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_from_qpolynomial( + __isl_take isl_qpolynomial *qp); __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_zero( __isl_take isl_dim *dim); diff --git a/include/isl/polynomial.h b/include/isl/polynomial.h index b9935efd..bcd5b45d 100644 --- a/include/isl/polynomial.h +++ b/include/isl/polynomial.h @@ -145,6 +145,8 @@ isl_ctx *isl_pw_qpolynomial_get_ctx(__isl_keep isl_pw_qpolynomial *pwqp); __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_zero(__isl_take isl_dim *dim); __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_alloc(__isl_take isl_set *set, __isl_take isl_qpolynomial *qp); +__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_from_qpolynomial( + __isl_take isl_qpolynomial *qp); __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_copy( __isl_keep isl_pw_qpolynomial *pwqp); void *isl_pw_qpolynomial_free(__isl_take isl_pw_qpolynomial *pwqp); diff --git a/isl_polynomial.c b/isl_polynomial.c index abd752bd..b566902d 100644 --- a/isl_polynomial.c +++ b/isl_polynomial.c @@ -2518,6 +2518,23 @@ error: return NULL; } +__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_from_qpolynomial( + __isl_take isl_qpolynomial *qp) +{ + isl_set *dom; + + if (!qp) + return NULL; + if (isl_qpolynomial_is_zero(qp)) { + isl_dim *dim = isl_qpolynomial_get_dim(qp); + isl_qpolynomial_free(qp); + return isl_pw_qpolynomial_zero(dim); + } + + dom = isl_set_universe(isl_qpolynomial_get_dim(qp)); + return isl_pw_qpolynomial_alloc(dom, qp); +} + #undef PW #define PW isl_pw_qpolynomial #undef EL -- 2.11.4.GIT