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 <category>numerical-linalg </urc>