rename isl_pw_aff_add to isl_pw_aff_union_add
authorSven Verdoolaege <skimo@kotnet.org>
Thu, 13 Oct 2011 10:16:45 +0000 (12:16 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Thu, 13 Oct 2011 10:46:25 +0000 (12:46 +0200)
As pointed out by Andreas Kloeckner, isl_pw_aff_add behaves in a way
that is inconsistent with other functions defined over pairs of
isl_pw_affs in that it produces an isl_pw_aff that is defined on
the union of the definition domains of its arguments.
We therefore rename isl_pw_aff_add to isl_pw_aff_union_add and
add a new isl_pw_aff_add that produces a result that is only
defined on the intersection of the definition domains of its arguments.

Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
doc/user.pod
include/isl/aff.h
isl_aff.c
isl_fold.c
isl_polynomial.c
isl_pw_templ.c

index e00ad5c..accd9b1 100644 (file)
@@ -98,6 +98,8 @@ but they will be removed in the future.
 
 =item * The function C<isl_pw_aff_max> has been renamed to
 C<isl_pw_aff_union_max>.
+Similarly, the function C<isl_pw_aff_add> has been renamed to
+C<isl_pw_aff_union_add>.
 
 =item * The C<isl_dim> type has been renamed to C<isl_space>
 along with the associated functions.
@@ -2925,6 +2927,9 @@ not in C<cond>.
        __isl_give isl_pw_aff *isl_pw_aff_union_max(
                __isl_take isl_pw_aff *pwaff1,
                __isl_take isl_pw_aff *pwaff2);
+       __isl_give isl_pw_aff *isl_pw_aff_union_add(
+               __isl_take isl_pw_aff *pwaff1,
+               __isl_take isl_pw_aff *pwaff2);
 
 The function C<isl_pw_aff_union_max> computes a piecewise quasi-affine
 expression with a domain that is the union of those of C<pwaff1> and
@@ -3063,6 +3068,9 @@ Operations include
        __isl_give isl_pw_multi_aff *isl_pw_multi_aff_add(
                __isl_take isl_pw_multi_aff *pma1,
                __isl_take isl_pw_multi_aff *pma2);
+       __isl_give isl_pw_multi_aff *isl_pw_multi_aff_union_add(
+               __isl_take isl_pw_multi_aff *pma1,
+               __isl_take isl_pw_multi_aff *pma2);
        __isl_give isl_multi_aff *isl_multi_aff_scale(
                __isl_take isl_multi_aff *maff,
                isl_int f);
index b04aed8..0aa8cfb 100644 (file)
@@ -121,6 +121,8 @@ __isl_give isl_pw_aff *isl_pw_aff_union_min(__isl_take isl_pw_aff *pwaff1,
        __isl_take isl_pw_aff *pwaff2);
 __isl_give isl_pw_aff *isl_pw_aff_union_max(__isl_take isl_pw_aff *pwaff1,
        __isl_take isl_pw_aff *pwaff2);
+__isl_give isl_pw_aff *isl_pw_aff_union_add(__isl_take isl_pw_aff *pwaff1,
+       __isl_take isl_pw_aff *pwaff2);
 
 __isl_give isl_pw_aff *isl_pw_aff_copy(__isl_keep isl_pw_aff *pwaff);
 void *isl_pw_aff_free(__isl_take isl_pw_aff *pwaff);
@@ -296,6 +298,9 @@ __isl_give isl_pw_multi_aff *isl_pw_multi_aff_set_dim_id(
 int isl_pw_multi_aff_plain_is_equal(__isl_keep isl_pw_multi_aff *pma1,
        __isl_keep isl_pw_multi_aff *pma2);
 
+__isl_give isl_pw_multi_aff *isl_pw_multi_aff_union_add(
+       __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
+
 __isl_give isl_pw_multi_aff *isl_pw_multi_aff_add(
        __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
 
index 1147cea..23d17f0 100644 (file)
--- a/isl_aff.c
+++ b/isl_aff.c
@@ -1822,6 +1822,24 @@ error:
        return NULL;
 }
 
+static __isl_give isl_pw_aff *pw_aff_add(__isl_take isl_pw_aff *pwaff1,
+       __isl_take isl_pw_aff *pwaff2)
+{
+       return isl_pw_aff_on_shared_domain(pwaff1, pwaff2, &isl_aff_add);
+}
+
+__isl_give isl_pw_aff *isl_pw_aff_add(__isl_take isl_pw_aff *pwaff1,
+       __isl_take isl_pw_aff *pwaff2)
+{
+       return isl_pw_aff_align_params_pw_pw_and(pwaff1, pwaff2, &pw_aff_add);
+}
+
+__isl_give isl_pw_aff *isl_pw_aff_union_add(__isl_take isl_pw_aff *pwaff1,
+       __isl_take isl_pw_aff *pwaff2)
+{
+       return isl_pw_aff_union_add_(pwaff1, pwaff2);
+}
+
 static __isl_give isl_pw_aff *pw_aff_mul(__isl_take isl_pw_aff *pwaff1,
        __isl_take isl_pw_aff *pwaff2)
 {
@@ -2095,6 +2113,26 @@ __isl_give isl_multi_aff *isl_multi_aff_drop_dims(__isl_take isl_multi_aff *maff
 
 #include <isl_pw_templ.c>
 
+static __isl_give isl_pw_multi_aff *pw_multi_aff_add(
+       __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2)
+{
+       return isl_pw_multi_aff_on_shared_domain(pma1, pma2,
+                                               &isl_multi_aff_add);
+}
+
+__isl_give isl_pw_multi_aff *isl_pw_multi_aff_add(
+       __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2)
+{
+       return isl_pw_multi_aff_align_params_pw_pw_and(pma1, pma2,
+                                               &pw_multi_aff_add);
+}
+
+__isl_give isl_pw_multi_aff *isl_pw_multi_aff_union_add(
+       __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2)
+{
+       return isl_pw_multi_aff_union_add_(pma1, pma2);
+}
+
 /* Construct a map mapping the domain the piecewise multi-affine expression
  * to its range, with each dimension in the range equated to the
  * corresponding affine expression on its cell.
index 98a91ae..fcafa15 100644 (file)
@@ -959,6 +959,13 @@ __isl_give isl_pw_qpolynomial_fold *isl_pw_qpolynomial_fold_from_pw_qpolynomial(
        return 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)
+{
+       return isl_pw_qpolynomial_fold_union_add_(pwf1, pwf2);
+}
+
 int isl_qpolynomial_fold_plain_is_equal(__isl_keep isl_qpolynomial_fold *fold1,
        __isl_keep isl_qpolynomial_fold *fold2)
 {
index 173c213..fdf1e28 100644 (file)
@@ -2623,6 +2623,13 @@ int isl_pw_qpolynomial_is_one(__isl_keep isl_pw_qpolynomial *pwqp)
        return isl_qpolynomial_is_one(pwqp->p[0].qp);
 }
 
+__isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_add(
+       __isl_take isl_pw_qpolynomial *pwqp1,
+       __isl_take isl_pw_qpolynomial *pwqp2)
+{
+       return isl_pw_qpolynomial_union_add_(pwqp1, pwqp2);
+}
+
 __isl_give isl_pw_qpolynomial *isl_pw_qpolynomial_mul(
        __isl_take isl_pw_qpolynomial *pwqp1,
        __isl_take isl_pw_qpolynomial *pwqp2)
index 4dafddf..ddabbc5 100644 (file)
@@ -325,7 +325,8 @@ error:
 }
 #endif
 
-static __isl_give PW *FN(PW,add_aligned)(__isl_take PW *pw1, __isl_take PW *pw2)
+static __isl_give PW *FN(PW,union_add_aligned)(__isl_take PW *pw1,
+       __isl_take PW *pw2)
 {
        int i, j, n;
        struct PW *res;
@@ -401,9 +402,13 @@ error:
        return NULL;
 }
 
-__isl_give PW *FN(PW,add)(__isl_take PW *pw1, __isl_take PW *pw2)
+/* Private version of "union_add".  For isl_pw_qpolynomial and
+ * isl_pw_qpolynomial_fold, we prefer to simply call it "add".
+ */
+static __isl_give PW *FN(PW,union_add_)(__isl_take PW *pw1, __isl_take PW *pw2)
 {
-       return FN(PW,align_params_pw_pw_and)(pw1, pw2, &FN(PW,add_aligned));
+       return FN(PW,align_params_pw_pw_and)(pw1, pw2,
+                                               &FN(PW,union_add_aligned));
 }
 
 /* Make sure "pw" has room for at least "n" more pieces.