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.

Matrix formats that are recognized include:

Languages:

SPARSEKIT is available in a FORTRAN90 version.

Related Data and Programs:

CSPARSE, a C library which carries out the direct solution of sparse linear systems.

DLAP, a FORTRAN90 library which solves sparse linear systems.

HB_IO, a FORTRAN90 library which reads and writes sparse linear systems stored in the Harwell-Boeing Sparse Matrix format.

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

MGMRES, a FORTRAN90 library which applies the restarted GMRES algorithm to solve a sparse linear system.

MM_IO, a FORTRAN90 library which reads and writes sparse linear systems stored in the Matrix Market format.

SPARSE_CC, 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, 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, a FORTRAN90 library which reorders and solves sparse linear systems.

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.