def step_frame

bendtorch-core@0.1.0.0 · src/tensor/transform_PROOF.bend:799

import bendtorch-core@0.1.0.0/src/tensor/transform_PROOF.bend as TransformPROOF
import Base
import bendtorch-core@0.1.0.0/src/shape/core.bend as Shape
import bendtorch-core@0.1.0.0/src/tensor/layout.bend as Layout
import bendtorch-core@0.1.0.0/src/tensor/core.bend as Core
import bendtorch-core@0.1.0.0/src/tensor/transforms.bend as Transforms

799def step_frame(-input: Shape.Shape, -axes: List<&2, U32>, -plan: Layout.Plan<input, axes>, -index: U32,
800  -before_source: Core.Tensor<input>, -before_target: Core.Tensor<Layout.output(input, axes, plan)>,
801  -after_source: Core.Tensor<input>, -after_target: Core.Tensor<Layout.output(input, axes, plan)>,
802  meaning: Transforms.StepMeaning(input, axes, plan, index, before_source, before_target, (after_source, Done{after_target}))) ->
803  @+other: U32 -> @checked: Core.ObservationChecked(Core.Packed{Layout.output(input, axes, plan), before_target}, other) ->
804    @different: {Nat.is_eq(U32.to_nat(index), U32.to_nat(other)) == False{} : Bool} ->
805      Core.ObservationChecked(Core.Packed{Layout.output(input, axes, plan), after_target}, other) &
806        {Core.checked_observe(Layout.output(input, axes, plan), after_target, other) ==
807          Core.checked_observe(Layout.output(input, axes, plan), before_target, other) : Maybe<&2, F32>}:
808  (kept, rest) = meaning
809  (checked, values) = rest
810  (observed, frame) = values
811  frame

Uses (18)

Used by (1)