X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=isl_mat.c;h=e64beaee9aed0bacc1ac1c9e58b2669ae081710b;hb=7f17911bba7c398741edde2ce03c64b6555afbec;hp=ace8a43a9698f03ea9367ccf1d092a89683b4bb0;hpb=b09ed45859a4741b67709c81057a90bcd2ebf0aa;p=platform%2Fupstream%2Fisl.git diff --git a/isl_mat.c b/isl_mat.c index ace8a43..e64beae 100644 --- a/isl_mat.c +++ b/isl_mat.c @@ -14,6 +14,11 @@ #include "isl_map_private.h" #include +isl_ctx *isl_mat_get_ctx(__isl_keep isl_mat *mat) +{ + return mat ? mat->ctx : NULL; +} + struct isl_mat *isl_mat_alloc(struct isl_ctx *ctx, unsigned n_row, unsigned n_col) { @@ -1192,7 +1197,7 @@ error: return NULL; } -void isl_mat_dump(struct isl_mat *mat, FILE *out, int indent) +void isl_mat_print_internal(__isl_keep isl_mat *mat, FILE *out, int indent) { int i, j; @@ -1221,6 +1226,11 @@ void isl_mat_dump(struct isl_mat *mat, FILE *out, int indent) } } +void isl_mat_dump(__isl_keep isl_mat *mat) +{ + isl_mat_print_internal(mat, stderr, 0); +} + struct isl_mat *isl_mat_drop_cols(struct isl_mat *mat, unsigned col, unsigned n) { int r; @@ -1559,6 +1569,10 @@ __isl_give isl_mat *isl_mat_scale_down(__isl_take isl_mat *mat, isl_int m) { int i; + if (isl_int_is_one(m)) + return mat; + + mat = isl_mat_cow(mat); if (!mat) return NULL; @@ -1583,6 +1597,17 @@ __isl_give isl_mat *isl_mat_normalize(__isl_take isl_mat *mat) return mat; } +__isl_give isl_mat *isl_mat_normalize_row(__isl_take isl_mat *mat, int row) +{ + mat = isl_mat_cow(mat); + if (!mat) + return NULL; + + isl_seq_normalize(mat->ctx, mat->row[row], mat->n_col); + + return mat; +} + /* Number of initial non-zero columns. */ int isl_mat_initial_non_zero_cols(__isl_keep isl_mat *mat)