aboutsummaryrefslogtreecommitdiff
path: root/nerv/lib/matrix/matrix.h
diff options
context:
space:
mode:
Diffstat (limited to 'nerv/lib/matrix/matrix.h')
-rw-r--r--nerv/lib/matrix/matrix.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/nerv/lib/matrix/matrix.h b/nerv/lib/matrix/matrix.h
new file mode 100644
index 0000000..cbf32c2
--- /dev/null
+++ b/nerv/lib/matrix/matrix.h
@@ -0,0 +1,19 @@
+#ifndef NERV_GENERIC_MATRIX_H
+#define NERV_GENERIC_MATRIX_H
+
+#include <stddef.h>
+
+typedef struct Matrix {
+ size_t stride; /* size of a row */
+ long ncol, nrow, nmax; /* dimension of the matrix */
+ union {
+ float *f;
+ double *d;
+ long *i;
+ } data; /* pointer to actual storage */
+ long *data_ref;
+} Matrix;
+
+#define MATRIX_ROW_PTR(self, row) \
+ (MATRIX_ELEM *)((char *)MATRIX_ELEM_PTR(self) + (row) * (self)->stride)
+#endif