def product_decided

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

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

180def product_decided(+left: Shape.Shape, +right: Shape.Shape, +output: Shape.Shape,
181  rec: Core.Tensor<left> -> Core.Tensor<right> -> Core.Tensor<output> ->
182    Result<&2, &1, Error, Core.Tensor<left> & Core.Tensor<right> & Core.Tensor<output>>,
183  +inner: U32, +columns: U32, a: Core.Tensor<left>, b: Core.Tensor<right>, out: Core.Tensor<output>, +cursor: Nat, +index: U32,
184  decision: Shape.BoolCase<Nat.is_eq(U32.to_nat(index), cursor)>) ->
185  Result<&2, &1, Error, Core.Tensor<left> & Core.Tensor<right> & Core.Tensor<output>>:
186  match decision:
187    case Shape.BFalse{equal}:
188      Fail{TensorError{Core.StorageError{Storage.InvalidIndex{}}}}
189    case Shape.BTrue{equal}:
190      product_unflattened(left, right, output, rec, inner, a, b, out, index, Shape.unflatten_checked(output, index))

Uses (14)

Used by (3)