fast arr˘ x

This commit is contained in:
dzaima 2022-12-29 22:04:06 +02:00
parent 47e95171f0
commit a0feda9d8b

View File

@ -289,12 +289,13 @@ B cell_c1(Md1D* d, B x) { B f = d->f;
return isAtm(r)? m_atomUnit(r) : r; return isAtm(r)? m_atomUnit(r) : r;
} }
if (IA(x)!=0 && isFun(f)) { if (isFun(f)) {
if (IA(x)!=0) {
u8 rtid = v(f)->flags-1; u8 rtid = v(f)->flags-1;
ur xr = RNK(x); ur xr = RNK(x);
if (rtid==n_lt && xr>1) return toCells(x); if (rtid==n_lt && xr>1) return toCells(x);
if (rtid==n_select && xr>1) return select_cells(0, x, xr); if (rtid==n_select && xr>1) return select_cells(0, x, xr);
if (rtid==n_couple && xr>0) { if (rtid==n_couple) {
ShArr* rsh = m_shArr(xr+1); ShArr* rsh = m_shArr(xr+1);
usz* xsh = SH(x); usz* xsh = SH(x);
rsh->a[0] = xsh[0]; rsh->a[0] = xsh[0];
@ -308,6 +309,13 @@ B cell_c1(Md1D* d, B x) { B f = d->f;
if (!noFill(xf)) return shift_cells(xf, x, TI(x,elType), rtid); if (!noFill(xf)) return shift_cells(xf, x, TI(x,elType), rtid);
} }
} }
} else if (!isMd(f)) {
usz cam = SH(x)[0];
decG(x);
B fv = inc(f);
if (!isAtm(fv)) fv = m_unit(fv);
return C2(shape, m_f64(cam), fv);
}
usz cam = SH(x)[0]; usz cam = SH(x)[0];
if (cam==0) { if (cam==0) {