Skip to content

Fast matrix multiplication and division for Toeplitz matrices in Julia

License

Notifications You must be signed in to change notification settings

sverek/ToeplitzMatrices.jl

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ToeplitzMatrices.jl

Build Status Coverage Status

Fast matrix multiplication and division for Toeplitz and Hankel matrices in Julia

ToeplitzMatrix

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 ]

TriangularToeplitz

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 ]

Hankel

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 ]

Circulant

A circulant matrix is a special case of a Toeplitz matrix with periodic end conditions. It can be constructed using

Circulant(vc)

where vc is a vector with the entries for the first column. For example:

 Circulant(1:3)

is a sparse representation of the matrix

[  1.0  3.0  2.0
   2.0  1.0  3.0
   3.0  2.0  1.0 ]

About

Fast matrix multiplication and division for Toeplitz matrices in Julia

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Julia 100.0%