aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorGertjan van den Burg <burg@ese.eur.nl>2014-07-30 17:19:04 +0200
committerGertjan van den Burg <burg@ese.eur.nl>2014-07-30 17:19:04 +0200
commit5bffda9580a408b9ef86dd359fdd28e2ab8e3f9d (patch)
tree0ef9da7eaf173cc1419b14df15c7ae2487d25fdc /include
parentremove debug printing and fix seed for testing (diff)
downloadgensvm-5bffda9580a408b9ef86dd359fdd28e2ab8e3f9d.tar.gz
gensvm-5bffda9580a408b9ef86dd359fdd28e2ab8e3f9d.zip
convert matrix utility functions to defines
Diffstat (limited to 'include')
-rw-r--r--include/msvmmaj_matrix.h22
1 files changed, 15 insertions, 7 deletions
diff --git a/include/msvmmaj_matrix.h b/include/msvmmaj_matrix.h
index 8f5ca59..db64303 100644
--- a/include/msvmmaj_matrix.h
+++ b/include/msvmmaj_matrix.h
@@ -14,15 +14,23 @@
#include "globals.h"
-void matrix_set(double *M, long cols, long i, long j, double val);
-void matrix_add(double *M, long cols, long i, long j, double val);
-void matrix_mul(double *M, long cols, long i, long j, double val);
+// Set a matrix element (RowMajor)
+#define matrix_set(M, cols, i, j, val) M[(i)*(cols)+j] = val
-double matrix_get(double *M, long cols, long i, long j);
+// Get a matrix element (RowMajor)
+#define matrix_get(M, cols, i, j) M[(i)*(cols)+j]
-void matrix3_set(double *M, long N2, long N3, long i, long j, long k,
- double val);
-double matrix3_get(double *M, long N2, long N3, long i, long j, long k);
+// Add to a matrix element (RowMajor)
+#define matrix_add(M, cols, i, j, val) M[(i)*(cols)+j] += val
+
+// Multiply a matrix element (RowMajor)
+#define matrix_mul(M, cols, i, j, val) M[(i)*(cols)+j] *= val
+
+// Set a 3D matrix element (N2 = second dim, N3 = third dim, RowMajor)
+#define matrix3_set(M, N2, N3, i, j, k, val) M[k+(N3)*(j+(N2)*(i))] = val
+
+// Get a 3D matrix element (N2 = second dim, N3 = third dim, RowMajor)
+#define matrix3_get(M, N2, N3, i, j, k) M[k+(N3)*(j+(N2)*(i))]
void print_matrix(double *M, long rows, long cols);