SPARSEKIT
Sparse Matrix Utility Package


SPARSEKIT is a FORTRAN90 library which carries out a number of operations on sparse matrices, particularly conversion between various sparse formats.

SPARSEKIT can manipulate sparse matrices in a variety of formats, and can convert from one to another. For example, a matrix can be converted from the generalized diagonal format used by ELLPACK and ITPACK to the format used by the Harwell-Boeing Sparse Matrix Collection or into LINPACK banded format.

Utilities available include converting data structures, printing simple statistics on a matrix, plotting a matrix profile, performing basic linear algebra operations (similar to the BLAS for dense matrix), and so on.

Formats recognized by SPARSKIT include:

Related Data and Programs:

CSPARSE is a C library of routines for direct sparse matrix operations.

DLAP is a library of FORTRAN90 routines for solving sparse linear systems.

HB_IO is a library of FORTRAN90 routines for reading and writing sparse linear systems stored in the Harwell-Boeing Sparse Matrix format.

HB_TO_ST is an executable FORTRAN77 program which converts the sparse matrix information stored in a Harwell-Boeing file into a sparse triplet file.

MGMRES is a FORTRAN90 routine which applies the restarted GMRES algorithm to solve a sparse linear system.

MM_IO is a set of FORTRAN90 routines for reading and writing sparse linear systems stored in the Matrix Market format.

NSPCG is a library of FORTRAN90 routines for nonsymmetric preconditioned conjugate gradient methods applied to sparse matrices.

PETSC, is a scientific library for use in parallel computation, which includes an implementation of the BLAS1 routines.

SPARSE is a built-in MATLAB function for defining sparse matrices.

SPARSE_CC is a data directory which contains a description and examples of the CC format, ("compressed column") for storing a sparse matrix, including a way to write the matrix as a set of three files.

SPARSE_CR is a data directory which contains a description and examples of the CR format, ("compressed row") for storing a sparse matrix, including a way to write the matrix as a set of three files.

SPARSEPAK is a set of FORTRAN90 routines for reordering sparse matrices.

Reference:

  1. Efstratios Gallopoulos, Youcef Saad,
    Efficient solution of parabolic equations by Krylov approximation methods,
    RIACS Technical Report, 90-14.
  2. Noborou Kikuchi,
    Finite element methods in mechanics,
    Cambridge University Press, 1986.
  3. David Kincaid, Thomas Oppe, John Respess, David Young,
    ITPACKV 2C User's Guide,
    Technical Report CNA-191.
    Center for Numerical Analysis,
    University of Texas at Austin, 1984.
  4. Donald Knuth,
    The Art of Computer Programming,
    Volume 3: Sorting and Searching,
    Addison-Wesley, 1973.
  5. Ole Osterby, Zahari Zlatev,
    Direct Methods for Sparse Matrices,
    Springer-Verlag 1983.
  6. Youcef Saad,
    Sparsekit: a basic tool kit for sparse matrix computations,
    Technical Report, Computer Science Department,
    University of Minnesota, June 1994.
  7. Youcef Saad,
    Analysis of some Krylov subspace approximations to the matrix exponential operator,
    RIACS Technical Report, 90-14.
  8. Yousef Saad,
    Iterative Methods for Sparse Linear Systems,
    Second Edition,
    SIAM, 2003,
    ISBN: 0898715342.
  9. Zahari Zlatev, Kjeld Schaumburg, Jerzy Wasniewski,
    A testing Scheme for Subroutines Solving Large Linear Problems,
    Computers and Chemistry,
    Volume 5, Number 2-3, pages 91-100, 1981.

Source Code:

Examples and Tests:

Sample problem 1:

Sample problem 2:

Sample problem 3:

Sample problem 4 takes a banded matrix of order 16, stored as a dense matrix, converts it to CSR format and sorted CSR format.

Sample problem 5:

Sample problem 6:

Sample problem 7:

Sample problem 8 generates three sample matrices from the Zlatev set, and writes them to Harwell-Boeing format files:

Sample problem 9:

Sample problem 10:

Sample problem 11:

Sample problem 12:

Sample problem 13:

Sample problem 14 generates a sample CSR matrix and converts it to an NCF (nonsymmetric coordinate format) used by NSPCG.

List of Routines:

You can go up one level to the FORTRAN90 source codes.


Last revised on 30 August 2005.