where A is a matrix, v an eigenvector, and lambda an eigenvalue.
For dense eigenvalue problems, the
LAPACK library provides the best
algorithms, while for sparse matrices iterative algorithms are favored if only a
few eigenvalues are desired. These
iterative algorithms only require the
matrix in the form of a function to calculate matrix-vector products Av with
arbitrary vectors v. For sparse matrices this can often be done in a time
scaling with O(
N) where
N is the matrix dimension.
For the
similar problem of linear solvers, the iterative algorithms listed in the
templates book [
1] were
implemented in the
ITL library.
The IETL aims at a similar goal for the much more complex eigensolver, by
providing generic C++ implementations of the algorithms in the corresponding
book for eigenvalue problems [
2].
Algorithms in the IETL
So far the following algorithms for
real
symmetric and
complex hermitian matrices have been implemented: