fix error message of usum of i32arr encountering a negative element

This commit is contained in:
dzaima 2023-12-05 16:03:53 +02:00
parent 5c7ab3f9a8
commit a439c64e85
2 changed files with 2 additions and 1 deletions

View File

@ -301,7 +301,7 @@ u64 usum(B x) { // doesn't consume; will error on non-integers, or elements <0,
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<b?xia:i+b; i < e; i++) { m|=p[i]; s+=p[i]; } if (m<0) goto neg; if (addOn(r,(u16)s)) goto overflow; } }
else if (xe==el_i16) { i16* p = i16any_ptr(x); i16 m=0; for (usz i = 0; i < xia; ) { usz b=1<<16; i32 s=0; for (usz e = xia-i<b?xia:i+b; i < e; i++) { m|=p[i]; s+=p[i]; } if (m<0) goto neg; if (addOn(r,(u32)s)) goto overflow; } }
else if (xe==el_i32) { i32* p = i32any_ptr(x); i32 m=0; for (usz i = 0; i < xia; i++) { m|=p[i]; if (addOn(r,p[i])) goto overflow; } if (m<0) goto neg; }
else if (xe==el_i32) { i32* p = i32any_ptr(x); i32 m=0; for (usz i = 0; i < xia; i++) { m|=p[i]; if (addOn(r,p[i])) { if (m<0) goto neg; else goto overflow; } } if (m<0) goto neg; }
else if (xe==el_f64) {
f64* p = f64any_ptr(x);
for (usz i = 0; i < xia; i++) {

View File

@ -71,6 +71,7 @@
!"Didn't expect negative integer" % / 4/1000¯1000
!"/: Argument must have rank 1 (3‿3 ≡ ≢𝕩)" % /33
!"/: Argument must have rank 1 (⟨⟩ ≡ ≢𝕩)" % /0
%USE tvar /•CurrentError _tvar ¯1(100) 20010 %% "Didn't expect negative integer""Expected integer" # TODO shouldn't have different error messages
! (//)81525329010115516558459489491213121328135013671391140714691486155915661576158215921599160916161626163540864093411441224141414941694177
# 𝕨⊏𝕩