add isl_vec_scale
authorSven Verdoolaege <skimo@kotnet.org>
Fri, 25 Jun 2010 12:31:09 +0000 (14:31 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Fri, 25 Jun 2010 13:19:41 +0000 (15:19 +0200)
include/isl_vec.h
isl_vec.c

index cc94c7c..746b70f 100644 (file)
@@ -42,6 +42,7 @@ void isl_vec_dump(struct isl_vec *vec, FILE *out, int indent);
 void isl_vec_lcm(struct isl_vec *vec, isl_int *lcm);
 struct isl_vec *isl_vec_ceil(struct isl_vec *vec);
 struct isl_vec *isl_vec_normalize(struct isl_vec *vec);
+__isl_give isl_vec *isl_vec_scale(__isl_take isl_vec *vec, isl_int m);
 
 struct isl_vec *isl_vec_read_from_file(struct isl_ctx *ctx,
                FILE *input, unsigned input_format);
index b052bb1..c16d71a 100644 (file)
--- a/isl_vec.c
+++ b/isl_vec.c
@@ -127,3 +127,14 @@ struct isl_vec *isl_vec_normalize(struct isl_vec *vec)
        isl_seq_normalize(vec->ctx, vec->el, vec->size);
        return vec;
 }
+
+__isl_give isl_vec *isl_vec_scale(__isl_take isl_vec *vec, isl_int m)
+{
+       if (isl_int_is_one(m))
+               return vec;
+       vec = isl_vec_cow(vec);
+       if (!vec)
+               return NULL;
+       isl_seq_scale(vec->el, vec->el, m, vec->size);
+       return vec;
+}