From dbc7c83f7085d05e87721bedf1ee38931f671a8e Mon Sep 17 00:00:00 2001 From: dzaima Date: Fri, 25 Nov 2022 20:03:41 +0200 Subject: [PATCH] move usum to fold.c but don't do anything useful with that because usum needs to also check for negative numbers --- src/builtins/fold.c | 31 +++++++++++++++++++++++++++++++ src/core/stuff.c | 31 ------------------------------- 2 files changed, 31 insertions(+), 31 deletions(-) diff --git a/src/builtins/fold.c b/src/builtins/fold.c index 85cbe08b..ff8f35e8 100644 --- a/src/builtins/fold.c +++ b/src/builtins/fold.c @@ -278,3 +278,34 @@ B fold_c2(Md1D* d, B w, B x) { B f = d->f; decG(x); return c; } + +u64 usum(B x) { // doesn't consume; will error on non-integers, or elements <0, or if sum overflows u64 + assert(isArr(x)); + u64 r = 0; + usz xia = IA(x); + u8 xe = TI(x,elType); + if (xe==el_bit) return bit_sum(bitarr_ptr(x), xia); + else if (xe==el_i8 ) { i8* p = i8any_ptr (x); i8 m=0; for (usz i = 0; i < xia; ) { usz b=1<< 8; i16 s=0; for (usz e = xia-i