def FrozenGoal
bendtorch-core@0.1.0.0 · src/autograd/tensor_vjp_PROOF.bend:820
import bendtorch-core@0.1.0.0/src/autograd/tensor_vjp_PROOF.bend as TensorVjpPROOF
import Base
import bendtorch-core@0.1.0.0/src/shape/core.bend as Shape
import bendtorch-core@0.1.0.0/src/storage/LAWS.bend as StorageLaws
import bendtorch-core@0.1.0.0/src/tensor/contracts/LAWS.bend as Contracts
import bendtorch-core@0.1.0.0/src/autograd/tensor_backward.bend as Backward
import bendtorch-core@0.1.0.0/src/autograd/tensor_vjp_LAWS.bend as Laws
import bendtorch-core@0.1.0.0/src/tensor/matmul.bend as Matrix
import bendtorch-core@0.1.0.0/src/tensor/dot_fold.bend as DotFold
820def FrozenGoal(+b: Nat, +left: Shape.Shape, +right: Shape.Shape, +shape: Shape.Shape,
821 +second: Matrix.Product<Matrix.Swapped{}, Matrix.Swapped{}, shape, left>,
822 +fill: F32, +ops: List<&2, StorageLaws.Op>, +left_fill: F32, +left_ops: List<&2, StorageLaws.Op>, pass: Backward.Pass) -> Type:
823 Laws.MatmulSoleContract<b, right,
824 Contracts.product_rows(Matrix.Swapped{}, Matrix.Swapped{}, shape, left, second),
825 Contracts.product_columns(Matrix.Swapped{}, Matrix.Swapped{}, shape, left, second),
826 row => column => DotFold.dot_fold(Contracts.product_factors(row, column, Matrix.Swapped{}, Matrix.Swapped{},
827 Contracts.product_inner(Matrix.Swapped{}, Matrix.Swapped{}, shape, left, second),
828 Contracts.product_rows(Matrix.Swapped{}, Matrix.Swapped{}, shape, left, second),
829 Contracts.product_columns(Matrix.Swapped{}, Matrix.Swapped{}, shape, left, second),
830 shape, fill, ops, left, left_fill, left_ops, Contracts.product_inner(Matrix.Swapped{}, Matrix.Swapped{}, shape, left, second)), 0.0),
831 pass>