EIGENVALUES
Symmetric
The program irbleigs.m is a MATLAB program for computing a few eigenvalues and
associated eigenvectors located anywhere in spectrum of a large sparse Hermitian matrix. The
irbleigs.m program is matrixfree, i.e., the matrix is accessed only
through the evaluation of matrixvector products. In particular the factorization of A is
not demanded, nor is the solution of linear systems of equations with the matrix A.
The code can also compute the generalized eigenpairs of certain
generalized eigenvalue problems. A MATLAB GUI demo irbldemo.m
is an easy to use interface with irbleigs.m that allows the user to quickly change
the parameter options in irbleigs.m. This helps illustrates the different choices for the
parameters available in irbleigs.m.

Click here
to download the MATLAB code irbleigs.m. 
Click here
to download the MATLAB GUI demo irbldemo.m. 
NonSymmetric
The program ahbeigs.m is a MATLAB program for computing a few eigenvalues and
associated eigenvectors located anywhere in spectrum of a large sparse nonsymmetric matrix.
The program ahbeigs.m is based on a block Arnoldi method that makes use of Householder
reflections to maintain orthogonality and restarting is accomplished by augmentation of the
Krylov subspace with Schur vectors. No factorization is required in order to find extreme
eigenvalues, however factorization is performed when searching for nonextreme eigenvalues.
The program can solve the standard or the generalized eigenvalue problem. Research supported
by NSF grant DMS0311786.

Click here
to download the MATLAB code ahbeigs.m. 
SINGULAR VALUES
The routine irblsvds.m is a MATLAB program for computing
a few singular values and singular vectors of a m x n matrix A.
irblsvds.m uses the (m+n) x (m+n) Hermitian matrix Z = [0 A; A' 0] and calls
irbleigs.m to find a few eigenvalues and eigenvectors of the matrix Z.
The singular values of A are the positive eigenvalues of Z, the "right" singular
vectors V, correspond to the last n elements of the eigenvectors of Z, and the
"left" singular vectors U, correspond to the first m elements of the eigenvectors of Z.

Click here
to download the MATLAB code irblsvds.m. 
The routines irlba.m and irlbablk.m are MATLAB programs
for computing a few singular
values and singular vectors of a m x n matrix A. irlba.m is a restarted
Lanczos bidiagonalization method and irlbablk.m is
a restarted block Lanczos bidiagonalization method.
Restarting is carried out by
augmentation of Krylov subspaces with either Ritz vectors or harmonic Ritz
vectors.

Click here
to download the MATLAB code irlba.m. 
Click here
to download the block MATLAB code irlbablk.m. 
Click here
to download the matrix hypatia.gz. 

The code irlba has also been written in the language R by Bryan Lewis.
Click here
for the video and slides. 
Click here
for the R verison of the code irlba. Code is maintained by Bryan Lewis. 
Click here
for the R package on CRAN for the code irlba. Code is maintained by Bryan Lewis. 
Click here
for the Python package of irlba. Code is maintained by Bryan Lewis. 
LEAST SQUARES
The routines alsqr.m and irlsqr.m are
MATLAB programs for computing
the solution of min Axb where A is an (m x n) matrix,
b an (m x 1) vector, and x is an (n x 1)
vector. b is not assumed to be in span(Col(A)). The routine alsqr.m
is an augmented preconditioned LSQR method. The
preconditioner is computed via an augmented Lanczos
bidiagonalization method with harmonic Ritz vectors. The program then
runs LSQR on the preconditioned system.
The routine irlsqr.m
is a preconditioned
implictly restarted LSQR method, that is mathematically equivalent
to< i>alsqr.m . The
preconditioner is computed via implicitly restarted Lanczos
bidiagonalization method with harmonic Ritz values. The program then
runs LSQR on the preconditioned system.

Click here
to download the MATLAB code alsqr.m. 
Click here
to download the MATLAB code irlsqr.m. 
DIRECT SOLVER FOR BANDED LINEAR SYSTEMS
The following are the MATLAB and FORTRAN 95 codes associated with
the paper, An asynchronous direct solver for banded linear
systems.
This package provides
a set of functions to solve linear systems that do not require row echelon form. The functions are (i) Algorithm_21_TMFS.m, a MATLAB function to solve tridiagonal
linear systems without exponential growth using a modified forward substitution technique, and (ii) Algorithm_22_TMFBS.m, a MATLAB function to solve tridiagonal
linear systems without exponential growth using a modified forward and backward substitution technique, and (iii) Algorithm_31_BMFS.m, a MATLAB and FORTRAN
function to solve banded systems using a forward substitution technique. Note that the current implementation in Fortran requires the ISML addon.
In MATLAB, one can see a demonstration of the algorithms compared to the builtin backslash solver by running the associated driver.m functions.

Click here
to download the README file README.txt. 
Click here
to download the MATLAB code Algorithm_21_TMFS_Driver.m. 
Click here
to download the MATLAB code Algorithm_21_TMFS.m. 
Click here
to download the MATLAB code Algorithm_22_TMFBS_Driver.m. 
Click here
to download the MATLAB code Algorithm_22_TMFBS.m. 
Click here
to download the MATLAB code Algorithm_31_BMFS.m. 
Click here
to download the MATLAB code Algorithm_31_BMFS_Driver.m. 
Click here
to download the FORTRAN 95 code Algorithm_31_BMFS.f90. 