def lsmb_rows

bendtorch@1.3.0.0 · main.bend:1515

import bendtorch@1.3.0.0/main.bend as Bendtorch
import Base

1515# dx = dy - exp(y) * sum(dy), row after row, in place over dy
1516def lsmb_rows(left: Nat, +i: U32, +c: Nat, st: A2) -> A2:
1517  match left st:
1518    case 0n A2{d, y}:
1519      lsmb_row(c, (i * U32.from_nat(c) : U32), y, asum(Nat.sub(c, 1n), (i * U32.from_nat(c) : U32), 0.0, Array.get(F32, d, (i * U32.from_nat(c) : U32))))
1520    case 1n+q A2{d, y}:
1521      lsmb_rows(q, (i + 1 : U32), c, lsmb_row(c, (i * U32.from_nat(c) : U32), y, asum(Nat.sub(c, 1n), (i * U32.from_nat(c) : U32), 0.0, Array.get(F32, d, (i * U32.from_nat(c) : U32)))))

Uses (11)

Used by (1)