mgmres, a C++ code which applies the restarted Generalized Minimum Residual (GMRES) algorithm to solve a sparse linear system, using compressed row storage (CRS) or sparse triplet (ST) format, by Lili Ju.
One matrix format used is the ST or "sparse triplet" format, which sets NZ_NUM to the number of nonzeros, and stores the K-th nonzero matrix entry as:
Another matrix format used is the CR or "sparse compressed row" format, which is similar to the sparse triplet format except that it 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.
The computer code and data files described and made available on this web page are distributed under the MIT license.
mgmres is available in a C version and a C++ version and a Fortran90 version and a MATLAB version and an Octave version.
ccs, a dataset 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.
crs, a dataset directory which contains examples of the Compressed Row storage (CRS) sparse matrix file format;
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 ST format for storing sparse matrices, which are used by the C and C++ versions of MGMRES.
superlu, C++ codes which illustrate how a C++ code can call the SUPERLU library, (which is written in C), 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.
Original C version by Lili Ju. This version by John Burkardt.