diff --git a/src/builtins/transpose.c b/src/builtins/transpose.c index 9cdd0848..b8983bfd 100644 --- a/src/builtins/transpose.c +++ b/src/builtins/transpose.c @@ -160,9 +160,9 @@ B interleave_cells(B w, B x, ur xr, ur xk, usz* xsh) { // consumes w,x #endif } else { generic:; MAKE_MUT_INIT(rm, ia, re); MUTG_INIT(rm); - for (ux o = 0; o < n; o+= csz) { - mut_copyG(rm, o*2, w, o, csz); - mut_copyG(rm, o*2+1, x, o, csz); + for (ux o = 0; o < n*csz; o+= csz) { + mut_copyG(rm, o*2, w, o, csz); + mut_copyG(rm, o*2+csz, x, o, csz); } r = a(mut_fv(rm)); goto add_fill; diff --git a/test/cases/cells.bqn b/test/cases/cells.bqn index c42daf6e..fa433e72 100644 --- a/test/cases/cells.bqn +++ b/test/cases/cells.bqn @@ -123,6 +123,7 @@ %USE eqvar ⋄ ≍˘⟜ 1 _eqvar 100⥊7↑1 %% 100‿2⥊ ( 2|↕200) ⌈ 2/0=7|↕100 %USE eqvar ⋄ ≍˘⟜1e9 _eqvar 100⥊7↑1 %% 100‿2⥊ (1e9× 2|↕200) ⌈ 2/0=7|↕100 %USE eqvar ⋄ ≍˘⟜'!' _eqvar 100⥊7↑1 %% ∾⟜'!'○•internal.Keep˘ 0=7|↕100 +%USE eqvar ⋄ ≍˘_eqvar˜ 3‿3⥊↕9 %% 3‿2‿3⥊0‿1‿2‿0‿1‿2‿3‿4‿5‿3‿4‿5‿6‿7‿8‿6‿7‿8 ( %USE IS_HEAPVERIFY