add checks for 𝕨<¯1 in ⊔
This commit is contained in:
parent
f5388fbdfa
commit
6942b2d04c
@ -609,7 +609,11 @@ B group_c2(B t, B w, B x) {
|
|||||||
TALLOC(i32, len, ria);
|
TALLOC(i32, len, ria);
|
||||||
TALLOC(i32, pos, ria);
|
TALLOC(i32, pos, ria);
|
||||||
for (usz i = 0; i < ria; i++) len[i] = pos[i] = 0;
|
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* r = m_fillarrp(ria); fillarr_setFill(r, m_f64(0));
|
||||||
arr_shVec(r, ria);
|
arr_shVec(r, ria);
|
||||||
@ -655,8 +659,9 @@ B group_c2(B t, B w, B x) {
|
|||||||
BS2B wgetU = TI(w).getU;
|
BS2B wgetU = TI(w).getU;
|
||||||
i64 ria = wia==xia? -1 : o2i64(wgetU(w, xia))-1;
|
i64 ria = wia==xia? -1 : o2i64(wgetU(w, xia))-1;
|
||||||
for (usz i = 0; i < xia; i++) {
|
for (usz i = 0; i < xia; i++) {
|
||||||
if (!isNum(w)) goto base;
|
B cw = wgetU(w, i);
|
||||||
i64 c = o2i64(wgetU(w, i));
|
if (!q_i64(cw)) goto base;
|
||||||
|
i64 c = o2i64u(cw);
|
||||||
if (c>ria) ria = c;
|
if (c>ria) ria = c;
|
||||||
}
|
}
|
||||||
if (ria>USZ_MAX-1) thrOOM();
|
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++) {
|
for (usz i = 0; i < xia; i++) {
|
||||||
i64 n = o2i64u(wgetU(w, i));
|
i64 n = o2i64u(wgetU(w, i));
|
||||||
if (n>=0) len[n]++;
|
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* r = m_fillarrp(ria); fillarr_setFill(r, m_f64(0));
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user