def dot_right_status
bendtorch-core@0.1.0.0 · src/tensor/matmul_PROOF.bend:719
import bendtorch-core@0.1.0.0/src/tensor/matmul_PROOF.bend as MatmulPROOF
import Base
import bendtorch-core@0.1.0.0/src/shape/core.bend as Shape
import bendtorch-core@0.1.0.0/src/tensor/core.bend as Core
import bendtorch-core@0.1.0.0/src/tensor/matmul.bend as Matrix
import bendtorch-core@0.1.0.0/src/tensor/math_totality.bend as Totality
import bendtorch-core@0.1.0.0/src/tensor/transform_totality.bend as TransformTotality
import bendtorch-core@0.1.0.0/src/storage/arith.bend as Arith
719def dot_right_status(+fuel: Nat, +left: Shape.Shape, +right: Shape.Shape, +row: U32, +column: U32, +cursor: Nat,
720 +left_value: F32, +accumulator: F32,
721 pair: Core.Tensor<right> & Result<&2, &2, Core.Error, F32>, a: Core.Tensor<left>,
722 -successful: {TransformTotality.read_succeeded(right, pair) == True{} : Bool},
723 -rec: @a: Core.Tensor<left> -> @b: Core.Tensor<right> -> @+value: F32 -> Totality.Status<Matrix.Error, Core.Tensor<left> & Core.Tensor<right> & F32,
724 Matrix.natural_dot(fuel, left, right, a, b, row, column, 1n+cursor, value)>) ->
725 Totality.Status<Matrix.Error, Core.Tensor<left> & Core.Tensor<right> & F32, Matrix.right_read(left, right,
726 a => b => value => Matrix.natural_dot(fuel, left, right, a, b, row, column, 1n+cursor, value), a, left_value, accumulator, pair)>:
727 (b, result) = pair
728 match result:
729 case Fail{error}:
730 Totality.Status{Empty.absurd({False{} == True{} : Bool}, Arith.clash(successful))}
731 case Done{+value}:
732 Totality.Status{{\{Totality.Status: successful => successful} :
733 Totality.Status<Matrix.Error, Core.Tensor<left> & Core.Tensor<right> & F32,
734 Matrix.natural_dot(fuel, left, right, a, b, row, column, 1n+cursor, F32.add(accumulator, F32.mul(left_value, value)))> ->
735 {Result.is_done(&2, &1, Matrix.Error, Core.Tensor<left> & Core.Tensor<right> & F32,
736 Matrix.natural_dot(fuel, left, right, a, b, row, column, 1n+cursor, F32.add(accumulator, F32.mul(left_value, value)))) == True{} : Bool}}(
737 rec(a, b, F32.add(accumulator, F32.mul(left_value, value))))}