def MatT.zip

bend-tensors@0.0.0.2 · bend_tensors.bend:743

import bend-tensors@0.0.0.2/bend_tensors.bend as BendTensors
import Base

743def MatT.zip(~f: F32 -> F32 -> F32, +r: Nat, +c: Nat, m: MatT(r, c), n: MatT(r, c)) -> MatT(r, c):
744  match r c:
745    case 0n 0n:
746      MatB{x} = m
747      MatB{y} = n
748      MatB{Blk.zip(~f, x, y)}
749    case 1n+p 0n:
750      MatR{mt, mb} = m
751      MatR{nt, nb} = n
752      x y = MatT.zip(~f, p, 0n, mt, nt) MatT.zip(~f, p, 0n, mb, nb)
753      MatR{x, y}
754    case 0n 1n+q:
755      MatC{ml, mr} = m
756      MatC{nl, nr} = n
757      x y = MatT.zip(~f, 0n, q, ml, nl) MatT.zip(~f, 0n, q, mr, nr)
758      MatC{x, y}
759    case 1n+p 1n+q:
760      MatQ{ma, mb, mc, md} = m
761      MatQ{na, nb, nc, nd} = n
762      w x y z = MatT.zip(~f, p, q, ma, na) MatT.zip(~f, p, q, mb, nb) MatT.zip(~f, p, q, mc, nc) MatT.zip(~f, p, q, md, nd)
763      MatQ{w, x, y, z}

Uses (8)

Used by (4)