# mgmres

mgmres, a C code which applies the restarted Generalized Minimum Residual (GMRES) algorithm to solve a sparse linear system, using compressed row (CR) or sparse triplet (ST) format, by Lili Ju.

One matrix format used is the sparse triplet (ST) format, which simply stores NZ_NUM, the number of nonzeros, and stores the K-th nonzero matrix entry as

• A(K), the value of the entry;
• IA(K), the row of the entry;
• JA(K), the column of the entry;

Another matrix format used is the compressed row (CR) format, which is similar to the sparse triplet format except that the vector of row indices is compressed to a vector of length N+1 which points to the beginning of the set of entries for each row.

• A(1:NZ_NUM), the value of the entry;
• IA(1:N+1), row I values occur in entries IA(I) to IA(I+1)-1;
• JA(1:NZ_NUM), the column of the entry;

### Languages:

mgmres is available in a C version and a C++ version and a Fortran90 version and a MATLAB version and an Octave version.

### Related Data and Programs:

ccs, a data directory which contains examples of the Compressed Column Storage (CCS) sparse matrix file format;

cg_rc, a C code which implements the conjugate gradient method for solving a positive definite sparse linear system A*x=b, using reverse communication (RC).

crs, a data directory which contains examples of the Compressed Row Storage (CRS) sparse matrix file format;

csparse, a C code which carries out the direct solution of sparse linear systems, by Timothy Davis.

linpack_d, a C code 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.

st, a data directory which contains a description and examples of the sparse triplet (ST) format for storing sparse matrices, which used by the C and C++ versions of mgmres.

superlu, C codes which illustrate how to use the SUPERLU library, which applies a fast direct solution method to solve sparse linear systems, by James Demmel, John Gilbert, and Xiaoye Li.

test_matrix, a C code which defines test matrices.

### Author:

Original C version by Lili Ju, Mathematics Department, University of South Carolina; this version by John Burkardt.

### Reference:

1. 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,
ISBN: 0898714710,
LC: QA297.8.T45.
2. Tim Kelley,
Iterative Methods for Linear and Nonlinear Equations,
SIAM, 2004,
ISBN: 0898713528,
LC: QA297.8.K45.