aboutsummaryrefslogtreecommitdiff
path: root/ndarray.h
diff options
context:
space:
mode:
Diffstat (limited to 'ndarray.h')
-rw-r--r--ndarray.h69
1 files changed, 0 insertions, 69 deletions
diff --git a/ndarray.h b/ndarray.h
deleted file mode 100644
index db58254..0000000
--- a/ndarray.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * N-dimensional strided array
- * Copyright 2018 Anton Khirnov <anton@khirnov.net>
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef MG2D_NDARRAY_H
-#define MG2D_NDARRAY_H
-
-#include <stddef.h>
-#include <stdint.h>
-
-typedef struct Slice {
- ptrdiff_t start;
- ptrdiff_t end;
- ptrdiff_t step;
-} Slice;
-
-#define SLICE(start, end, step) ((Slice){ start, end, step })
-#define SLICE_NULL ((Slice){ PTRDIFF_MAX })
-
-typedef struct NDArrayInternal NDArrayInternal;
-
-typedef struct NDArray {
- NDArrayInternal *priv;
-
- unsigned int dims;
-
- double *data;
- const size_t *shape;
- const ptrdiff_t *stride;
-} 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);
-
-int mg2di_ndarray_wrap(NDArray **result, unsigned int dims,
- const size_t * const size, double *data,
- const ptrdiff_t * const strides);
-
-int mg2di_ndarray_slice(NDArray **result, NDArray *src,
- const Slice * const slice);
-
-int mg2di_ndarray_copy(NDArray *dst, const NDArray *src);
-
-#endif // MG2D_ARRAY_H