
Tables 12.112.5 present a list of freely available software for the solution of linear algebra problems. The interest is in software for highperformance computers that is available in "open source" form on the web for solving problems in numerical linear algebra, specifically dense, sparse direct and iterative systems and sparse iterative eigenvalue problems.
Additional pointers to software can be found at: www.nhse.org/rib/repositories/nhse/catalog/\hyper@hash{}Numerical_Programs_and_Routines. A survey of Iterative Linear System Solver Packages can be found at: www.netlib.org/utk/papers/iterativesurvey.
Notes for Tables 12.112.5:
Type: Real for Real arithmetic and Complex for Complex arithmetic
Support: An email address where you can send questions and bug reports.
Language: f77(may also mean Fortran 95), C, C++
Mode: Seq for Sequential, vector and/or SMP/multithreaded versions
Dist for distributed memory message passing (M = MPI, P = PVM)
Dense: Dense, triangular, banded, tridiagonal matrices
Sparse: A sparse matrix representation is used to contain the data.
Direct: A direct approach is used to factor and solve the system.
SPD: The matrix is symmetric and positive definite
Gen: The matrix is general
Iterative: An iterative method is used to solve the system.
P: when used in a column labeled "Sparse Iterative," indicates preconditioners
Sparse eigenvalue: An iterative method is used to find some of the eigenvalues
Sym: The matrix is symmetric (Hermitian in the complex case)
Package  Support  Type  Language  Mode  Dense  Sparse Direct  Sparse Iterative  

Real  Complex  f77  c  c++  Seq  Dist  SPD  Gen  SPD  Gen  
ATLAS  yes  X  X  X  X  X  X  
BLAS  yes  X  X  X  X  X  X  
FLAME  yes  X  X  X  X  X  X  
LINALG *  ?  
MTL  yes  X  X  X  X  
NETMAT  yes  X  X  X  X  
NIST SBLAS  yes  X  X  X  X  X  X  X  X  X  
PSBLAS  yes  X  X  X  X  X  M  X  X  X  X  
SparseLib++  yes  X  X  X  X  X  X  X  X  X 
Package  Support  Type  Language  Mode  Dense  Sparse Iterative  Sparse Eigenvalue  

Real  Complex  f77  c  c++  Seq  Dist  SPD  Gen  Sym  Gen  
LAPACK  yes  X  X  X  X  X  X  
LAPACK95  yes  X  X  95  X  X  
NAPACK  yes  X  X  X  X  X  X  
PLAPACK  yes  X  X  X  X  M  X  
PRISM  yes  X  X  X  M  X  
ScaLAPACK  yes  X  X  X  X  M/P  X 
Package  Support  Type  Language  Mode  Dense  Sparse Direct  Sparse Iterative  

Real  Complex  f77  c  c++  Seq  Dist  SPD  Gen  SPD  Gen  
HSL  yes  X  X  X  X  X  X  
MFACT  yes  X  X  X  X  
MP_SOLVE  yes  X  X  X  M  X  
MUMPS  yes  X  X  X  X  X  M  X  X  
PSPASES  yes  X  X  X  M  X  
SPARSE  yes  X  X  X  X  X  X  
SPARSEQR  yes  X  X  X  X  X  X  
SPOOLES  yes  X  X  X  X  M  X  X  X  X  
SuperLU  yes  X  X  X  X  X  M  X  X  
TAUCS  yes  X  X  X  X  X  X  X  X  
UMFPACK  yes  X  X  X  X  X  X  
Y12M  ?  X  X  X  X  X 
Package  Support  Type  Language  Mode  Sparse Eigenvalue  

Real  Complex  f77  c  c++  Seq  Dist  Sym  Gen  
LZPACK  yes  X  X  X  X  M/P  X  
LASO  ?  X  X  X  X  
P_ARPACK  yes  X  X  X  X  X  X  M/P  X  X 
PLANSO  yes  X  X  X  M  X  
TRLAN  yes  X  X  X  M  X 
Package  Support  Type  Language  Mode  Sparse Direct  Sparse Iterative  Sparse Eigenvalue  

Real  Complex  f77  c  c++  Seq  Dist  SPD  Gen  SPD  Gen  Sym  Gen  
AZTEC  yes  X  X  X  M  X  X  
BILUM  yes  X  X  X  X  X  
BlockSolve95  ?  X  X  X  X  M  X  X  
BPKIT  yes  X  X  X  X  P  P  
CERFACS  yes  X  X  X  X  X  X  
HYPRE  yes  X  X  X  X  M  P  P  
IML++  ?  X  X  X  X  X  X  X  
ISIS++  yes  X  X  M  X  X  
ITL  yes  X  X  X  X  X  
ITPACK  ?  X  X  X  X  X  
LASPack  yes  X  X  X  X  X  
LSQR  yes  X  X  X  X  X  
pARMS  yes  X  X  X  X  M  X  X  
PARPRE  yes  X  X  M  P  P  
PCG  yes  X  X  X  X  P  X  
PETSc  yes  X  X  X  X  X  M  X  X  
PSparsLIB  yes  X  X  M  X  
PSPASES  yes  X  X  X  X  M  X  
QMRPACK  ?  X  X  X  X  X  X  X  X  
SLAP  ?  X  X  X  X  
SPAI  yes  X  X  X  M  X  X  
SPLIB  ?  X  X  X  X  X  
SPOOLES  ?  X  X  X  X  M  X  X  X  X  
SYMMLQ  yes  X  X  X  X  X  
Templates  yes  X  X  X  X  X  X 
Linear systems. The literature on linear system solving, like the research in this topic, is mostly split along the lines of direct versus iterative solvers. An introduction that covers both (as well as eigenvalue methods) is the book by Dongarra et al. [35]. A very practical book about linear system solving by iterative methods is the Templates book [12], which in addition to the mathematical details contains sections on sparse data storage and other practical matters. More in depth and less software oriented is the book by Saad [98].
Eigensystems. Along the lines of the Templates book for linear systems is a similar book for eigenvalues problems [7].
