def MatT.scale_rows
bend-tensors@0.0.0.2 · bend_tensors.bend:1047
import bend-tensors@0.0.0.2/bend_tensors.bend as BendTensors
import Base
1047
1048def MatT.scale_rows(+r: Nat, +c: Nat, m: MatT(r, c), +v: VecT(r)) -> MatT(r, c):
1049 match r c:
1050 case 0n 0n:
1051 MatB{b} = m
1052 VecL{x} = v
1053 MatB{Blk.scale_rows(b, x)}
1054 case 1n+p 0n:
1055 MatR{t, b} = m
1056 VecN{vt, vb} = v
1057 x y = MatT.scale_rows(p, 0n, t, vt) MatT.scale_rows(p, 0n, b, vb)
1058 MatR{x, y}
1059 case 0n 1n+q:
1060 MatC{l, r2} = m
1061 x y = MatT.scale_rows(0n, q, l, v) MatT.scale_rows(0n, q, r2, v)
1062 MatC{x, y}
1063 case 1n+p 1n+q:
1064 MatQ{a, b, c2, d} = m
1065 VecN{vt, vb} = v
1066 w x y z = MatT.scale_rows(p, q, a, vt) MatT.scale_rows(p, q, b, vt) MatT.scale_rows(p, q, c2, vb) MatT.scale_rows(p, q, d, vb)
1067 MatQ{w, x, y, z}