Division-free arithmetic programs over a field and their operation counts.
def
MatrixMultiplicationAllFields.MatrixMultiplication.Arithmetic.padSource
{F : Type u_1}
[Field F]
{a b c A B C : ℕ}
:
MatrixInput A B C → MatrixInput a b c ⊕ F
Route a padded input position to its original entry or the scalar zero.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
MatrixMultiplicationAllFields.MatrixMultiplication.Arithmetic.padSource_eval
{F : Type u_1}
[Field F]
{a b c A B C : ℕ}
(M : Matrix (Fin a) (Fin b) F)
(N : Matrix (Fin b) (Fin c) F)
:
(fun (x : MatrixInput A B C) => Sum.elim (matrixInputs M N) id (padSource x)) = matrixInputs (zeroPadMatrix A B M) (zeroPadMatrix B C N)
def
MatrixMultiplicationAllFields.MatrixMultiplication.Arithmetic.MatrixAlgorithm.pad
{F : Type u_1}
[Field F]
{a b c A B C : ℕ}
(ha : a ≤ A)
(_hb : b ≤ B)
(hc : c ≤ C)
(P : MatrixAlgorithm F A B C)
:
MatrixAlgorithm F a b c
Run a larger matrix algorithm on zero-padded inputs and retain the requested outputs.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
MatrixMultiplicationAllFields.MatrixMultiplication.Arithmetic.RectangularAdmissibleExponent.mono_aspect
{F : Type u_1}
[Field F]
{k l τ : ℝ}
(h : RectangularAdmissibleExponent F l τ)
(hkl : k ≤ l)
: