add isl_vec_get_element_val
authorSven Verdoolaege <skimo@kotnet.org>
Sun, 14 Apr 2013 18:24:25 +0000 (20:24 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Tue, 28 May 2013 16:17:41 +0000 (18:17 +0200)
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
doc/user.pod
include/isl/vec.h
isl_vec.c

index 34fa536..a6aa89f 100644 (file)
@@ -3443,6 +3443,8 @@ The elements can be changed and inspected using the following functions.
        int isl_vec_size(__isl_keep isl_vec *vec);
        int isl_vec_get_element(__isl_keep isl_vec *vec,
                int pos, isl_int *v);
+       __isl_give isl_val *isl_vec_get_element_val(
+               __isl_keep isl_vec *vec, int pos);
        __isl_give isl_vec *isl_vec_set_element(
                __isl_take isl_vec *vec, int pos, isl_int v);
        __isl_give isl_vec *isl_vec_set_element_si(
index 5a3192e..900ef4c 100644 (file)
@@ -43,6 +43,7 @@ isl_ctx *isl_vec_get_ctx(__isl_keep isl_vec *vec);
 
 int isl_vec_size(__isl_keep isl_vec *vec);
 int isl_vec_get_element(__isl_keep isl_vec *vec, int pos, isl_int *v);
+__isl_give isl_val *isl_vec_get_element_val(__isl_keep isl_vec *vec, int pos);
 __isl_give isl_vec *isl_vec_set_element(__isl_take isl_vec *vec,
        int pos, isl_int v);
 __isl_give isl_vec *isl_vec_set_element_si(__isl_take isl_vec *vec,
index 236413e..9a0ec03 100644 (file)
--- a/isl_vec.c
+++ b/isl_vec.c
@@ -189,6 +189,21 @@ int isl_vec_get_element(__isl_keep isl_vec *vec, int pos, isl_int *v)
        return 0;
 }
 
+/* Extract the element at position "pos" of "vec".
+ */
+__isl_give isl_val *isl_vec_get_element_val(__isl_keep isl_vec *vec, int pos)
+{
+       isl_ctx *ctx;
+
+       if (!vec)
+               return NULL;
+       ctx = isl_vec_get_ctx(vec);
+       if (pos < 0 || pos >= vec->size)
+               isl_die(ctx, isl_error_invalid, "position out of range",
+                       return NULL);
+       return isl_val_int_from_isl_int(ctx, vec->el[pos]);
+}
+
 __isl_give isl_vec *isl_vec_set_element(__isl_take isl_vec *vec,
        int pos, isl_int v)
 {