add isl_mat_set_element_si
authorSven Verdoolaege <skimo@kotnet.org>
Sat, 26 Mar 2011 09:48:01 +0000 (10:48 +0100)
committerSven Verdoolaege <skimo@kotnet.org>
Thu, 21 Apr 2011 11:13:11 +0000 (13:13 +0200)
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
doc/user.pod
include/isl/mat.h
isl_mat.c

index 72ffd44..daf69da 100644 (file)
@@ -1891,6 +1891,8 @@ The elements can be changed and inspected using the following functions.
                int row, int col, isl_int *v);
        __isl_give isl_mat *isl_mat_set_element(__isl_take isl_mat *mat,
                int row, int col, isl_int v);
+       __isl_give isl_mat *isl_mat_set_element_si(__isl_take isl_mat *mat,
+               int row, int col, int v);
 
 C<isl_mat_get_element> will return a negative value if anything went wrong.
 In that case, the value of C<*v> is undefined.
index 8345236..f888e7a 100644 (file)
@@ -39,6 +39,8 @@ int isl_mat_cols(__isl_keep isl_mat *mat);
 int isl_mat_get_element(__isl_keep isl_mat *mat, int row, int col, isl_int *v);
 __isl_give isl_mat *isl_mat_set_element(__isl_take isl_mat *mat,
        int row, int col, isl_int v);
+__isl_give isl_mat *isl_mat_set_element_si(__isl_take isl_mat *mat,
+       int row, int col, int v);
 
 struct isl_mat *isl_mat_sub_alloc(struct isl_ctx *ctx, isl_int **row,
        unsigned first_row, unsigned n_row, unsigned first_col, unsigned n_col);
index 90e981f..6dc9d19 100644 (file)
--- a/isl_mat.c
+++ b/isl_mat.c
@@ -248,6 +248,25 @@ error:
        return NULL;
 }
 
+__isl_give isl_mat *isl_mat_set_element_si(__isl_take isl_mat *mat,
+       int row, int col, int v)
+{
+       mat = isl_mat_cow(mat);
+       if (!mat)
+               return NULL;
+       if (row < 0 || row >= mat->n_row)
+               isl_die(mat->ctx, isl_error_invalid, "row out of range",
+                       goto error);
+       if (col < 0 || col >= mat->n_col)
+               isl_die(mat->ctx, isl_error_invalid, "column out of range",
+                       goto error);
+       isl_int_set_si(mat->row[row][col], v);
+       return mat;
+error:
+       isl_mat_free(mat);
+       return NULL;
+}
+
 struct isl_mat *isl_mat_identity(struct isl_ctx *ctx, unsigned n_row)
 {
        int i;