LINPLUS
Linear Algebra Utilities


LINPLUS is a C++ library which carries out a small number of linear algebra operations, inspired by LINPACK and LAPACK.

The routines are primarily organized by the storage format of the matrix they operate on. Some of these formats were defined by LINPACK, while others are new; I just made them up when I had to solve problems involving such matrices. The formats include:

Related Data and Programs:

BLAS1 is a C++ library of basic linear algebra routines.

CSPARSE is a C library of routines for the direct solution of sparse linear systems.

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

DSP is a format that can be used to store a DSP matrix in a file.

GSL is a C++ library, the Gnu Scientific Library, which includes many linear algebra routines.

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

HBSMC is the Harwell-Boeing Sparse Matrix Collection, containing many large sparse matrices.

ITPACK is a FORTRAN90 library of routines for the iterative solution of large sparse linear systems.

LAPACK is a FORTRAN90 library of linear algebra routines.

LINPACK is a C++ library of linear algebra routines.

LINPACK_BENCH is an executable C++ benchmark program which measures the time taken by LINPACK to solve a particular linear system.

LINPLUS is also available in a FORTRAN90 version and a MATLAB version.

MGMRES is a C++ library which applies the restarted GMRES algorithm to solve a sparse linear system.

MM_IO is a FORTRAN90 library which reads and writes files of sparse matrix information stored in the Matrix Market format.

NAG is a general purpose mathematical library, callable from C++, which includes many linear algebra routines.

NSPCG is a FORTRAN90 library of routines for solving sparse systems of linear equations using the nonsymmetric sparse conjugate gradient method.

PETSC is a C++ library suitable for use in parallel programming, which includes linear algebra routines.

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.

SPARSEKIT is a FORTRAN90 library of routines for operations on sparse matrices, including conversion between various formats.

SUPER_LU is a C library which implements some very fast solvers for systems of sparse linear equations.

TEMPLATES is a MATLAB library of routines that implement various iterative methods for solving a linear system.

TEST_MAT is a FORTRAN90 library of routines which define test matrices, some of which have known determinants, eigenvalues and eigenvectors, inverses and so on.

Reference:

  1. Edward Anderson, Zhaojun Bai, Christian Bischof, Susan Blackford, James Demmel, Jack Dongarra, Jeremy Du Croz, Anne Greenbaum, Sven Hammarling, Alan McKenney, Danny Sorensen,
    LAPACK User's Guide,
    Third Edition,
    SIAM, 1999,
    ISBN: 0898714478,
    LC: QA76.73.F25L36
  2. Frank Beckman,
    The Solution of Linear Equations by the Conjugate Gradient Method,
    in Mathematical Methods for Digital Computers,
    edited by John Ralston, Herbert Wilf,
    Wiley, 1967,
    ISBN: 0471706892.
  3. Paul Bratley, Bennett Fox, Linus Schrage,
    A Guide to Simulation,
    Second Edition,
    Springer, 1987,
    ISBN: 0387964673.
  4. Ward Cheney, David Kincaid,
    Numerical Mathematics and Computing,
    Brooks-Cole Publishing, 2004,
    ISBN: 0534201121.
  5. Philip Davis,
    Circulant Matrices,
    Second Edition,
    Chelsea, 1994,
    ISBN: 0828403384,
    LC: QA188.D37.
  6. Jack Dongarra, Jim Bunch, Cleve Moler, Pete Stewart,
    LINPACK User's Guide,
    SIAM, 1979,
    ISBN13: 978-0-898711-72-1,
    LC: QA214.L56.
  7. Iain Duff, Roger Grimes, John Lewis,
    User's Guide for the Harwell-Boeing Sparse Matrix Collection,
    October 1992.
  8. Bennett Fox,
    Algorithm 647: Implementation and Relative Efficiency of Quasirandom Sequence Generators,
    ACM Transactions on Mathematical Software,
    Volume 12, Number 4, December 1986, pages 362-376.
  9. Gene Golub, Charles VanLoan,
    Matrix Computations, Third Edition,
    Johns Hopkins, 1996,
    ISBN: 0-8018-4513-X,
    LC: QA188.G65.
  10. David Kahaner, Cleve Moler, Steven Nash,
    Numerical Methods and Software,
    Prentice Hall, 1989,
    ISBN: 0-13-627258-4,
    LC: TA345.K34.
  11. Charles Lawson, Richard Hanson, David Kincaid, Fred Krogh,
    Algorithm 539: Basic Linear Algebra Subprograms for Fortran Usage,
    ACM Transactions on Mathematical Software,
    Volume 5, Number 3, September 1979, pages 308-323.
  12. Albert Nijenhuis, Herbert Wilf,
    Combinatorial Algorithms for Computers and Calculators,
    Second Edition,
    Academic Press, 1978,
    ISBN: 0-12-519260-6,
    LC: QA164.N54.

Source Code:

Examples and Tests:

List of Routines:

You can go up one level to the C++ source codes.


Last revised on 13 March 2008.