def plan_left_rank

bendtorch-core@0.1.0.0 · src/tensor/matmul_PROOF.bend:1135

import bendtorch-core@0.1.0.0/src/tensor/matmul_PROOF.bend as MatmulPROOF
import Base
import bendtorch-core@0.1.0.0/src/shape/core.bend as Shape
import bendtorch-core@0.1.0.0/src/tensor/matmul.bend as Matrix

1135def plan_left_rank(+left: Shape.Shape, +right: Shape.Shape, +dims: List<&2, U32>,
1136  -same: {dims == Shape.dimensions(left) : List<&2, U32>},
1137  not_matrix: {Shape.rank_dimensions(dims) != 2n : Nat}) ->
1138  {Matrix.plan_left(left, right, dims, same) == Fail{Matrix.RankMismatch{}} : Result<&2, &2, Matrix.Error, Matrix.Plan<left, right>>}:
1139  match dims:
1140    case Nil{}:
1141      {==}
1142    case +x <> Nil{}:
1143      {==}
1144    case +rows <> +inner <> Nil{}:
1145      Empty.absurd({Matrix.plan_left(left, right, [rows, inner], same) == Fail{Matrix.RankMismatch{}} : Result<&2, &2, Matrix.Error, Matrix.Plan<left, right>>},
1146        not_matrix({==}))
1147    case +x <> +y <> +z <> +t:
1148      {==}

Uses (12)

Used by (1)