def blocks2
bend-ml-tensor-fork@0.1.6.0 · main.bend:58
import bend-ml-tensor-fork@0.1.6.0/main.bend as BendMlTensorFork
import Base
58def blocks2(~E: Data, ~A: Type, ~B: Type, ~f: @+e: E -> @+i0: U32 -> @+cnt: Nat -> B2<A, B> -> B2<A, B>, +e: E, d: Nat, +i0: U32, +cnt: Nat, pa: Array<A> & Array<A>, pb: Array<B> & Array<B>) -> B2<A, B>:
59 match d pa pb:
60 case 0n Tuple{a, a2} Tuple{b, b2}:
61 f(e, i0, cnt, B2{a, b})
62 case 1n++q Tuple{a, a2} Tuple{b, b2}:
63 l r = blocks2(~E, ~A, ~B, ~f, e, q, i0, Nat.div(cnt, 2n), Array.fork(A, a), Array.fork(B, b)) blocks2(~E, ~A, ~B, ~f, e, q, (i0 + U32.from_nat(Nat.div(cnt, 2n)) : U32), Nat.sub(cnt, Nat.div(cnt, 2n)), Array.fork(A, a2), Array.fork(B, b2))
64 join2(A, B, l, r)
65
66@unsafe