add isl_aff_normalize
authorSven Verdoolaege <skimo@kotnet.org>
Thu, 6 Oct 2011 21:18:51 +0000 (23:18 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Thu, 6 Oct 2011 21:19:49 +0000 (23:19 +0200)
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
isl_aff.c
isl_aff_private.h

index 813ada7..71e15a3 100644 (file)
--- a/isl_aff.c
+++ b/isl_aff.c
@@ -543,6 +543,16 @@ __isl_give isl_aff *isl_aff_neg(__isl_take isl_aff *aff)
        return aff;
 }
 
+__isl_give isl_aff *isl_aff_normalize(__isl_take isl_aff *aff)
+{
+       if (!aff)
+               return NULL;
+       aff->v = isl_vec_normalize(aff->v);
+       if (!aff->v)
+               return isl_aff_free(aff);
+       return aff;
+}
+
 /* Given f, return floor(f).
  * If f is an integer expression, then just return f.
  * Otherwise, if f = g/m, write g = q m + r,
index c820424..5a7c3e0 100644 (file)
@@ -56,6 +56,8 @@ __isl_give isl_aff *isl_aff_reset_domain_space(__isl_take isl_aff *aff,
 __isl_give isl_aff *isl_aff_realign_domain(__isl_take isl_aff *aff,
        __isl_take isl_reordering *r);
 
+__isl_give isl_aff *isl_aff_normalize(__isl_take isl_aff *aff);
+
 __isl_give isl_aff *isl_aff_expand_divs( __isl_take isl_aff *aff,
        __isl_take isl_mat *div, int *exp);