def sum_result

bendtorch-core@0.1.0.0 · src/autograd/tensor_backward_PROOF.bend:445

import bendtorch-core@0.1.0.0/src/autograd/tensor_backward_PROOF.bend as TensorBackwardPROOF
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/autograd/broadcast.bend as Broadcast
import bendtorch-core@0.1.0.0/src/autograd/broadcast_pointwise_LAWS.bend as BroadcastPointwise
import bendtorch-core@0.1.0.0/src/autograd/tensor_backward.bend as Backward
import bendtorch-core@0.1.0.0/src/autograd/tensor_backward_LAWS.bend as Laws

445def sum_result(+a: Nat, +input: Shape.Shape, -shape: Shape.Shape, -cell: Nat -> F32, -word: U32 -> F32, -owner: Core.Dynamic,
446  result: Result<&2, &1, Broadcast.Error, Core.Dynamic>,
447  contract: BroadcastPointwise.BroadcastToContract<input, shape, cell, word, (owner, result)>) ->
448  Laws.SoleContract<a, input, cell, Backward.expanded(a, input, (owner, result))>:
449  match result:
450    case Fail{error}:
451      BroadcastPointwise.BroadcastToContract{successful, dimensions, value, kept} = contract
452      Empty.absurd(Laws.SoleContract<a, input, cell, Backward.expanded(a, input, (owner, Fail{error}))>, false_true(successful))
453    case Done{Core.Packed{output, tensor}}:
454      BroadcastPointwise.BroadcastToContract{successful, dimensions, value, kept} = contract
455      Laws.SoleContract{{==}, dimensions, value}

Uses (13)

Used by (1)