def step_target_info

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

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
import bendtorch-core@0.1.0.0/src/tensor/core_PROOF.bend as CoreProof

569def step_target_info(+input: Shape.Shape, +axes: List<&2, U32>, +plan: Layout.Plan<input, axes>, +index: U32,
570  -original_source: Core.Tensor<input>, -original_target: Core.Tensor<Layout.output(input, axes, plan)>,
571  +mapping: Layout.Mapping<input, axes, plan, index>, +value: F32,
572  -map_exact: {Done{mapping} == Layout.map_index(input, axes, plan, index) : Result<&2, &2, Layout.Error, Layout.Mapping<input, axes, plan, index>>},
573  target_info: TargetInfo<Layout.output(input, axes, plan), original_target, index, value>, retained: Core.Tensor<input>,
574  lift: @-pair: Core.Tensor<input> & Result<&2, &1, Transforms.Error, Core.Tensor<Layout.output(input, axes, plan)>> ->
575    {pair == Transforms.copy_written(input, axes, plan, source => target => (source, Done{target}), retained,
576      Core.write_flat(Layout.output(input, axes, plan), original_target, index, value)) :
577        Core.Tensor<input> & Result<&2, &1, Transforms.Error, Core.Tensor<Layout.output(input, axes, plan)>>} ->
578    {pair == Transforms.copy_step(input, axes, plan, original_source, original_target, index) :
579      Core.Tensor<input> & Result<&2, &1, Transforms.Error, Core.Tensor<Layout.output(input, axes, plan)>>},
580  -read_exact: {(retained, Done{value}) == Core.read_flat(input, original_source, Layout.source_index(input, axes, plan, index, mapping)) :
581    Core.Tensor<input> & Result<&2, &2, Core.Error, F32>}) -> Transforms.StepCertificate<input, axes, plan, index, original_source, original_target>:
582  TargetInfo{owner, same, model} = target_info
583  step_write_certificate(input, axes, plan, index, original_source, original_target, mapping, value, map_exact,
584    CoreProof.write_original(Layout.output(input, axes, plan), original_target, owner, index, value, same,
585      Core.write_certificate(Layout.output(input, axes, plan), owner, index, value)), retained, lift, read_exact,
586    Core.source_read_model(input, original_source, Layout.source_index(input, axes, plan, index, mapping)),
587    Core.source_read_keeps(input, original_source, Layout.source_index(input, axes, plan, index, mapping)), model)

Uses (27)

Used by (1)