add isl_pw_*_domain
authorSven Verdoolaege <skimo@kotnet.org>
Thu, 11 Mar 2010 14:13:11 +0000 (15:13 +0100)
committerSven Verdoolaege <skimo@kotnet.org>
Fri, 12 Mar 2010 11:55:01 +0000 (12:55 +0100)
doc/user.pod
include/isl_polynomial.h
isl_pw_templ.c

index 49506d2..e309e26 100644 (file)
@@ -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<isl> contains specialized functionality for performing
index 58fc372..fa88725 100644 (file)
@@ -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);
index 29b7c3a..ef6dc0c 100644 (file)
@@ -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;
+}