def dot_decided

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

import bendtorch-core@0.1.0.0/src/tensor/matmul.bend as Matmul
import Base
import bendtorch-core@0.1.0.0/src/shape/core.bend as Shape
import bendtorch-core@0.1.0.0/src/storage/main.bend as Storage
import bendtorch-core@0.1.0.0/src/tensor/core.bend as Core

103def dot_decided(+left: Shape.Shape, +right: Shape.Shape,
104  rec: Core.Tensor<left> -> Core.Tensor<right> -> F32 -> Result<&2, &1, Error, Core.Tensor<left> & Core.Tensor<right> & F32>,
105  a: Core.Tensor<left>, b: Core.Tensor<right>, +row: U32, +column: U32, +cursor: Nat, +index: U32, accumulator: F32,
106  decision: Shape.BoolCase<Nat.is_eq(U32.to_nat(index), cursor)>) ->
107  Result<&2, &1, Error, Core.Tensor<left> & Core.Tensor<right> & F32>:
108  match decision:
109    case Shape.BFalse{equal}:
110      Fail{TensorError{Core.StorageError{Storage.InvalidIndex{}}}}
111    case Shape.BTrue{equal}:
112      left_read(left, right, rec, b, [index, column], accumulator, Core.read_coordinate(left, a, [row, index]))

Uses (16)

Used by (3)