add checks for 𝕨<¯1 in ⊔

This commit is contained in:
dzaima 2021-07-04 05:05:13 +03:00
parent f5388fbdfa
commit 6942b2d04c

View File

@ -609,7 +609,11 @@ B group_c2(B t, B w, B x) {
TALLOC(i32, len, ria);
TALLOC(i32, pos, ria);
for (usz i = 0; i < ria; i++) len[i] = pos[i] = 0;
for (usz i = 0; i < xia; i++) { i32 n = wp[i]; if (n>=0) len[n]++; }
for (usz i = 0; i < xia; i++) {
i32 n = wp[i];
if (n>=0) len[n]++;
if (n<-1) thrM("⊔: 𝕨 can't contain elements less than ¯1");
}
Arr* r = m_fillarrp(ria); fillarr_setFill(r, m_f64(0));
arr_shVec(r, ria);
@ -655,8 +659,9 @@ B group_c2(B t, B w, B x) {
BS2B wgetU = TI(w).getU;
i64 ria = wia==xia? -1 : o2i64(wgetU(w, xia))-1;
for (usz i = 0; i < xia; i++) {
if (!isNum(w)) goto base;
i64 c = o2i64(wgetU(w, i));
B cw = wgetU(w, i);
if (!q_i64(cw)) goto base;
i64 c = o2i64u(cw);
if (c>ria) ria = c;
}
if (ria>USZ_MAX-1) thrOOM();
@ -667,6 +672,7 @@ B group_c2(B t, B w, B x) {
for (usz i = 0; i < xia; i++) {
i64 n = o2i64u(wgetU(w, i));
if (n>=0) len[n]++;
if (n<-1) thrM("⊔: 𝕨 can't contain elements less than ¯1");
}
Arr* r = m_fillarrp(ria); fillarr_setFill(r, m_f64(0));