def dot_run

bendtorch-core@0.1.0.0 · src/tensor/matmul_parallel_proof.bend:141

import bendtorch-core@0.1.0.0/src/tensor/matmul_parallel_proof.bend as MatmulParallelProof
import Base
import bendtorch-core@0.1.0.0/src/storage/model.bend as Model
import bendtorch-core@0.1.0.0/src/tensor/matmul.bend as Matrix
import bendtorch-core@0.1.0.0/src/tensor/elementwise_parallel_proof.bend as Parallel

141def dot_run(fuel: Nat, +dl: Nat, +dr: Nat, -A: Array<F32>, -B: Array<F32>, +inner: Nat, +columns: Nat,
142  +row: Nat, +column: Nat, +cursor: Nat, -accumulator: F32, la: Array<F32>, ra: Array<F32>,
143  -el: {la == A : Array<F32>}, -er: {ra == B : Array<F32>},
144  -left_valid: Model.Balanced(F32, dl, A), -right_valid: Model.Balanced(F32, dr, B)) ->
145  Parallel.Fact<DotRun<fuel, dl, dr, A, B, inner, columns, row, column, cursor, accumulator, Matrix.cell_dot(fuel, inner, columns, row, column, cursor, accumulator, la, ra)>>:
146  match fuel:
147    case 0n:
148      Parallel.Fact{DotRun{Nil{}, Unit{}, {==}, el, er}}
149    case 1n+rest:
150      run_eq(rest, dl, dr, A, B, inner, columns, row, column, cursor, accumulator, la, ra, el, er, left_valid, right_valid,
151        Array.get(F32, la, Matrix.left_index(inner, row, cursor)), {==}, Array.get(F32, ra, Matrix.right_index(columns, column, cursor)), {==})

Uses (13)

Used by (2)