diff options
author | Sven Verdoolaege <skimo@kotnet.org> | 2013-04-09 16:23:48 +0200 |
---|---|---|
committer | Sven Verdoolaege <skimo@kotnet.org> | 2013-05-28 18:17:45 +0200 |
commit | fbdf8af4f16b910d7493c419885f939364096a0e (patch) | |
tree | 95ededdccbd2659d18dd9f2258015db4496a4e37 /isl_mat.c | |
parent | 20047fd99a9aac30a5dd2d2cba748832d1a6a097 (diff) | |
download | isl-fbdf8af4f16b910d7493c419885f939364096a0e.tar.gz isl-fbdf8af4f16b910d7493c419885f939364096a0e.tar.bz2 isl-fbdf8af4f16b910d7493c419885f939364096a0e.zip |
add isl_mat_set_element_val
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Diffstat (limited to 'isl_mat.c')
-rw-r--r-- | isl_mat.c | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -13,6 +13,7 @@ #include <isl/seq.h> #include <isl_mat_private.h> #include <isl_space_private.h> +#include <isl_val_private.h> isl_ctx *isl_mat_get_ctx(__isl_keep isl_mat *mat) { @@ -283,6 +284,24 @@ error: return NULL; } +/* Replace the element at row "row", column "col" of "mat" by "v". + */ +__isl_give isl_mat *isl_mat_set_element_val(__isl_take isl_mat *mat, + int row, int col, __isl_take isl_val *v) +{ + if (!v) + return isl_mat_free(mat); + if (!isl_val_is_int(v)) + isl_die(isl_val_get_ctx(v), isl_error_invalid, + "expecting integer value", goto error); + mat = isl_mat_set_element(mat, row, col, v->n); + isl_val_free(v); + return mat; +error: + isl_val_free(v); + return isl_mat_free(mat); +} + __isl_give isl_mat *isl_mat_diag(isl_ctx *ctx, unsigned n_row, isl_int d) { int i; |