add isl_mat_add_zero_rows
authorSven Verdoolaege <skimo@kotnet.org>
Mon, 11 Apr 2011 11:14:13 +0000 (13:14 +0200)
committerSven Verdoolaege <skimo@kotnet.org>
Thu, 21 Apr 2011 11:13:11 +0000 (13:13 +0200)
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
include/isl/mat.h
isl_mat.c

index e35edb2..d1a64cf 100644 (file)
@@ -79,6 +79,9 @@ __isl_give isl_mat *isl_mat_add_rows(__isl_take isl_mat *mat, unsigned n);
 __isl_give isl_mat *isl_mat_insert_zero_cols(__isl_take isl_mat *mat,
        unsigned first, unsigned n);
 __isl_give isl_mat *isl_mat_add_zero_cols(__isl_take isl_mat *mat, unsigned n);
+__isl_give isl_mat *isl_mat_insert_zero_rows(__isl_take isl_mat *mat,
+       unsigned row, unsigned n);
+__isl_give isl_mat *isl_mat_add_zero_rows(__isl_take isl_mat *mat, unsigned n);
 
 void isl_mat_col_add(__isl_keep isl_mat *mat, int dst_col, int src_col);
 void isl_mat_col_mul(struct isl_mat *mat, int dst_col, isl_int f, int src_col);
index 7a00734..ace8a43 100644 (file)
--- a/isl_mat.c
+++ b/isl_mat.c
@@ -1336,6 +1336,29 @@ __isl_give isl_mat *isl_mat_add_rows(__isl_take isl_mat *mat, unsigned n)
        return isl_mat_insert_rows(mat, mat->n_row, n);
 }
 
+__isl_give isl_mat *isl_mat_insert_zero_rows(__isl_take isl_mat *mat,
+       unsigned row, unsigned n)
+{
+       int i;
+
+       mat = isl_mat_insert_rows(mat, row, n);
+       if (!mat)
+               return NULL;
+       
+       for (i = 0; i < n; ++i)
+               isl_seq_clr(mat->row[row + i], mat->n_col);
+
+       return mat;
+}
+
+__isl_give isl_mat *isl_mat_add_zero_rows(__isl_take isl_mat *mat, unsigned n)
+{
+       if (!mat)
+               return NULL;
+
+       return isl_mat_insert_zero_rows(mat, mat->n_row, n);
+}
+
 void isl_mat_col_submul(struct isl_mat *mat,
                        int dst_col, isl_int f, int src_col)
 {