def SlotKept

bendtorch-core@0.1.0.0 · src/autograd/gradient_LAWS.bend:53

import bendtorch-core@0.1.0.0/src/autograd/gradient_LAWS.bend as GradientLAWS
import Base
import bendtorch-core@0.1.0.0/src/tensor/core.bend as Core
import bendtorch-core@0.1.0.0/src/tensor/elementwise_totality.bend as Totality
import bendtorch-core@0.1.0.0/src/autograd/gradient.bend as Gradient

53def SlotKept(before: Gradient.Slot, after: Gradient.Slot) -> Type:
54  match before:
55    case Gradient.Unset{}:
56      {held_dimensions(after) == None{} : Maybe<&2, List<&2, U32>>}
57    case Gradient.Held{gradient}:
58      {held_dimensions(after) == Some{Totality.dimensions(gradient)} : Maybe<&2, List<&2, U32>>} &
59        (@+index: U32 -> {held_observe(after, index) == Core.checked_observe_dynamic(gradient, index) : Maybe<&2, F32>})

Uses (10)

Used by (3)