def project_left_ranked

bendtorch-core@0.1.0.0 · src/shape/boundary_proofs.bend:207

import bendtorch-core@0.1.0.0/src/shape/boundary_proofs.bend as BoundaryProofs
import Base
import bendtorch-core@0.1.0.0/src/shape/core.bend as Shape
import bendtorch-core@0.1.0.0/src/shape/LAWS.bend as Laws

207def project_left_ranked(+left: Shape.Shape, +right: Shape.Shape, +output: Shape.Shape, +alignment: Shape.Broadcast<Shape.extents(left), Shape.extents(right), Shape.extents(output)>, +values: List<&2, U32>, +same: Shape.BoolCase<Nat.is_eq(Shape.rank_dimensions(Shape.dimensions(output)), Shape.rank_dimensions(values))>) -> {Laws.coordinate_result(left, Shape.projection_checked.ranked(left, output, values, same)) == Laws.project_left_spec(Shape.extents(left), Shape.extents(right), Shape.extents(output), alignment, Laws.decode(Shape.extents(output), Shape.naturals(values))) : Maybe<&2, List<&2, U32>>}:
208  match same:
209    case Shape.BFalse{equal}:
210      %decode_rank(Shape.dimensions(output), values, equal) : {None{} == Laws.project_left_spec(Shape.extents(left), Shape.extents(right), Shape.extents(output), alignment, _) : Maybe<&2, List<&2, U32>>}
211      {==}
212    case Shape.BTrue{equal}:
213      project_left_fits(left, right, output, alignment, values, Shape.bool_case(Shape.fit_words(Shape.dimensions(output), values)))

Uses (19)

Used by (1)