From 56deca7509f79c4f951b68cff90241433bd960ee Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Thu, 11 Mar 2010 15:13:11 +0100 Subject: [PATCH] add isl_pw_*_domain --- doc/user.pod | 3 +++ include/isl_polynomial.h | 5 +++++ isl_pw_templ.c | 17 +++++++++++++++++ 3 files changed, 25 insertions(+) diff --git a/doc/user.pod b/doc/user.pod index 49506d2..e309e26 100644 --- a/doc/user.pod +++ b/doc/user.pod @@ -1290,6 +1290,9 @@ are returned in C<*n> and C<*d>, respectively. __isl_take isl_pw_qpolynomial *pwqp, __isl_take isl_point *pnt); + __isl_give isl_set *isl_pw_qpolynomial_domain( + __isl_take isl_pw_qpolynomial *pwqp); + =head2 Dependence Analysis C contains specialized functionality for performing diff --git a/include/isl_polynomial.h b/include/isl_polynomial.h index 58fc372..fa88725 100644 --- a/include/isl_polynomial.h +++ b/include/isl_polynomial.h @@ -72,6 +72,8 @@ __isl_give isl_dim *isl_pw_qpolynomial_get_dim( unsigned isl_pw_qpolynomial_dim(__isl_keep isl_pw_qpolynomial *pwqp, enum isl_dim_type type); +__isl_give isl_set *isl_pw_qpolynomial_domain(__isl_take isl_pw_qpolynomial *pwqp); + __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_add( __isl_take isl_pw_qpolynomial *pwqp1, __isl_take isl_pw_qpolynomial *pwqp2); @@ -149,6 +151,9 @@ void isl_pw_qpolynomial_fold_free(__isl_take isl_pw_qpolynomial_fold *pwf); __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_zero( __isl_take isl_dim *dim); +__isl_give isl_set *isl_pw_qpolynomial_fold_domain( + __isl_take isl_pw_qpolynomial_fold *pwf); + __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_add( __isl_take isl_pw_qpolynomial_fold *pwf1, __isl_take isl_pw_qpolynomial_fold *pwf2); diff --git a/isl_pw_templ.c b/isl_pw_templ.c index 29b7c3ae..ef6dc0c 100644 --- a/isl_pw_templ.c +++ b/isl_pw_templ.c @@ -266,3 +266,20 @@ error: isl_point_free(pnt); return NULL; } + +__isl_give isl_set *FN(PW,domain)(__isl_take PW *pw) +{ + int i; + isl_set *dom; + + if (!pw) + return NULL; + + dom = isl_set_empty(isl_dim_copy(pw->dim)); + for (i = 0; i < pw->n; ++i) + dom = isl_set_union_disjoint(dom, isl_set_copy(pw->p[i].set)); + + FN(PW,free)(pw); + + return dom; +} -- 2.7.4