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
HarwellBoeing 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 Ith 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 Ith 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 QuasiMinimal Residual method.

QMR_REVCOM is controlled by QMR using reverse communication.

RESID_GE computes the residual A*XB 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 OverRelaxation 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.