TEMPLATES
Iterative Solvers
for Linear Systems
TEMPLATES
is a FORTRAN90 library which
outlines the
most common iterative methods of solving a linear system.
Languages:
TEMPLATES is available in
a FORTRAN90 version and
a MATLAB version
Related Data and Programs:
CG,
a FORTRAN90 library which
implements the conjugate gradient method for solving
a positive definite sparse linear system A*x=b, using reverse communication.
DLAP,
a FORTRAN90 library which
implements iterative methods for solving
linear systems.
HBSMC,
a dataset directory which
contains large sparse matrices stored in the
Harwell-Boeing format.
JACOBI,
a FORTRAN90 library which
implements the Jacobi iteration for solving symmetric positive definite
systems of linear equations.
LINPACK,
a FORTRAN90 library which
carries out direct methods for solving linear systems.
MM,
a data directory which
contains a description and
examples of the Matrix Market format for storing matrices.
SUPER_LU,
a C program which
applies a fast direct solution method to
a sparse linear system.
TEST_MAT,
a FORTRAN90 library
which defines test matrices.
Reference:
-
Richard Barrett, Michael Berry, Tony Chan, James Demmel,
June Donato, Jack Dongarra, Victor Eijkhout, Roidan Pozo,
Charles Romine, Henk van der Vorst,
Templates for the Solution of Linear Systems:
Building Blocks for Iterative Methods,
SIAM, 1994.
-
http://www.netlib.org/templates/index.html
the TEMPLATES web site;
Source Code:
Examples and Tests:
JACOBI_GE is a calling program that uses dense GE format
matrix storage, and the Jacobi iteration. Files you may
copy include:
SOR_GE is a calling program that uses dense GE format
matrix storage, and the Jacobi iteration. Files you may
copy include:
List of Routines:
-
APPROXRES approximates the residual using a Givens updating scheme.
-
BICG implements the BiConjugate Gradient method.
-
BICG_REVCOM is controlled by BICG using reverse communication.
-
BICGSTAB implements the BiConjugate Gradient Stabilized method.
-
BICGSTAB_REVCOM is controlled by BICGSTAB using reverse communication.
-
CG implements the Conjugate Gradient method.
-
CG_REVCOM is controlled by CG using reverse communication.
-
CGS implements the Conjugate Gradient Squared method.
-
CGS_GE implements the Conjugate Gradient Squared method for GE matrices.
-
CGS_REVCOM is controlled by CGS using reverse communication.
-
CHEBY implements the Chebyshev method.
-
CHEBY_REVCOM is controlled by CHEBY using reverse communication.
-
DIF returns the second difference matrix.
-
ELEM_VEC constructs the I-th elementary vector E, scaled by ALPHA.
-
GETBREAK is supposed to allow the user to set certain tolerances.
-
GETEIG_GE computes the eigenvalues of the iteration matrix for the GE format.
-
GIVENS_APPLY applies a sequence of Givens rotations to a column of H.
-
GIVENS_SET computes Givens rotation parameters.
-
GMRES implements the Generalized Minimal Residual method.
-
GMRES_REVCOM is controlled by GMRES using reverse communication.
-
JACOBI_GE implements the Jacobi method for a matrix in GE format.
-
JACOBI_REVCOM is controlled by JACOBI using reverse communication.
-
JACOBI_SPLIT_GE splits a GE matrix for the Jacobi algorithm.
-
JACOBI_RECON_GE reconstitutes a split GE matrix for the Jacobi algorithm.
-
MATVEC_GE computes Z := ALPHA * A * X + BETA * Y for a GE matrix.
-
MATVEC_GB computes Z := ALPHA * A * X + BETA * Y for a GB matrix.
-
MVGE is a version of the MATVEC routine which assumes that the
-
ORTHOH constructs the I-th column of the upper Hessenberg matrix H
-
PSOLVE calls the appropriate preconditioner solver.
-
PSOLVE_JACOBI ??
-
PSOLVE_JACOBI_TRANS solves the linear system Mx = b where matrix M is diagonal.
-
PSOLVE_NONE is for the unpreconditioned version, i.e. just does
-
PSOLVE_NONE_TRANS is for the unpreconditioned version, i.e. just does
-
PSOLVE_Q is a solver for QMR which requires left preconditioning
-
PSOLVE_T calls the appropriate solver.
-
PSOLVE_T_Q is a solver for QMR which requires right preconditioning.
-
QMR implements the Quasi-Minimal Residual method.
-
QMR_REVCOM is controlled by QMR using reverse communication.
-
RESID_GE computes the residual A*X-B when A is stored in GE format.
-
ROTVEC applies a Givens rotation to a vector (X,Y).
-
R4VEC_PRINT_SOME prints "some" of an R4VEC.
-
SAMAX returns the maximum absolute value of the entries in a vector.
-
SGB_TO_SGE converts a general band matrix to general matrix format.
-
SGE_CHECK checks the dimensions of a general matrix.
-
SLT_SL solves a lower triangular system.
-
SNRM2 computes the Euclidean norm of a vector.
-
SOR_GE implements the Successive Over-Relaxation method for a GE matrix.
-
SOR_REVCOM is controlled by SOR using reverse communication.
-
SOR_SPLIT_GE splits a GE matrix for the SOR algorithm.
-
SOR_RECON_GE reconstructs the matrix A and right hand side B after splitting.
-
STOPB computes the stopping criterion on B.
-
STOPX computes the stopping criterion on X.
-
SUT_MXV computes A * x, where A is an upper triangular matrix.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
-
UPDATE ??
-
VECGEN generates a vector of all ones, zeros, or the row sum
You can go up one level to
the FORTRAN90 source codes.
Last revised on 13 November 2006.