def product_dot

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

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

446# The terms k = cursor .. cursor + fuel - 1 of cell (row, column) of a
447# rows x columns product, added to `accumulator`: the run from term cursor,
448# whose offsets step by each operand's stride.
449def product_dot(fuel: Nat, +lo: Order, +ro: Order, +inner: Nat, +rows: Nat, +columns: Nat, +row: Nat, +column: Nat,
450  +cursor: Nat, accumulator: F32, la: Array<F32>, ra: Array<F32>) -> F32 & (Array<F32> & Array<F32>):
451  match fuel:
452    case 0n:
453      (accumulator, (la, ra))
454    case 1n+rest:
455      product_run(rest, stride(lo, rows), stride(ro, columns), read_offset(lo, inner, rows, row, cursor),
456        read_offset(ro, inner, columns, column, cursor), accumulator,
457        Array.get(F32, la, read_index(lo, inner, rows, row, cursor)), Array.get(F32, ra, read_index(ro, inner, columns, column, cursor)))

Uses (11)

Used by (2)