summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ndarray.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/ndarray.h b/ndarray.h
index f10ac80..c0d964b 100644
--- a/ndarray.h
+++ b/ndarray.h
@@ -45,6 +45,14 @@ typedef struct NDArray {
#define NDARRAY_ALLOC_ZERO (1 << 0)
+#define NDIDX1D(arr, x) (arr->stride[0] * x)
+#define NDIDX2D(arr, x, y) (arr->stride[0] * y + arr->stride[1] * x)
+#define NDIDX3D(arr, x, y, z) (arr->stride[0] * z + arr->stride[1] * y + arr->stride[0] * x)
+
+#define NDPTR1D(arr, x) (arr->data + NDIDX1D(arr, x))
+#define NDPTR2D(arr, x, y) (arr->data + NDIDX2D(arr, x, y))
+#define NDPTR3D(arr, x, y, z) (arr->data + NDIDX2D(arr, x, y, z))
+
int mg2di_ndarray_alloc(NDArray **result, unsigned int dims,
const size_t * const size, unsigned int flags);
void mg2di_ndarray_free(NDArray **a);