summaryrefslogtreecommitdiff
path: root/array.c
diff options
context:
space:
mode:
authorPeter Mikkelsen <petermikkelsen10@gmail.com>2022-01-22 14:18:09 +0000
committerPeter Mikkelsen <petermikkelsen10@gmail.com>2022-01-22 14:18:09 +0000
commitd0350fd2b634e73e8f6ef2a0927ae2decef81602 (patch)
tree609b5e23f80e140ca503634d00cce2c9250e4749 /array.c
parentba2c098932896234f17829e54399328cb24ed1be (diff)
Implement < ≤ = ≥ > ≠, but = and ≠ doesn't compare runes with numbers yet
Diffstat (limited to 'array.c')
-rw-r--r--array.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/array.c b/array.c
index bf75a1b..b6bc87b 100644
--- a/array.c
+++ b/array.c
@@ -50,8 +50,7 @@ mkrunearray(Rune *str)
Array *
duparray(Array *a)
{
- Array *b = allocarray(a->type, a->rank, a->size);
- memcpy(b->shape, a->shape, sizeof(int) * a->rank);
+ Array *b = duparrayshape(a, a->type);
memcpy(b->rawdata, a->rawdata, datasizes[a->type]*a->size);
if(b->type == AtypeArray)
for(int i = 0; i < b->size; i++)
@@ -59,6 +58,14 @@ duparray(Array *a)
return b;
}
+Array *
+duparrayshape(Array *a, int type)
+{
+ Array *b = allocarray(type, a->rank, a->size);
+ memcpy(b->shape, a->shape, sizeof(int) * a->rank);
+ return b;
+}
+
int
simplearray(Array *a)
{