type Mapping
bendtorch-core@0.1.0.0 · src/tensor/layout.bend:288
import bendtorch-core@0.1.0.0/src/tensor/layout.bend as Layout
import Base
import bendtorch-core@0.1.0.0/src/shape/core.bend as Shape
288type Mapping<-input: Shape.Shape, -axes: List<&2, U32>, -plan: Plan<input, axes>, -i: U32> is Data:
289 Mapped{output_index: FlatIndex<output(input, axes, plan)>,
290 output_coordinate: CheckedCoordinate<output(input, axes, plan)>,
291 input_coordinate: CheckedCoordinate<input>, index: FlatIndex<input>,
292 requested: {index_value(output(input, axes, plan), output_index) == i : U32},
293 decoded: {coordinate_values(output(input, axes, plan), output_coordinate) ==
294 reverse_words(unflatten_words(reverse_words(Shape.dimensions(output(input, axes, plan))), i)) : List<&2, U32>},
295 inverse: {Some{coordinate_values(input, input_coordinate)} ==
296 inverse_coordinates(Shape.dimensions(input), axes,
297 coordinate_values(output(input, axes, plan), output_coordinate), 0) : Maybe<&2, List<&2, U32>>},
298 flattened: {index_value(input, index) ==
299 flatten_words(Shape.dimensions(input), coordinate_values(input, input_coordinate), 0) : U32},
300 roundtrip: {True{} == maybe_same(reorder(coordinate_values(input, input_coordinate), axes),
301 Some{coordinate_values(output(input, axes, plan), output_coordinate)}) : Bool}}