summaryrefslogtreecommitdiff
path: root/isl_mat.c
diff options
context:
space:
mode:
authorSven Verdoolaege <skimo@kotnet.org>2009-02-26 11:59:03 +0100
committerSven Verdoolaege <skimo@kotnet.org>2009-03-08 19:01:48 +0100
commit19556df351532e510c9e7cf5ab7d35254338dc1e (patch)
tree8bbb977a9b8e569ef622edb7f316975e1304dd76 /isl_mat.c
parent26e0d483a404eae4951f24c0f0779eb4f797444e (diff)
downloadisl-19556df351532e510c9e7cf5ab7d35254338dc1e.tar.gz
isl-19556df351532e510c9e7cf5ab7d35254338dc1e.tar.bz2
isl-19556df351532e510c9e7cf5ab7d35254338dc1e.zip
add isl_mat_swap_cols
Diffstat (limited to 'isl_mat.c')
-rw-r--r--isl_mat.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/isl_mat.c b/isl_mat.c
index 306f2364..e2566d58 100644
--- a/isl_mat.c
+++ b/isl_mat.c
@@ -670,6 +670,25 @@ error:
return NULL;
}
+struct isl_mat *isl_mat_swap_cols(struct isl_ctx *ctx,
+ struct isl_mat *mat, unsigned i, unsigned j)
+{
+ int r;
+
+ mat = isl_mat_cow(ctx, mat);
+ if (!mat)
+ return NULL;
+ isl_assert(ctx, i < mat->n_col, goto error);
+ isl_assert(ctx, j < mat->n_col, goto error);
+
+ for (r = 0; r < mat->n_row; ++r)
+ isl_int_swap(mat->row[r][i], mat->row[r][j]);
+ return mat;
+error:
+ isl_mat_free(ctx, mat);
+ return NULL;
+}
+
struct isl_mat *isl_mat_swap_rows(struct isl_ctx *ctx,
struct isl_mat *mat, unsigned i, unsigned j)
{