add isl_aff_neg_basic_set
authorSven Verdoolaege <sven@nestor.cs.kuleuven.be>
Wed, 18 Apr 2012 16:07:07 +0000 (18:07 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Thu, 2 Aug 2012 10:20:08 +0000 (12:20 +0200)
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
doc/user.pod
include/isl/aff.h
isl_aff.c

index b54ad80..d07cef9 100644 (file)
@@ -3212,6 +3212,8 @@ When multiplying two affine expressions, at least one of the two needs
 to be a constant.
 
        #include <isl/aff.h>
+       __isl_give isl_basic_set *isl_aff_neg_basic_set(
+               __isl_take isl_aff *aff);
        __isl_give isl_basic_set *isl_aff_le_basic_set(
                __isl_take isl_aff *aff1, __isl_take isl_aff *aff2);
        __isl_give isl_basic_set *isl_aff_ge_basic_set(
@@ -3254,6 +3256,9 @@ to be a constant.
                __isl_take isl_pw_aff_list *list1,
                __isl_take isl_pw_aff_list *list2);
 
+The function C<isl_aff_neg_basic_set> returns a basic set
+containing those elements in the domain space
+of C<aff> where C<aff> is negative.
 The function C<isl_aff_ge_basic_set> returns a basic set
 containing those elements in the shared space
 of C<aff1> and C<aff2> where C<aff1> is greater than or equal to C<aff2>.
index 5d441a9..faeb957 100644 (file)
@@ -97,6 +97,8 @@ __isl_give isl_aff *isl_aff_gist(__isl_take isl_aff *aff,
 __isl_give isl_aff *isl_aff_gist_params(__isl_take isl_aff *aff,
        __isl_take isl_set *context);
 
+__isl_give isl_basic_set *isl_aff_neg_basic_set(__isl_take isl_aff *aff);
+
 __isl_give isl_basic_set *isl_aff_le_basic_set(__isl_take isl_aff *aff1,
        __isl_take isl_aff *aff2);
 __isl_give isl_basic_set *isl_aff_ge_basic_set(__isl_take isl_aff *aff1,
index e51ffce..85e4953 100644 (file)
--- a/isl_aff.c
+++ b/isl_aff.c
@@ -1136,6 +1136,16 @@ __isl_give isl_basic_set *isl_aff_nonneg_basic_set(__isl_take isl_aff *aff)
        return bset;
 }
 
+/* Return a basic set containing those elements in the domain space
+ * of aff where it is negative.
+ */
+__isl_give isl_basic_set *isl_aff_neg_basic_set(__isl_take isl_aff *aff)
+{
+       aff = isl_aff_neg(aff);
+       aff = isl_aff_add_constant_num_si(aff, -1);
+       return isl_aff_nonneg_basic_set(aff);
+}
+
 /* Return a basic set containing those elements in the space
  * of aff where it is zero.
  */