EISPACK, a FORTRAN77 library which calculates the eigenvalues and eigenvectors of a matrix.
A variety of options are available for special matrix formats.
Note that EISPACK "simulates" complex arithmetic. That is, complex data is stored as pairs of real numbers, and complex arithmetic is done by carefully manipulating the real numbers.
EISPACK is old, and its functionality has been replaced by the more modern and efficient LAPACK. There are some advantages, not all sentimental, to keeping a copy of EISPACK around. For one thing, the implementation of the LAPACK routines makes it a trying task to try to comprehend the algorithm by reading the source code. A single user level routine may refer indirectly to thirty or forty others.
EISPACK includes a function to compute the singular value decomposition (SVD) of a rectangular matrix.
The pristine correct original source code for EISPACK is available through the NETLIB web site.
The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.
EISPACK is available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version.
EXPOKIT, a FORTRAN77 library which solves various forms of the matrix exponential problem, by Roger Sidje.
JACOBI_EIGENVALUE, a FORTRAN77library which implements the Jacobi iteration for the iterative determination of the eigenvalues and eigenvectors of a real symmetric matrix.
LAPACK_EXAMPLES, a FORTRAN77 program which demonstrates the use of the LAPACK linear algebra library.
TEST_EIGEN, a FORTRAN77 library which defines various eigenvalue test cases.
TEST_MAT, a FORTRAN77 library which defines test matrices, some of which have known eigenvalues and eigenvectors.
TOMS581, a FORTRAN77 library which implements an improved algorithm for computing the singular value decomposition (SVD) of a rectangular matrix; this is ACM TOMS algorithm 571, by Tony Chan.