add isl_pw_aff_ne_set
authorSven Verdoolaege <skimo@kotnet.org>
Tue, 19 Jul 2011 14:08:14 +0000 (16:08 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Wed, 20 Jul 2011 15:37:26 +0000 (17:37 +0200)
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
doc/user.pod
include/isl/aff.h
isl_aff.c

index 3c3a324..0e45e14 100644 (file)
@@ -2441,6 +2441,9 @@ Operations include
        __isl_give isl_set *isl_pw_aff_eq_set(
                __isl_take isl_pw_aff *pwaff1,
                __isl_take isl_pw_aff *pwaff2);
+       __isl_give isl_set *isl_pw_aff_ne_set(
+               __isl_take isl_pw_aff *pwaff1,
+               __isl_take isl_pw_aff *pwaff2);
        __isl_give isl_set *isl_pw_aff_le_set(
                __isl_take isl_pw_aff *pwaff1,
                __isl_take isl_pw_aff *pwaff2);
index ffeca4b..b6ffe35 100644 (file)
@@ -140,6 +140,8 @@ __isl_give isl_set *isl_pw_aff_nonneg_set(__isl_take isl_pw_aff *pwaff);
 
 __isl_give isl_set *isl_pw_aff_eq_set(__isl_take isl_pw_aff *pwaff1,
        __isl_take isl_pw_aff *pwaff2);
+__isl_give isl_set *isl_pw_aff_ne_set(__isl_take isl_pw_aff *pwaff1,
+       __isl_take isl_pw_aff *pwaff2);
 __isl_give isl_set *isl_pw_aff_le_set(__isl_take isl_pw_aff *pwaff1,
        __isl_take isl_pw_aff *pwaff2);
 __isl_give isl_set *isl_pw_aff_lt_set(__isl_take isl_pw_aff *pwaff1,
index 5e5ea3d..5faf870 100644 (file)
--- a/isl_aff.c
+++ b/isl_aff.c
@@ -1286,6 +1286,20 @@ __isl_give isl_set *isl_pw_aff_lt_set(__isl_take isl_pw_aff *pwaff1,
        return isl_pw_aff_gt_set(pwaff2, pwaff1);
 }
 
+/* Return a set containing those elements in the shared domain
+ * of pwaff1 and pwaff2 where pwaff1 is not equal to pwaff2.
+ */
+__isl_give isl_set *isl_pw_aff_ne_set(__isl_take isl_pw_aff *pwaff1,
+       __isl_take isl_pw_aff *pwaff2)
+{
+       isl_set *set_lt, *set_gt;
+
+       set_lt = isl_pw_aff_lt_set(isl_pw_aff_copy(pwaff1),
+                                  isl_pw_aff_copy(pwaff2));
+       set_gt = isl_pw_aff_gt_set(pwaff1, pwaff2);
+       return isl_set_union_disjoint(set_lt, set_gt);
+}
+
 __isl_give isl_pw_aff *isl_pw_aff_scale_down(__isl_take isl_pw_aff *pwaff,
        isl_int v)
 {