Toeplitz Matrices #
This module defines Toeplitz matrices, i.e., matrices with constant diagonals.
Equations
The type of (finite-size) Toeplitz matrices
Equations
- ToeplitzMatrix m n α = { M : Matrix (Fin m) (Fin n) α // M.IsToeplitz }
Instances For
The type of binary Toeplitz matrices, equipped with a Fintype instance.
Equations
- BinToeplitzMatrix m n = ToeplitzMatrix m n (ZMod 2)
Instances For
Extract the defining parameters (diagonal entries) of a Toeplitz matrix.
Instances For
Construct a Toeplitz matrix from its defining parameters (diagonal entries).
Equations
Instances For
A Toeplitz matrix is uniquely represented by a parameter vector (containing diagonal entries).
Equations
- ToeplitzMatrix.equiv_params = { toFun := ToeplitzMatrix.to_params, invFun := ToeplitzMatrix.from_params, left_inv := ⋯, right_inv := ⋯ }
Instances For
Note: instance computable but slow.
For actually computing cardinality, use card_ToeplitzMatrix instead.
Equations
The number of m x n Toeplitz matrices with Fintype entries is (EntryType.card) ^ (m + n - 1).
Surjectivity of Toeplitz matrix-vector multiplication #
M ↦ M * v is surjective for v ≠ 0.
A finite Finsupp linear combination of Toeplitz matrices is Toeplitz.
If all exponents in a finite sum ∑ cᵢ • X^(eᵢ) are bounded by B,
the sum has degree at most B.
Degree bound: a weighted sum of monomials ∑ c i • X^i for i : Fin m
has degree at most m - 1.
Multiplication by a nonzero vector is surjective from Toeplitz parameters to the output space.