def owned_observation_model
bendtorch-core@0.1.0.0 · src/tensor/core.bend:161
import bendtorch-core@0.1.0.0/src/tensor/core.bend as Core
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/storage/model.bend as Model
import bendtorch-core@0.1.0.0/src/tensor/lifecycle.bend as Lifecycle
161def owned_observation_model(-shape: Shape.Shape, +depth: Nat, +length: Nat, -array: Array<F32>, +index: U32,
162 -balanced: Model.Balanced(F32, depth, array), -valid: {Storage.bounds(depth, length) == True{} : Bool},
163 -exact: {length == Shape.logical_numel(Shape.dimensions(shape)) : Nat},
164 -checked: {Storage.index_matches(depth, length, index) == True{} : Bool},
165 certificate: Lifecycle.ArrayObservationModel<depth, length, array, index, checked>) ->
166 ObservationModel<shape, TTensor{Storage.Owned{depth, length, array, balanced, valid}, exact}, index, checked>:
167 Lifecycle.ArrayObservationModel{equal} = certificate
168 ObservationModel{equal}