def MatT.to_rows

bend-tensors@0.0.0.2 · bend_tensors.bend:1138

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

1138# the rows of a MatT(r, c), row-major
1139def MatT.to_rows(+r: Nat, +c: Nat, m: MatT(r, c)) -> List<&2, List<&2, F32>>:
1140  match r c:
1141    case 0n 0n:
1142      MatB{b} = m
1143      Blk{a00, a01, a02, a03, a10, a11, a12, a13, a20, a21, a22, a23, a30, a31, a32, a33} = b
1144      [[a00, a01, a02, a03], [a10, a11, a12, a13], [a20, a21, a22, a23], [a30, a31, a32, a33]]
1145    case 1n+p 0n:
1146      MatR{t, b} = m
1147      List.append(&2, List<&2, F32>, MatT.to_rows(p, 0n, t), MatT.to_rows(p, 0n, b))
1148    case 0n 1n+q:
1149      MatC{l, r2} = m
1150      MatT.rows_cat(MatT.to_rows(0n, q, l), MatT.to_rows(0n, q, r2))
1151    case 1n+p 1n+q:
1152      MatQ{a, b, c2, d} = m
1153      List.append(&2, List<&2, F32>, MatT.rows_cat(MatT.to_rows(p, q, a), MatT.to_rows(p, q, b)), MatT.rows_cat(MatT.to_rows(p, q, c2), MatT.to_rows(p, q, d)))

Uses (11)

Used by (3)