arpack, a Fortran90 code which is a numerical software library for solving large scale eigenvalue problems. The package is designed to compute a few eigenvalues and corresponding eigenvectors of large sparse or structured matrices, using the Implicitly Restarted Arnoldi Method (IRAM) or, in the case of symmetric matrices, the corresponding variant of the Lanczos algorithm. It is used by many popular numerical computing environments such as SciPy, Mathematica, GNU Octave and MATLAB to provide this functionality.
The code supports single and double precision, real or complex arithmetic. The matrices involved can be symmetric or nonsymmetric. The user can request just a few eigenvalues, or all of them. There are special routines for banded matrices.
Because the package uses reverse communication, the user is free to store the matrix in any way suitable. The code will never require direct access to the matrix, only to the value of certain matrix-vector products such as A*x or A'*x.
The code requires access to the lapack() and blas() libraries.
There is an ARPACK home page at: https://www.caam.rice.edu/software/ARPACK/index.html.
arpack is available in a Fortran90 version.
eispack, a Fortran90 code which contains eigenvalue routines, since replaced by LAPACK.
jacobi_eigenvalue, a Fortran90 code which implements the Jacobi iteration for the iterative determination of the eigenvalues and eigenvectors of a real symmetric matrix.
lapack_test, a Fortran90 code which demonstrates the use of the lapack() linear algebra library.
test_eigen, a Fortran90 code which defines various eigenvalue test cases.
test_matrix, a Fortran90 code which defines test matrices, some of which have known eigenvalues and eigenvectors.
Richard Lehoucq, Danny Sorensen, Chao Yang.