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>

Uses (14)

Used by (2)