Align toKCells with rank_c1 changes

This commit is contained in:
Marshall Lochbaum 2022-05-29 12:09:54 -04:00
parent 2c0de9ee02
commit df783d15a5

View File

@ -8,8 +8,8 @@ B toCells(B x) {
usz cam = a(x)->sh[0]; usz cam = a(x)->sh[0];
usz csz = arr_csz(x); usz csz = arr_csz(x);
BSS2A slice = TI(x,slice); BSS2A slice = TI(x,slice);
usz p = 0;
M_HARR(r, cam) M_HARR(r, cam)
usz p = 0;
if (rnk(x)==2) { if (rnk(x)==2) {
for (usz i = 0; i < cam; i++) { for (usz i = 0; i < cam; i++) {
Arr* s = slice(inc(x), p, csz); arr_shVec(s); Arr* s = slice(inc(x), p, csz); arr_shVec(s);
@ -20,7 +20,7 @@ B toCells(B x) {
usz cr = rnk(x)-1; usz cr = rnk(x)-1;
ShArr* csh = m_shArr(cr); ShArr* csh = m_shArr(cr);
usz* xsh = a(x)->sh; usz* xsh = a(x)->sh;
for (u64 i = 0; i < cr; i++) csh->a[i] = xsh[i+1]; shcpy(csh->a, xsh+1, cr);
for (usz i = 0; i < cam; i++) { for (usz i = 0; i < cam; i++) {
Arr* s = slice(inc(x), p, csz); arr_shSetI(s, cr, csh); Arr* s = slice(inc(x), p, csz); arr_shSetI(s, cr, csh);
HARR_ADD(r, i, taga(s)); HARR_ADD(r, i, taga(s));
@ -41,12 +41,12 @@ B toKCells(B x, ur k) {
ShArr* csh; ShArr* csh;
if (cr>1) { if (cr>1) {
csh = m_shArr(cr); csh = m_shArr(cr);
for (i32 i = 0; i < cr; i++) csh->a[i] = xsh[i+k]; shcpy(csh->a, xsh+k, cr);
} }
usz p = 0;
M_HARR(r, cam)
BSS2A slice = TI(x,slice); BSS2A slice = TI(x,slice);
M_HARR(r, cam);
usz p = 0;
for (usz i = 0; i < cam; i++) { for (usz i = 0; i < cam; i++) {
Arr* s = slice(inc(x), p, csz); arr_shSetI(s, cr, csh); Arr* s = slice(inc(x), p, csz); arr_shSetI(s, cr, csh);
HARR_ADD(r, i, taga(s)); HARR_ADD(r, i, taga(s));
@ -54,7 +54,7 @@ B toKCells(B x, ur k) {
} }
if (cr>1) ptr_dec(csh); if (cr>1) ptr_dec(csh);
usz* rsh = HARR_FA(r, k); usz* rsh = HARR_FA(r, k);
if (rsh) for (i32 i = 0; i < k; i++) rsh[i] = xsh[i]; if (rsh) shcpy(rsh, xsh, k);
decG(x); decG(x);
return HARR_O(r).b; return HARR_O(r).b;
} }