def MatT.transpose
bend-tensors@0.0.0.2 · bend_tensors.bend:796
import bend-tensors@0.0.0.2/bend_tensors.bend as BendTensors
import Base
796def MatT.transpose(+r: Nat, +c: Nat, m: MatT(r, c)) -> MatT(c, r):
797 match r c:
798 case 0n 0n:
799 MatB{b} = m
800 MatB{Blk.transpose(b)}
801 case 1n+p 0n:
802 MatR{t, b} = m
803 x y = MatT.transpose(p, 0n, t) MatT.transpose(p, 0n, b)
804 MatC{x, y}
805 case 0n 1n+q:
806 MatC{l, r2} = m
807 x y = MatT.transpose(0n, q, l) MatT.transpose(0n, q, r2)
808 MatR{x, y}
809 case 1n+p 1n+q:
810 MatQ{a, b, c2, d} = m
811 w x y z = MatT.transpose(p, q, a) MatT.transpose(p, q, c2) MatT.transpose(p, q, b) MatT.transpose(p, q, d)
812 MatQ{w, x, y, z}