Circulant matrices #
This file contains the definition and basic results about circulant matrices.
Given a vector v : n → α indexed by a type that is endowed with subtraction,
Matrix.circulant v is the matrix whose (i, j)th entry is v (i - j).
Main results #
Matrix.circulant: the circulant matrix generated by a given vectorv : n → α.Matrix.circulant_mul: the product of two circulant matricescirculant vandcirculant wis the circulant matrix generated bycirculant v *ᵥ w.Matrix.circulant_mul_comm: multiplication of circulant matrices commutes when the elements do.
Implementation notes #
Matrix.Fin.foo is the Fin n version of Matrix.foo.
Namely, the index type of the circulant matrices in discussion is Fin n.
Tags #
circulant, matrix
theorem
Matrix.Fin.circulant_injective
{α : Type u_1}
(n : ℕ)
:
Function.Injective fun (v : Fin n → α) => circulant v
theorem
Matrix.circulant_mul_comm
{α : Type u_1}
{n : Type u_3}
[CommSemigroup α]
[AddCommMonoid α]
[Fintype n]
[AddCommGroup n]
(v w : n → α)
:
Multiplication of circulant matrices commutes when the elements do.
theorem
Matrix.Fin.circulant_mul_comm
{α : Type u_1}
[CommSemigroup α]
[AddCommMonoid α]
{n : ℕ}
(v w : Fin n → α)
: