def moved_lift

bendtorch-core@0.1.0.0 · src/tensor/from_values_contract.bend:209

import bendtorch-core@0.1.0.0/src/tensor/from_values_contract.bend as FromValuesContract
import Base
import bendtorch-core@0.1.0.0/src/shape/core.bend as Shape
import bendtorch-core@0.1.0.0/src/storage/main.bend as Storage
import bendtorch-core@0.1.0.0/src/tensor/core.bend as Core
import bendtorch-core@0.1.0.0/src/tensor/lifecycle.bend as Lifecycle

209def moved_lift(+shape: Shape.Shape, -rest: List<&2, F32>, +cursor: Nat, -source: Storage.Storage, -target: Storage.Storage,
210  moved: {source == target : Storage.Storage}, -P: Result<&2, &1, Core.Error, Core.Tensor<shape>> -> Type,
211  next: @-valid: {Lifecycle.logical_length(source) == Shape.logical_numel(Shape.dimensions(shape)) : Nat} ->
212    P(Core.fill_values(rest, shape, Core.TTensor{source, valid}, 1n+cursor))) ->
213  @-valid: {Lifecycle.logical_length(target) == Shape.logical_numel(Shape.dimensions(shape)) : Nat} ->
214    P(Core.fill_values(rest, shape, Core.TTensor{target, valid}, 1n+cursor)):
215  %moved : (@-valid: {Lifecycle.logical_length(_) == Shape.logical_numel(Shape.dimensions(shape)) : Nat} ->
216    P(Core.fill_values(rest, shape, Core.TTensor{_, valid}, 1n+cursor)))
217  next

Uses (12)

Used by (1)