Division-free arithmetic programs over a field and their operation counts.
def
MatrixMultiplicationAllFields.MatrixMultiplication.Arithmetic.Expression.sumFin
{F : Type u_1}
[Field F]
{Input : Type u_2}
{n : ℕ}
:
(Fin n → Expression F Input) → Expression F Input
Build an arithmetic expression for a finite sum, with zero as the empty sum.
Equations
- One or more equations did not get rendered due to their size.
- MatrixMultiplicationAllFields.MatrixMultiplication.Arithmetic.Expression.sumFin x_2 = MatrixMultiplicationAllFields.MatrixMultiplication.Arithmetic.Expression.literal 0
Instances For
def
MatrixMultiplicationAllFields.MatrixMultiplication.Arithmetic.naiveEntry
{F : Type u_1}
[Field F]
{a b c : ℕ}
(i : Fin a)
(k : Fin c)
:
Expression F (MatrixInput a b c)
The schoolbook dot-product expression for one matrix-product entry.
Equations
- One or more equations did not get rendered due to their size.
Instances For
noncomputable def
MatrixMultiplicationAllFields.MatrixMultiplication.Arithmetic.naiveAlgorithm
{F : Type u_1}
[Field F]
(a b c : ℕ)
:
MatrixAlgorithm F a b c
Compile all schoolbook dot products into one matrix multiplication program.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
MatrixMultiplicationAllFields.MatrixMultiplication.Arithmetic.naiveAlgorithm_correct
{F : Type u_1}
[Field F]
(a b c : ℕ)
:
(naiveAlgorithm a b c).Correct
theorem
MatrixMultiplicationAllFields.MatrixMultiplication.Arithmetic.admissibleExponent_three
{F : Type u_1}
[Field F]
: