Expand description
Structured matrices support (Toeplitz, circulant) for efficient representations
This module provides implementations of various structured matrices that have special properties allowing for efficient storage and operations.
§Overview
Structured matrices are matrices with special patterns that allow them to be represented using far fewer parameters than general matrices. This provides significant memory savings and computational advantages for large matrices.
§Types of Structured Matrices
- Toeplitz matrices: Matrices where each descending diagonal from left to right is constant
- Circulant matrices: Special Toeplitz matrices where each row is a cyclic shift of the first row
- Hankel matrices: Matrices where each ascending diagonal from left to right is constant
§Examples
use scirs2_core::ndarray::{Array1, array};
use scirs2_linalg::structured::{ToeplitzMatrix, StructuredMatrix};
// Create a Toeplitz matrix from its first row and column
let first_row = array![1.0, 2.0, 3.0];
let first_col = array![1.0, 4.0, 5.0];
let toeplitz = ToeplitzMatrix::new(first_row.view(), first_col.view()).unwrap();
// The matrix represented is:
// [1.0, 2.0, 3.0]
// [4.0, 1.0, 2.0]
// [5.0, 4.0, 1.0]
// Apply to a vector efficiently without forming the full matrix
let x = array![1.0, 2.0, 3.0];
let y = toeplitz.matvec(&x.view()).unwrap();
Structs§
- Circulant
Matrix - Circulant matrix implementation
- Hankel
Matrix - Hankel matrix implementation
- Toeplitz
Matrix - Toeplitz matrix implementation
Traits§
- Structured
Matrix - A trait for structured matrices that can be represented efficiently
Functions§
- circulant_
determinant - Compute determinant of a circulant matrix
- circulant_
eigenvalues - Compute eigenvalues of a circulant matrix
- circulant_
inverse_ fft - FFT-based circulant matrix inverse
- circulant_
matvec_ direct - Direct circulant matrix-vector multiplication
- circulant_
matvec_ fft - FFT-based circulant matrix-vector multiplication
- dftmatrix_
multiply - Discrete Fourier Transform matrix multiplication
- fast_
toeplitz_ inverse - Fast Toeplitz matrix inversion using the Gohberg-Semencul formula
- gohberg_
semencul_ inverse - Gohberg-Semencul formula for efficient Toeplitz matrix inversion
- hadamard_
transform - Fast Walsh-Hadamard transform
- hankel_
determinant - Compute determinant of a Hankel matrix
- hankel_
matvec - Hankel matrix-vector multiplication
- hankel_
matvec_ fft - FFT-based Hankel matrix-vector multiplication
- hankel_
svd - Compute SVD of a Hankel matrix
- levinson_
durbin - Levinson-Durbin algorithm for solving Toeplitz systems
- solve_
circulant - Solve a Circulant system
- solve_
circulant_ fft - FFT-based circulant system solver
- solve_
toeplitz - Solve a Toeplitz system using the Levinson algorithm
- solve_
tridiagonal_ lu - Solve tridiagonal system using LU decomposition
- solve_
tridiagonal_ thomas - Solve tridiagonal system using Thomas algorithm
- structured_
to_ operator - Convert a structured matrix to a matrix-free operator
- tridiagonal_
determinant - Compute determinant of a tridiagonal matrix
- tridiagonal_
eigenvalues - Compute eigenvalues of a tridiagonal matrix
- tridiagonal_
eigenvectors - Compute eigenvectors of a tridiagonal matrix
- tridiagonal_
matvec - Tridiagonal matrix-vector multiplication
- yule_
walker - Yule-Walker equations solver