Fast matrix multiplication and division for Toeplitz and Hankel matrices in Julia
A Toeplitz matrix has constant diagonals. It can be constructed using
Toeplitz(vc,vr)
where vc
are the entries in the first column and vr
are the entries in the first row, where vc[1]
must equal vr[1]
. For example.
Toeplitz([1.,2.,3.],[1.,4.,5.])
is a sparse representation of the matrix
[ 1.0 4.0 5.0
2.0 1.0 4.0
3.0 2.0 1.0 ]
A triangular Toeplitz matrix can be constructed using
TriangularToeplitz(ve,uplo)
where uplo is either :L
or :U
and ve
are the rows or columns, respectively. For example,
TriangularToeplitz([1.,2.,3.],:L)
is a sparse representation of the matrix
[ 1.0 0.0 0.0
2.0 1.0 0.0
3.0 2.0 1.0 ]
A Hankel matrix has constant anti-diagonals. It can be constructed using
Hankel(vc,vr)
where vc
are the entries in the first column and vr
are the entries in the last row, where vc[end]
must equal vr[1]
. For example.
Hankel([1.,2.,3.],[3.,4.,5.])
is a sparse representation of the matrix
[ 1.0 2.0 3.0
2.0 3.0 4.0
3.0 4.0 5.0 ]