add isl_mat_initial_non_zero_cols
authorSven Verdoolaege <skimo@kotnet.org>
Sat, 26 Mar 2011 14:18:17 +0000 (15:18 +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>
include/isl/mat.h
isl_mat.c

index f888e7a..1dbb84a 100644 (file)
@@ -102,6 +102,8 @@ __isl_give isl_mat *isl_mat_vec_concat(__isl_take isl_mat *top,
 
 int isl_mat_is_equal(__isl_keep isl_mat *mat1, __isl_keep isl_mat *mat2);
 
+int isl_mat_initial_non_zero_cols(__isl_keep isl_mat *mat);
+
 void isl_mat_dump(struct isl_mat *mat, FILE *out, int indent);
 
 #if defined(__cplusplus)
index 6dc9d19..9a8a558 100644 (file)
--- a/isl_mat.c
+++ b/isl_mat.c
@@ -1483,3 +1483,19 @@ __isl_give isl_mat *isl_mat_normalize(__isl_take isl_mat *mat)
 
        return mat;
 }
+
+/* Number of initial non-zero columns.
+ */
+int isl_mat_initial_non_zero_cols(__isl_keep isl_mat *mat)
+{
+       int i;
+
+       if (!mat)
+               return -1;
+
+       for (i = 0; i < mat->n_col; ++i)
+               if (row_first_non_zero(mat->row, mat->n_row, i) < 0)
+                       break;
+
+       return i;
+}