TensorBackwardLAWS.targets: def of bendtorch-core@0.1.0.0 Import: import bendtorch-core@0.1.0.0/src/autograd/tensor_backward_LAWS.bend as TensorBackwardLAWS Lines 37-73 of bendtorch-core@0.1.0.0/src/autograd/tensor_backward_LAWS.bend: https://jend.leeeet.dev/read.txt?path=bendtorch-core@0.1.0.0/src/autograd/tensor_backward_LAWS.bend&start_line=37&end_line=73 import Base import bendtorch-core@0.1.0.0/src/autograd/tensor_backward.bend as Backward # Operand bounds, stated without the engine's validator: a node may name only # nodes older than itself, so each operand id must be below the number of # older nodes. def targets(node: Backward.Node) -> List<&2, Nat>: match node: case Backward.Leaf{}: [] case Backward.Add{a, b, left, right}: [a, b] case Backward.Sub{a, b, left, right}: [a, b] case Backward.Mul{a, b, left, right}: [a, b] case Backward.Sum{a, input}: [a] case Backward.SumDims{a, input, kept}: [a] case Backward.Matmul{a, b, left, right}: [a, b] case Backward.MatmulNT{a, b, left, right}: [a, b] case Backward.Relu{a, input}: [a] case Backward.MseLoss{a, b, left, right}: [a, b] case Backward.CrossEntropy{a, input}: [a] case Backward.BatchedMatmul{a, b, left, right}: [a, b] case Backward.Slice{a, input, kept, plan}: [a] case Backward.Gathered{a, input, plan, entries}: [a] case Backward.Constant{}: [] case Backward.Frozen{id, inner}: targets(inner) Uses (3): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat https://jend.leeeet.dev/definition.txt?path=bendtorch-core@0.1.0.0/src/autograd/tensor_backward.bend&name=Node