The IETL Project

The Iterative Eigensolver Template Library

The latest version 2.2 has been released, download now

The Iterative Eigensolver Template Library (IETL) provides generic high performance C++ library for iterative eigensolvers. The goal is to calculate eigenvalues or eigenvectors of a linear eigenvalue equation:

Av = lambda v

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:


The IETL library requires a standard-conforming C++ compiler and the following libraries:

Download and Installation

The latest IETL release can be downloaded from

The instruction to install can be found here .


Detailed documentation of the algorithms in the IETL library can be found here.
Example implementations for all the algorithms are provided in the examples directory and here the same can be found online..

Support and mailing lists

We offer the following mailing lists: For questions about the library please contact


The IETL was developed by


  1.  R. Barret, M. Berry, T.F. Chan, J. Demmel, J. Donato, J. Dongarra, V. Eijkhout, R. Pozo, C. Romine, and H. van der Vorst, Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods (SIAM, 1993)

  2. Z. Bai, J. Demmel and J. Dongarra (Eds.), Templates for the Solution of Algebraic Eigenvalue Problems: A Practical Guide (SIAM, 2000)

  3. J. K. Cullum and R. A. Willoughby, Computing eigenvalues of very large symmetric matrices-an implementation of a Lanczos algorithm with no reorthogonalization, J. Comput. Phys., 44:329-358, 1981.

  4. J. K. Cullum and R. A. Willoughby, Lanczos algorithms for Large Symmetric Eigenvalue Computations. Volume 1, Theory (Birkhäuser, Boston 1985).

copyright 2002-2004 by Matthias Troyer and Prakash Dayal