def MatT.sum_rows

bend-tensors@0.0.0.2 · bend_tensors.bend:942

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

942# each row's sum: VecT(r)
943def MatT.sum_rows(+r: Nat, +c: Nat, m: MatT(r, c)) -> VecT(r):
944  match r c:
945    case 0n 0n:
946      MatB{b} = m
947      VecL{Blk.sum_rows(b)}
948    case 1n+p 0n:
949      MatR{t, b} = m
950      x y = MatT.sum_rows(p, 0n, t) MatT.sum_rows(p, 0n, b)
951      VecN{x, y}
952    case 0n 1n+q:
953      MatC{l, r2} = m
954      x y = MatT.sum_rows(0n, q, l) MatT.sum_rows(0n, q, r2)
955      VecT.add(0n, x, y)
956    case 1n+p 1n+q:
957      MatQ{a, b, c2, d} = m
958      p0 q0 p1 q1 = MatT.sum_rows(p, q, a) MatT.sum_rows(p, q, b) MatT.sum_rows(p, q, c2) MatT.sum_rows(p, q, d)
959      VecT.add2(p, p0, q0, p1, q1)

Uses (12)

Used by (2)