From 63794c5e3fc0f53adb50e9cd0fc78d7a9a807a72 Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Tue, 19 Jul 2011 16:08:14 +0200 Subject: [PATCH] add isl_pw_aff_ne_set Signed-off-by: Sven Verdoolaege --- doc/user.pod | 3 +++ include/isl/aff.h | 2 ++ isl_aff.c | 14 ++++++++++++++ 3 files changed, 19 insertions(+) diff --git a/doc/user.pod b/doc/user.pod index 3c3a324b..0e45e14d 100644 --- a/doc/user.pod +++ b/doc/user.pod @@ -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); diff --git a/include/isl/aff.h b/include/isl/aff.h index ffeca4bc..b6ffe35d 100644 --- a/include/isl/aff.h +++ b/include/isl/aff.h @@ -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, diff --git a/isl_aff.c b/isl_aff.c index 5e5ea3d3..5faf8708 100644 --- 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) { -- 2.11.4.GIT