diff options
author | Sven Verdoolaege <skimo@kotnet.org> | 2010-05-12 11:36:19 +0200 |
---|---|---|
committer | Sven Verdoolaege <skimo@kotnet.org> | 2010-05-13 18:53:54 +0200 |
commit | 35501cb016e7536e3b3c4f7a2cfd5124b977a705 (patch) | |
tree | 2ce358b415d2fd0b55fdaeef4479964e52060480 /isl_mat.c | |
parent | 8476b0ce1d296e591068452812ed78e62c7f70f2 (diff) | |
download | isl-35501cb016e7536e3b3c4f7a2cfd5124b977a705.tar.gz isl-35501cb016e7536e3b3c4f7a2cfd5124b977a705.tar.bz2 isl-35501cb016e7536e3b3c4f7a2cfd5124b977a705.zip |
add isl_mat_insert_rows
Diffstat (limited to 'isl_mat.c')
-rw-r--r-- | isl_mat.c | 25 |
1 files changed, 25 insertions, 0 deletions
@@ -1132,6 +1132,31 @@ error: return NULL; } +__isl_give isl_mat *isl_mat_insert_rows(__isl_take isl_mat *mat, + unsigned row, unsigned n) +{ + isl_mat *ext; + + if (!mat) + return NULL; + if (n == 0) + return mat; + + ext = isl_mat_alloc(mat->ctx, mat->n_row + n, mat->n_col); + if (!ext) + goto error; + + isl_mat_sub_copy(mat->ctx, ext->row, mat->row, row, 0, 0, mat->n_col); + isl_mat_sub_copy(mat->ctx, ext->row + row + n, mat->row + row, + mat->n_row - row, 0, 0, mat->n_col); + + isl_mat_free(mat); + return ext; +error: + isl_mat_free(mat); + return NULL; +} + void isl_mat_col_submul(struct isl_mat *mat, int dst_col, isl_int f, int src_col) { |