add isl_vec_fdiv_r
authorSven Verdoolaege <skimo@kotnet.org>
Sun, 19 Aug 2012 10:30:56 +0000 (12:30 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Thu, 6 Sep 2012 13:45:21 +0000 (15:45 +0200)
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
doc/user.pod
include/isl/vec.h
isl_vec.c

index 95a809f..89c0716 100644 (file)
@@ -3011,6 +3011,8 @@ The elements can be changed and inspected using the following functions.
                isl_int v);
        __isl_give isl_vec *isl_vec_set_si(__isl_take isl_vec *vec,
                int v);
+       __isl_give isl_vec *isl_vec_fdiv_r(__isl_take isl_vec *vec,
+               isl_int m);
 
 C<isl_vec_get_element> will return a negative value if anything went wrong.
 In that case, the value of C<*v> is undefined.
index 84d412e..7122997 100644 (file)
@@ -61,6 +61,7 @@ __isl_give isl_vec *isl_vec_set_si(__isl_take isl_vec *vec, int v);
 __isl_give isl_vec *isl_vec_clr(__isl_take isl_vec *vec);
 __isl_give isl_vec *isl_vec_neg(__isl_take isl_vec *vec);
 __isl_give isl_vec *isl_vec_scale(__isl_take isl_vec *vec, isl_int m);
+__isl_give isl_vec *isl_vec_fdiv_r(__isl_take isl_vec *vec, isl_int m);
 __isl_give isl_vec *isl_vec_add(__isl_take isl_vec *vec1,
        __isl_take isl_vec *vec2);
 __isl_give isl_vec *isl_vec_extend(__isl_take isl_vec *vec, unsigned size);
index b197b5e..a27fcba 100644 (file)
--- a/isl_vec.c
+++ b/isl_vec.c
@@ -341,6 +341,19 @@ __isl_give isl_vec *isl_vec_scale(__isl_take isl_vec *vec, isl_int m)
        return vec;
 }
 
+/* Reduce the elements of "vec" modulo "m".
+ */
+__isl_give isl_vec *isl_vec_fdiv_r(__isl_take isl_vec *vec, isl_int m)
+{
+       vec = isl_vec_cow(vec);
+       if (!vec)
+               return NULL;
+
+       isl_seq_fdiv_r(vec->el, vec->el, m, vec->size);
+
+       return vec;
+}
+
 __isl_give isl_vec *isl_vec_add(__isl_take isl_vec *vec1,
        __isl_take isl_vec *vec2)
 {