summaryrefslogtreecommitdiff
path: root/array.c
diff options
context:
space:
mode:
Diffstat (limited to 'array.c')
-rw-r--r--array.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/array.c b/array.c
new file mode 100644
index 0000000..766ccd8
--- /dev/null
+++ b/array.c
@@ -0,0 +1,29 @@
+#include <u.h>
+#include <libc.h>
+#include <bio.h>
+
+#include "apl9.h"
+
+int datasizes[] = {
+ [AtypeInt] = sizeof(vlong)
+};
+
+Array *
+mkarray(arrayDataType t, int rank, int size)
+{
+ Array *a = malloc(sizeof(Array));
+ a->rank = rank;
+ a->shape = malloc(sizeof(int) * rank);
+ a->rawdata = malloc(datasizes[t] * size);
+ a->type = t;
+ return a;
+}
+
+Array *
+mkscalarint(vlong i)
+{
+ Array *a = mkarray(AtypeInt, 0, 1);
+ a->intdata[0] = i;
+
+ return a;
+} \ No newline at end of file