aboutsummaryrefslogtreecommitdiff
path: root/circuitpython/extmod/ulab/code/ulab_tools.h
diff options
context:
space:
mode:
Diffstat (limited to 'circuitpython/extmod/ulab/code/ulab_tools.h')
-rw-r--r--circuitpython/extmod/ulab/code/ulab_tools.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/circuitpython/extmod/ulab/code/ulab_tools.h b/circuitpython/extmod/ulab/code/ulab_tools.h
new file mode 100644
index 0000000..2898ef1
--- /dev/null
+++ b/circuitpython/extmod/ulab/code/ulab_tools.h
@@ -0,0 +1,45 @@
+/*
+ * This file is part of the micropython-ulab project,
+ *
+ * https://github.com/v923z/micropython-ulab
+ *
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2020-2022 Zoltán Vörös
+*/
+
+#ifndef _TOOLS_
+#define _TOOLS_
+
+#include "ndarray.h"
+
+#define SWAP(t, a, b) { t tmp = a; a = b; b = tmp; }
+
+typedef struct _shape_strides_t {
+ uint8_t increment;
+ uint8_t ndim;
+ size_t *shape;
+ int32_t *strides;
+} shape_strides;
+
+mp_float_t ndarray_get_float_uint8(void *);
+mp_float_t ndarray_get_float_int8(void *);
+mp_float_t ndarray_get_float_uint16(void *);
+mp_float_t ndarray_get_float_int16(void *);
+mp_float_t ndarray_get_float_float(void *);
+void *ndarray_get_float_function(uint8_t );
+
+uint8_t ndarray_upcast_dtype(uint8_t , uint8_t );
+void *ndarray_set_float_function(uint8_t );
+
+shape_strides tools_reduce_axes(ndarray_obj_t *, mp_obj_t );
+int8_t tools_get_axis(mp_obj_t , uint8_t );
+ndarray_obj_t *tools_object_is_square(mp_obj_t );
+
+uint8_t ulab_binary_get_size(uint8_t );
+
+#if ULAB_SUPPORTS_COMPLEX
+void ulab_rescale_float_strides(int32_t *);
+#endif
+
+#endif