summaryrefslogtreecommitdiff
path: root/matrix.h
diff options
context:
space:
mode:
Diffstat (limited to 'matrix.h')
-rw-r--r--matrix.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/matrix.h b/matrix.h
index 5ee5dc3..dc09ef6 100644
--- a/matrix.h
+++ b/matrix.h
@@ -4,6 +4,13 @@
#include <stddef.h>
#define matrix_at(mat, i, j) ((mat)->xs[(i) * (mat)->n + (j)])
+
+#define matrix_loop(mat, i, j) for (size_t i = 0; i < (mat)->m; i++) for (size_t j = 0; j < (mat)->m; j++)
+
+#define matrix_foreach(mat, it) for (double *it = (mat)->xs; it < (mat)->xs + ((mat)->m * (mat)->n); ++it)
+
+#define matrix_foreach_idx(mat, it, i, j) double *it = (mat)->xs; for (size_t i = 0; i < (mat)->m; i++) for (size_t j = 0; j < (mat)->n; j++, ++it)
+
#define TRUE 1
#define FALSE 0