special 𝕨⊔i32vec
This commit is contained in:
parent
c5506657c3
commit
46292872d1
16
src/sfns.c
16
src/sfns.c
@ -654,7 +654,20 @@ B group_c2(B t, B w, B x) {
|
|||||||
for (usz i = 0; i < ria; i++) rp[i] = m_f64(0); // don't break if allocation errors
|
for (usz i = 0; i < ria; i++) rp[i] = m_f64(0); // don't break if allocation errors
|
||||||
B xf = getFillQ(x);
|
B xf = getFillQ(x);
|
||||||
|
|
||||||
|
if (TI(x).elType==el_i32) {
|
||||||
|
for (usz i = 0; i < ria; i++) { i32* t; rp[i] = m_i32arrv(&t, len[i]); }
|
||||||
|
B rf = m_fillarrp(ria);
|
||||||
|
arr_shVec(rf, 0);
|
||||||
|
fillarr_setFill(rf, xf);
|
||||||
|
fillarr_setFill(r, rf);
|
||||||
|
i32* xp = i32any_ptr(x);
|
||||||
|
for (usz i = 0; i < xia; i++) {
|
||||||
|
i64 n = o2i64u(wgetU(w, i));
|
||||||
|
if (n>=0) i32arr_ptr(rp[n])[pos[n]++] = xp[i];
|
||||||
|
}
|
||||||
|
dec(w); dec(x);
|
||||||
|
return r;
|
||||||
|
} else {
|
||||||
for (usz i = 0; i < ria; i++) {
|
for (usz i = 0; i < ria; i++) {
|
||||||
B c = m_fillarrp(len[i]);
|
B c = m_fillarrp(len[i]);
|
||||||
fillarr_setFill(c, inc(xf));
|
fillarr_setFill(c, inc(xf));
|
||||||
@ -674,6 +687,7 @@ B group_c2(B t, B w, B x) {
|
|||||||
dec(w); dec(x);
|
dec(w); dec(x);
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
base:
|
base:
|
||||||
return c2(rt_group, w, x);
|
return c2(rt_group, w, x);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user