NHSE LogoNHSE Software Catalog


Templates for the Solution of Linear Systems: Building Blocks
for Iterative Methods

url
http://www.netlib.org/templates/index.html

abstract
A template is a description of a general algorithm rather than the
executable object code or the source code more commonly found in a
conventional software library. Nevertheless, although templates are
general descriptions of key algorithms, they offer whatever degree of
customization the user may desire. For example, they can be configured
for the specific data structure of a problem or for the specific computing
system on which the problem is to run.

We focus on the use of iterative methods for solving large sparse
systems of linear equations.

Templates are not language specific. Rather, they are
displayed in an Algol-like structure, which is readily translatable into
the target language such as FORTRAN (with the use of the Basic
Linear Algebra Subprograms, or BLAS, whenever possible) and C.

For each template, we provide some or all of the following:

a mathematical description of the flow of the iteration;
discussion of convergence and stopping criteria;
suggestions for applying a method to special matrix types (
e.g., banded systems);
advice for tuning (for example, which preconditioners are
applicable and which are not);
tips on parallel implementations; and
hints as to when to use a method, and why.

For each of the templates, the following can be obtained via electronic
mail.

a MATLAB implementation based on dense matrices;
a FORTRAN-77 program with calls to BLAS.

keywords
template; sparse linear systems; iterative method;
numerical library


nhse-librarian@netlib.org