def row_run

bendtorch-core@0.1.0.0 · src/tensor/matmul.bend:546

import bendtorch-core@0.1.0.0/src/tensor/matmul.bend as Matmul
import Base

546# The fuel + 1 terms of the eight cells from the one whose words sit at
547# offsets lp (left) and r0 .. r7 (right), read already, as `product_run`
548# runs one cell.
549def row_run(fuel: Nat, +ls: Nat, +rs: Nat, +lp: Nat, +r0: Nat, +r1: Nat, +r2: Nat, +r3: Nat, +r4: Nat, +r5: Nat, +r6: Nat, +r7: Nat, +acc: Eight,
550  left: Array<F32> & F32, right: Array<F32> & Eight) -> Eight & (Array<F32> & Array<F32>):
551  match fuel left right:
552    case 0n Tuple{la, +x} Tuple{ra, +ys}:
553      (eight_terms(acc, x, ys), (la, ra))
554    case 1n+rest Tuple{la, +x} Tuple{ra, +ys}:
555      row_run(rest, ls, rs, Nat.add(ls, lp), Nat.add(rs, r0), Nat.add(rs, r1), Nat.add(rs, r2), Nat.add(rs, r3), Nat.add(rs, r4), Nat.add(rs, r5), Nat.add(rs, r6), Nat.add(rs, r7), eight_terms(acc, x, ys),
556        Array.get(F32, la, U32.from_nat(Nat.add(ls, lp))), read_eight(ra, Nat.add(rs, r0), Nat.add(rs, r1), Nat.add(rs, r2), Nat.add(rs, r3), Nat.add(rs, r4), Nat.add(rs, r5), Nat.add(rs, r6), Nat.add(rs, r7)))

Uses (11)

Used by (6)