aboutsummaryrefslogtreecommitdiff
path: root/include/gensvm_matrix.h
diff options
context:
space:
mode:
authorGertjan van den Burg <burg@ese.eur.nl>2014-08-25 14:38:03 +0200
committerGertjan van den Burg <burg@ese.eur.nl>2014-08-25 14:38:03 +0200
commit1e340d509f229120eb3aaa98c91028dc3c0d3305 (patch)
treedd6b65c428447f179133e967eb0e0d3ce15f68ec /include/gensvm_matrix.h
parentfree some work arrays (diff)
downloadgensvm-1e340d509f229120eb3aaa98c91028dc3c0d3305.tar.gz
gensvm-1e340d509f229120eb3aaa98c91028dc3c0d3305.zip
rename msvmmaj to gensvm
Diffstat (limited to 'include/gensvm_matrix.h')
-rw-r--r--include/gensvm_matrix.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/include/gensvm_matrix.h b/include/gensvm_matrix.h
new file mode 100644
index 0000000..01be3da
--- /dev/null
+++ b/include/gensvm_matrix.h
@@ -0,0 +1,37 @@
+/**
+ * @file gensvm_matrix.h
+ * @author Gertjan van den Burg
+ * @date August, 2013
+ * @brief Header file for gensvm_matrix.c
+ *
+ * @details
+ * Contains function declarations for functions useful for dealing with matrices.
+ *
+ */
+
+#ifndef GENSVM_MATRIX_H
+#define GENSVM_MATRIX_H
+
+#include "globals.h"
+
+// Set a matrix element (RowMajor)
+#define matrix_set(M, cols, i, j, val) M[(i)*(cols)+j] = val
+
+// Get a matrix element (RowMajor)
+#define matrix_get(M, cols, i, j) M[(i)*(cols)+j]
+
+// 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);
+
+#endif