diff options
author | Peter Mikkelsen <petermikkelsen10@gmail.com> | 2022-01-21 23:36:48 +0000 |
---|---|---|
committer | Peter Mikkelsen <petermikkelsen10@gmail.com> | 2022-01-21 23:36:48 +0000 |
commit | 0df1eeecacb4f4e0c32e8d86320fca1efdc4bdda (patch) | |
tree | e93f29ef225910ad51b0787990ec871c11dcae8e /array.c | |
parent | 12e1d1fe6464964b2bee1b83b8524445fc2bbe2c (diff) |
Implement ∘ and fix a bug in simplifyarray
Diffstat (limited to 'array.c')
-rw-r--r-- | array.c | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -192,8 +192,16 @@ simplifyarray(Array *a) b->stranded = a->stranded; for(i = 0; i < a->rank; i++) b->shape[i] = a->shape[i]; - for(i = 0; i < a->size; i++) + for(i = 0; i < a->size; i++){ memcpy(b->rawdata + i * datasizes[type], a->arraydata[i]->rawdata, datasizes[type]); + if(b->type == AtypeArray) + incref(b->arraydata[i]); + } + if(b->type == AtypeArray){ + Array *tmp = b; + b = simplifyarray(b); + freearray(tmp); + } return b; }else if(canfloat){ Array *b = allocarray(AtypeFloat, a->rank, a->size); |