generalize isl_union_pw_qpolynomial_sub to include isl_union_pw_multi_aff_sub
authorSven Verdoolaege <skimo@kotnet.org>
Thu, 14 Mar 2013 08:31:01 +0000 (09:31 +0100)
committerSven Verdoolaege <skimo@kotnet.org>
Thu, 14 Mar 2013 16:14:09 +0000 (17:14 +0100)
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
doc/user.pod
include/isl/aff.h
isl_fold.c
isl_polynomial.c
isl_union_templ.c

index 2174675..0e416cf 100644 (file)
@@ -3890,6 +3890,9 @@ Operations include
        __isl_give isl_pw_multi_aff *isl_pw_multi_aff_sub(
                __isl_take isl_pw_multi_aff *pma1,
                __isl_take isl_pw_multi_aff *pma2);
+       __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_sub(
+               __isl_take isl_union_pw_multi_aff *upma1,
+               __isl_take isl_union_pw_multi_aff *upma2);
 
 C<isl_multi_aff_sub> subtracts the second argument from the first.
 
index f7595e4..9bcc74f 100644 (file)
@@ -502,6 +502,9 @@ __isl_give isl_union_set *isl_union_pw_multi_aff_domain(
 __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_add(
        __isl_take isl_union_pw_multi_aff *upma1,
        __isl_take isl_union_pw_multi_aff *upma2);
+__isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_sub(
+       __isl_take isl_union_pw_multi_aff *upma1,
+       __isl_take isl_union_pw_multi_aff *upma2);
 
 __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_flat_range_product(
        __isl_take isl_union_pw_multi_aff *upma1,
index ba93a69..82cad6f 100644 (file)
@@ -650,6 +650,8 @@ __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_gist_params(
 #define PARTS pw_qpolynomial_fold
 #define ALIGN_DOMAIN
 
+#define NO_SUB
+
 #include <isl_union_templ.c>
 
 __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_empty(enum isl_fold type,
index bc0937d..2dfdd0f 100644 (file)
@@ -3956,14 +3956,6 @@ error:
        return NULL;
 }
 
-__isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_sub(
-       __isl_take isl_union_pw_qpolynomial *upwqp1,
-       __isl_take isl_union_pw_qpolynomial *upwqp2)
-{
-       return isl_union_pw_qpolynomial_add(upwqp1,
-                                       isl_union_pw_qpolynomial_neg(upwqp2));
-}
-
 __isl_give isl_union_pw_qpolynomial *isl_union_pw_qpolynomial_mul(
        __isl_take isl_union_pw_qpolynomial *upwqp1,
        __isl_take isl_union_pw_qpolynomial *upwqp2)
index f6f46e2..cd55f4e 100644 (file)
@@ -465,6 +465,15 @@ error:
        return NULL;
 }
 
+#ifndef NO_SUB
+/* Subtract "u2" from "u1" and return the result.
+ */
+__isl_give UNION *FN(UNION,sub)(__isl_take UNION *u1, __isl_take UNION *u2)
+{
+       return match_bin_op(u1, u2, &FN(PART,sub));
+}
+#endif
+
 S(UNION,any_set_data) {
        isl_set *set;
        UNION *res;