LINPLUS
Linear Algebra Utilities
LINPLUS
is a C++ library which
carries out operations such as matrix-vector products,
matrix factorization, linear solvers including Gauss-elimination,
Jacobi iteration, Gauss-Seidel iteration, Conjugate Gradient (CG),
for matrices in a
variety of formats, including banded, border-banded, circulant, lower
triangular, pentadiagonal, sparse, symmetric, toeplitz, tridiagonal,
upper triangular and vandermonde formats.
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:
-
C83 - Complex double precision tridiagonal;
-
C8CI - Complex double precision circulant;
-
C8GE - Complex double precision general;
-
C8TO - Complex double precision Toeplitz;
-
R83 - Real double precision tridiagonal;
-
R83P - Real double precision tridiagonal periodic;
-
R83S - Real double precision tridiagonal scalar;
-
R85 - Real double precision pentadiagonal;
-
R8BB - Real double precision border-banded;
-
R8BLT - Real double precision banded lower triangular matrix;
-
R8BTO - Real double precision block Toeplitz;
-
R8BUT - Real double precision banded upper triangular matrix;
-
R8CB - Real double precision compact band;
-
R8CBB - Real double precision compact border-banded;
-
R8CC - Real double precision compressed column sparse
= Harwell Boeing Real Unsymmetric Assembled (RUA) format
= MATLAB sparse format;
-
R8CI - Real double precision circulant;
-
R8GB - Real double precision general band,
used by LINPACK and LAPACK;
-
R8GD - Real double precision general diagonal;
-
R8GE - Real double precision general, used by LINPACK and LAPACK;
-
R8LT - Real double precision lower triangular;
-
R8NCF - Real double precision Nonsymmetric Coordinate Format
(one of the formats used by NSPCG);
-
R8PBL - Real double precision positive-definite symmetric band
matrix, store diagonal and lower triangle;
-
R8PBU - Real double precision positive-definite symmetric band
matrix, store diagonal and upper triangle;
-
R8PO - Real double precision positive-definite symmetric,
used by LINPACK and LAPACK;
-
R8PP - Real double precision positive-definite symmetric Packed,
used by LINPACK and LAPACK;
-
R8RI - Real double precision Row-Indexed matrix,
used by Numerical Recipes;
-
R8S3 - Real double precision sparse matrix stored by row,
column, value (used by SLAP/DLAP, symmetric or nonsymmetric);
-
R8SD - Real double precision symmetric diagonal;
-
R8SM - Real double precision Sherman Morrison system A - u * v';
-
R8SP - Real double precision sparse matrix stored by row,
column, value (used by CSPARSE ("sparse triplet"),
SLAP/DLAP (nonsymmetric SLAP triad format), MATLAB,
and SPARSEKIT ("COO" format));
-
R8SR - Real double precision sparse matrix stored by rows;
-
R8SS - Real double precision symmetric skyline;
-
R8STO - Real double precision symmetric Toeplitz;
-
R8TO - Real double precision Toeplitz;
-
R8UT - Real double precision upper triangular;
-
R8UTP - Real double precision upper triangular, packed
(only nonzeros are stored);
-
R8VEC - Real double precision vector, which in some cases
is used to store a matrix;
-
R8VM - Real double precision Vandermonde;
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the GNU LGPL license.
Languages:
LINPLUS is available in
a C version and
a C++ version and
a FORTRAN77 version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
CC,
a data directory which
contains examples of the Compressed Column (CC)
sparse matrix file format;
CG,
a C++ library which
implements the conjugate gradient method for solving
a positive definite sparse linear system A*x=b, using reverse communication.
CR,
a data directory which
contains examples of the Compressed Row (CR)
sparse matrix file format;
CSPARSE,
a C library which
carries out the direct solution of sparse linear systems.
GSL,
a C++ library which
includes many linear algebra routines.
HBSMC,
a dataset directory which
contains the Harwell-Boeing Sparse Matrix Collection
of large sparse matrices.
LINPACK_D,
a C++ library which
solves linear systems using double precision real arithmetic;
LINPACK_BENCH,
a C++ program which
measures the time taken by LINPACK to solve a
particular linear system.
MGMRES,
a C++ library which
applies the restarted GMRES algorithm
to solve a sparse linear system.
SUPERLU,
a C library which
implements some very fast solvers
for systems of sparse linear equations.
TEST_MAT,
a C++ library which
defines test matrices, some of
which have known determinants, eigenvalues and eigenvectors,
inverses and so on.
TOEPLITZ_CHOLESKY,
a C++ library which
computes the Cholesky factorization of a nonnegative definite symmetric
Toeplitz matrix.
WATHEN,
a C++ library which
compares storage schemes (full, banded, sparse triplet) and
solution strategies (Linpack full, Linpack banded,
conjugate gradient (CG)) for linear systems involving the Wathen matrix,
which can arise when solving a problem using the
finite element method (FEM).
Reference:
-
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
-
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.
-
Paul Bratley, Bennett Fox, Linus Schrage,
A Guide to Simulation,
Second Edition,
Springer, 1987,
ISBN: 0387964673.
-
Ward Cheney, David Kincaid,
Numerical Mathematics and Computing,
Brooks-Cole Publishing, 2004,
ISBN: 0534201121.
-
Philip Davis,
Circulant Matrices,
Second Edition,
Chelsea, 1994,
ISBN: 0828403384,
LC: QA188.D37.
-
Jack Dongarra, Jim Bunch, Cleve Moler, Pete Stewart,
LINPACK User's Guide,
SIAM, 1979,
ISBN13: 978-0-898711-72-1,
LC: QA214.L56.
-
Iain Duff, Roger Grimes, John Lewis,
User's Guide for the Harwell-Boeing Sparse Matrix Collection,
October 1992.
-
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.
-
Gene Golub, Charles VanLoan,
Matrix Computations,
Third Edition,
Johns Hopkins, 1996,
ISBN: 0-8018-4513-X,
LC: QA188.G65.
-
Roger Hockney,
A fast direct solution of Poisson's equation using Fourier Analysis,
Journal of the ACM,
Volume 12, Number 1, pages 95-113, January 1965.
-
David Kahaner, Cleve Moler, Steven Nash,
Numerical Methods and Software,
Prentice Hall, 1989,
ISBN: 0-13-627258-4,
LC: TA345.K34.
-
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.
-
Albert Nijenhuis, Herbert Wilf,
Combinatorial Algorithms for Computers and Calculators,
Second Edition,
Academic Press, 1978,
ISBN: 0-12-519260-6,
LC: QA164.N54.
-
William Press, Brian Flannery, Saul Teukolsky, William Vetterling,
Numerical Recipes in FORTRAN: The Art of Scientific Computing,
Third Edition,
Cambridge University Press, 2007,
ISBN13: 978-0-521-88068-8,
LC: QA297.N866.
Source Code:
Examples and Tests:
List of Routines:
-
C8VEC_PRINT prints a double complex vector.
-
C8VEC_SORT_A2 ascending sorts a double complex array by L2 norm.
-
C8VEC_UNITY returns the N roots of unity as a double complex vector.
-
DAXPY adds a constant times one vector to another.
-
R83_CR_FA decomposes a real tridiagonal matrix using cyclic reduction.
-
R83_CR_SL solves a real linear system factored by R83_CR_FA.
-
R83_GS_SL solves a R83 system using Gauss-Seidel iteration.
-
R83_INDICATOR sets up a R83 indicator matrix.
-
R83_JAC_SL solves a R83 system using Jacobi iteration.
-
R83_MXV multiplies a R83 matrix times a vector.
-
R83_NP_DET: determinant of a tridiagonal system factored by R83_NP_FA.
-
R83_NP_FA factors a R83 system without pivoting.
-
R83_NP_FS factors and solves a R83 system.
-
R83_NP_ML computes Ax or xA, where A has been factored by R83_NP_FA.
-
R83_NP_SL solves a R83 system factored by R83_NP_FA.
-
R83_PRINT prints a R83 matrix.
-
R83_PRINT_SOME prints some of a R83 matrix.
-
R83_RANDOM randomizes a R83 matrix.
-
R83_TO_R8GE copies a R83 matrix to a R8GE matrix.
-
R83_VXM multiplies a vector times a R83 matrix.
-
R83_ZERO zeros a R83 matrix.
-
R83NP_FS factors and solves an R83NP system.
-
R83P_DET computes the determinant of a matrix factored by R83P_FA.
-
R83P_FA factors a R83P matrix.
-
R83P_INDICATOR sets up a R83P indicator matrix.
-
R83P_ML computes A * x or x * A, where A has been factored by R83P_FA.
-
R83P_MXV multiplies a R83P matrix times a vector.
-
R83P_PRINT prints a R83P matrix.
-
R83P_PRINT_SOME prints some of a R83P matrix.
-
R83P_RANDOM randomizes a R83P matrix.
-
R83P_SL solves a R83P system factored by R83P_FA.
-
R83P_TO_R8GE copies a R83P matrix to a R8GE matrix.
-
R83P_VXM multiplies a vector times a R83P matrix.
-
R83P_ZERO zeros a R83P matrix.
-
R85_INDICATOR sets up a R85 indicator matrix.
-
R85_NP_FS factors and solves a R85 system.
-
R85_MXV multiplies a R85 matrix times a vector.
-
R85_PRINT prints a R85 matrix.
-
R85_PRINT_SOME prints some of a R85 matrix.
-
R85_RANDOM randomizes a R85 matrix.
-
R85_TO_R8GE copies a R85 matrix to a R8GE matrix.
-
R85_VXM multiplies a vector times a R85 matrix.
-
R85_ZERO zeros a R85 matrix.
-
R8BB_ADD adds a value to an entry in a R8BB matrix.
-
R8BB_FA factors a R8BB matrix.
-
R8BB_GET gets a value of a R8BB matrix.
-
R8BB_INDICATOR sets up a R8BB indicator matrix.
-
R8BB_MXV multiplies a R8BB matrix times a vector.
-
R8BB_PRINT prints a R8BB matrix.
-
R8BB_PRINT_SOME prints some of a R8BB matrix.
-
R8BB_RANDOM randomizes a R8BB matrix.
-
R8BB_SET sets a value of a R8BB matrix.
-
R8BB_TO_R8GE copies a R8BB matrix to a R8GE matrix.
-
R8BB_VXM multiplies a vector by a R8BB matrix.
-
R8BB_ZERO zeros a R8BB matrix.
-
R8BLT_DET computes the determinant of a R8BLT matrix.
-
R8BLT_INDICATOR sets up a R8BLT indicator matrix.
-
R8BLT_MXV multiplies a R8BLT matrix times a vector.
-
R8BLT_PRINT prints a R8BLT matrix.
-
R8BLT_PRINT_SOME prints some of a R8BLT matrix.
-
R8BLT_RANDOM randomizes a R8BLT matrix.
-
R8BLT_SL solves a R8BLT system.
-
R8BLT_TO_R8GE copies a R8BLT matrix to a R8GE matrix.
-
R8BLT_VXM multiplies a vector by a R8BLT matrix.
-
R8BLT_ZERO zeros a R8BLT matrix.
-
R8BTO_INDICATOR sets up a R8BTO indicator matrix.
-
R8BTO_MXV multiplies a R8BTO matrix times a vector.
-
R8BTO_PRINT prints a R8BTO matrix.
-
R8BTO_PRINT_SOME prints some of a R8BTO matrix.
-
R8BTO_RANDOM randomizes a R8BTO matrix.
-
R8BTO_TO_R8GE copies a R8BTO matrix to a R8GE matrix.
-
R8BTO_VXM multiplies a vector times a R8BTO matrix.
-
R8BTO_ZERO zeros a R8BTO matrix.
-
R8BUT_DET computes the determinant of a R8BUT matrix.
-
R8BUT_INDICATOR sets up a R8BUT indicator matrix.
-
R8BUT_MXV multiplies a R8BUT matrix times a vector.
-
R8BUT_PRINT prints a R8BUT matrix.
-
R8BUT_PRINT_SOME prints some of a R8BUT matrix.
-
R8BUT_RANDOM randomizes a R8BUT matrix.
-
R8BUT_SL solves a R8BUT system.
-
R8BUT_TO_R8GE copies a R8BUT matrix to a R8GE matrix.
-
R8BUT_VXM multiplies a vector by a R8BUT matrix.
-
R8CB_DET computes the determinant of a R8CB matrix factored by R8CB_NP_FA.
-
R8CB_INDICATOR sets up a R8CB indicator matrix.
-
R8CB_ML computes A * x or A' * X, using R8CB_NP_FA factors.
-
R8CB_MXV multiplies a R8CB matrix times a vector.
-
R8CB_NP_FA factors a R8CB matrix by Gaussian elimination.
-
R8CB_NP_SL solves a R8CB system factored by R8CB_NP_FA.
-
R8CB_PRINT prints a R8CB matrix.
-
R8CB_PRINT_SOME prints some of a R8CB matrix.
-
R8CB_RANDOM randomizes a R8CB matrix.
-
R8CB_TO_R8VEC copies a R8CB matrix to a real vector.
-
R8CB_TO_R8GE copies a R8CB matrix to a R8GE matrix.
-
R8CB_VXM multiplies a vector by a R8CB matrix.
-
R8CB_ZERO zeros a R8CB matrix.
-
R8CBB_ADD adds a value to an entry of a R8CBB matrix.
-
R8CBB_ERROR checks the dimensions of a R8CBB matrix.
-
R8CBB_FA factors a R8CBB matrix.
-
R8CBB_GET gets the value of an entry of a R8CBB matrix.
-
R8CBB_INDICATOR sets up a R8CBB indicator matrix.
-
R8CBB_MXV multiplies a R8CBB matrix times a vector.
-
R8CBB_PRINT prints a R8CBB matrix.
-
R8CBB_PRINT_SOME prints some of a R8CBB matrix.
-
R8CBB_RANDOM randomizes a R8CBB matrix.
-
R8CBB_SET sets an entry of a R8CBB matrix.
-
R8CBB_SL solves a R8CBB system factored by R8CBB_FA.
-
R8CBB_TO_R8GE copies a R8CBB matrix to a R8GE matrix.
-
R8CBB_VXM multiplies a vector by a R8CBB matrix.
-
R8CBB_ZERO zeros a R8CBB matrix.
-
R8CC_GET gets a value of a R8CC matrix.
-
R8CC_IJK seeks K, the sparse index of (I,J), the full index of a R8CC matrix.
-
R8CC_INC increments a value of a R8CC matrix.
-
R8CC_INDICATOR sets up a R8CC indicator matrix.
-
R8CC_KIJ seeks (I,J), the full index of K, the sparse index of a R8CC matrix.
-
R8CC_MXV multiplies a R8CC matrix times a vector.
-
R8CC_PRINT prints a R8CC matrix.
-
R8CC_PRINT_SOME prints some of a R8CC matrix.
-
R8CC_RANDOM randomizes a R8CC matrix.
-
R8CC_READ reads a R8CC matrix from three files.
-
R8CC_READ_SIZE reads the sizes of a R8CC sparse matrix from a file.
-
R8CC_SET sets a value of a R8CC matrix.
-
R8CC_TO_R8GE converts a R8CC matrix to a R8GE matrix.
-
R8CC_VXM multiplies a vector times a R8CC matrix.
-
R8CC_WRITE writes a R8CC matrix to three files.
-
R8CC_ZERO zeros a R8CC matrix.
-
R8CI_EVAL returns the eigenvalues of a R8CI matrix.
-
R8CI_INDICATOR sets up a R8CI indicator matrix.
-
R8CI_MXV multiplies a R8CI matrix times a vector.
-
R8CI_PRINT prints a R8CI matrix.
-
R8CI_PRINT_SOME prints some of a R8CI matrix.
-
R8CI_RANDOM randomizes a R8CI matrix.
-
R8CI_SL solves a R8CI system.
-
R8CI_TO_R8GE copies a R8CI matrix to a R8GE matrix.
-
R8CI_VXM multiplies a vector times a R8CI matrix.
-
R8CI_ZERO zeros a R8CI matrix.
-
R8GB_DET computes the determinant of a matrix factored by R8GB_FA or R8GB_TRF.
-
R8GB_FA performs a LINPACK-style PLU factorization of a R8GB matrix.
-
R8GB_INDICATOR sets up a R8GB indicator matrix.
-
R8GB_ML computes A * x or A' * X, using R8GB_FA factors.
-
R8GB_MU computes A * x or A' * X, using R8GB_TRF factors.
-
R8GB_MXV multiplies a R8GB matrix times a vector.
-
R8GB_NZ_NUM counts the nonzeroes in a R8GB matrix.
-
R8GB_PRINT prints a R8GB matrix.
-
R8GB_PRINT_SOME prints some of a R8GB matrix.
-
R8GB_RANDOM randomizes a R8GB matrix.
-
R8GB_SL solves a system factored by R8GB_FA.
-
R8GB_TO_R8S3 copies a R8GB matrix to a R8S3 matrix.
-
R8GB_TO_R8SP copies a R8GB matrix to a R8SP matrix.
-
R8GB_TO_R8VEC copies a R8GB matrix to a real vector.
-
R8GB_TO_R8GE copies a R8GB matrix to a R8GE matrix.
-
R8GB_TRF performs a LAPACK-style PLU factorization of a R8GB matrix.
-
R8GB_TRS solves a linear system factored by R8GB_TRF.
-
R8GB_VXM multilies a vector times a R8GB matrix.
-
R8GB_ZERO zeros a R8GB matrix.
-
R8GD_ERROR checks the dimensions of a R8GD matrix.
-
R8GD_INDICATOR sets up a R8GD indicator matrix.
-
R8GD_MXV multiplies a R8GD matrix by a vector.
-
R8GD_PRINT prints a R8GD matrix.
-
R8GD_PRINT_SOME prints some of a R8GD matrix.
-
R8GD_RANDOM randomizes a R8GD matrix.
-
R8GD_TO_R8GE copies a R8GD matrix to a R8GE matrix.
-
R8GD_VXM multiplies a vector by a R8GD matrix.
-
R8GD_ZERO zeros a R8GD matrix.
-
R8GE_CO factors a R8GE matrix and estimates its condition number.
-
R8GE_DET computes the determinant of a matrix factored by R8GE_FA or R8GE_TRF.
-
R8GE_DILU produces the diagonal incomplete LU factor of a R8GE matrix.
-
R8GE_FA performs a LINPACK-style PLU factorization of a R8GE matrix.
-
R8GE_FS factors and solves a R8GE system.
-
R8GE_FS_NEW factors and solves a R8GE system.
-
R8GE_FSS factors and solves multiple R8GE systems.
-
R8GE_FSS_NEW factors and solves multiple R8GE systems.
-
R8GE_IDENTITY sets a R8GE matrix to the identity.
-
R8GE_ILU produces the incomplete LU factors of a R8GE matrix.
-
R8GE_INDICATOR sets up a R8GE indicator matrix.
-
R8GE_INVERSE computes the inverse of a R8GE matrix factored by R8GE_FA.
-
R8GE_ML computes A * x or A' * x, using R8GE_FA factors.
-
R8GE_MU computes A * x or A' * x, using R8GE_TRF factors.
-
R8GE_MXM multiplies two R8GE matrices.
-
R8GE_MXV multiplies a R8GE matrix times a vector.
-
R8GE_NP_DET computes the determinant of a matrix factored by R8GE_NP_FA.
-
R8GE_NP_FA factors a R8GE matrix by nonpivoting Gaussian elimination.
-
R8GE_NP_INVERSE computes the inverse of a matrix factored by R8GE_NP_FA.
-
R8GE_NP_ML computes A * x or x * A, for a matrix factored by R8GE_NP_FA.
-
R8GE_NP_SL solves a system factored by R8GE_NP_FA.
-
R8GE_NP_TRF computes the LU factorization of a R8GE matrix.
-
R8GE_NP_TRM computes A * x or A' * x, for a matrix factored by R8GE_NP_TRF.
-
R8GE_NP_TRS solves a system of linear equations factored by R8GE_NP_TRF.
-
R8GE_PLU produces the PLU factors of a R8GE matrix.
-
R8GE_POLY computes the characteristic polynomial of a R8GE matrix.
-
R8GE_PRINT prints a R8GE matrix.
-
R8GE_PRINT_SOME prints some of a R8GE matrix.
-
R8GE_RANDOM randomizes a R8GE matrix.
-
R8GE_RES computes the residual for a R8GE system.
-
R8GE_SL solves a R8GE system factored by R8GE_FA.
-
R8GE_SL_IT applies one step of iterative refinement following R8GE_SL.
-
R8GE_TO_R8GB copies a R8GE matrix to a R8GB matrix.
-
R8GE_TO_R8VEC copies a R8GE matrix to a real vector.
-
R8GE_TRF performs a LAPACK-style PLU factorization of a R8GE matrix.
-
R8GE_TRS solves a system of linear equations factored by R8GE_TRF.
-
R8GE_VXM multiplies a vector times a R8GE matrix.
-
R8GE_ZERO zeros a R8GE matrix.
-
R8LT_DET computes the determinant of a R8LT matrix.
-
R8LT_INDICATOR sets up a R8LT indicator matrix.
-
R8LT_INVERSE computes the inverse of a R8LT matrix.
-
R8LT_MXM multiplies two R8LT matrices.
-
R8LT_MXV multiplies a R8LT matrix times a vector.
-
R8LT_PRINT prints a R8LT matrix.
-
R8LT_PRINT_SOME prints some of a R8LT matrix.
-
R8LT_RANDOM randomizes a R8LT matrix.
-
R8LT_SL solves a R8LT system.
-
R8LT_VXM multiplies a vector times a R8LT matrix.
-
R8LT_ZERO zeros a R8LT matrix.
-
R8NCF_INDICATOR sets up a R8NCF indicator matrix.
-
R8NCF_PRINT prints a R8NCF matrix.
-
R8NCF_PRINT_SOME prints some of a R8NCF matrix.
-
R8PBL_DET computes the determinant of a matrix factored by R8PBL_FA.
-
R8PBL_INDICATOR sets up a R8PBL indicator matrix.
-
R8PBL_PRINT prints a R8PBL matrix.
-
R8PBL_PRINT_SOME prints some of a R8PBL matrix.
-
R8PBL_RANDOM randomizes a R8PBL matrix.
-
R8PBL_TO_R8GE copies a R8PBL matrix to a R8GE matrix.
-
R8PBL_ZERO zeros a R8PBL matrix.
-
R8PBU_CG uses the conjugate gradient method on a R8PBU system.
-
R8PBU_DET computes the determinant of a matrix factored by R8PBU_FA.
-
R8PBU_FA factors a R8PBU matrix.
-
R8PBU_INDICATOR sets up a R8PBU indicator matrix.
-
R8PBU_ML multiplies a vector times a matrix that was factored by R8PBU_FA.
-
R8PBU_MXV multiplies a R8PBU matrix times a vector.
-
R8PBU_PRINT prints a R8PBU matrix.
-
R8PBU_PRINT_SOME prints some of a R8PBU matrix.
-
R8PBU_RANDOM randomizes a R8PBU matrix.
-
R8PBU_SL solves a R8PBU system factored by R8PBU_FA.
-
R8PBU_SOR uses SOR iteration to solve a R8PBU linear system.
-
R8PBU_TO_R8GE copies a R8PBU matrix to a R8GE matrix.
-
R8PBU_ZERO zeros a R8PBU matrix.
-
R8PO_DET computes the determinant of a matrix factored by R8PO_FA.
-
R8PO_FA factors a R8PO matrix.
-
R8PO_INDICATOR sets up a R8PO indicator matrix.
-
R8PO_INVERSE computes the inverse of a matrix factored by R8PO_FA.
-
R8PO_ML computes A * x = b after A has been factored by R8PO_FA.
-
R8PO_MXM multiplies two R8PO matrices.
-
R8PO_MXV multiplies a R8PO matrix times a vector.
-
R8PO_PRINT prints a R8PO matrix.
-
R8PO_PRINT_SOME prints some of a R8PO matrix.
-
R8PO_RANDOM randomizes a R8PO matrix.
-
R8PO_SL solves a linear system that has been factored by R8PO_FA.
-
R8PO_TO_R8GE copies a R8PO matrix to a R8GE matrix.
-
R8PO_ZERO zeros a R8PO matrix.
-
R8PP_DET computes the determinant of a matrix factored by R8PP_FA.
-
R8PP_FA factors a R8PP matrix.
-
R8PP_INDICATOR sets up a R8PP indicator matrix.
-
R8PP_MXV multiplies a R8PP matrix times a vector.
-
R8PP_PRINT prints a R8PP matrix.
-
R8PP_PRINT_SOME prints some of a R8PP matrix.
-
R8PP_RANDOM randomizes a R8PP matrix.
-
R8PP_SL solves a R8PP system factored by R8PP_FA.
-
R8PP_TO_R8GE copies a R8PP matrix to a R8GE matrix.
-
R8PP_ZERO zeros a R8PP matrix.
-
R8ROW_SWAP swaps two rows of a real array.
-
R8S3_INDICATOR sets up a R8S3 indicator matrix.
-
R8S3_PRINT prints a R8S3 matrix.
-
R8S3_PRINT_SOME prints some of a R8S3 matrix.
-
R8S3_READ reads a square R8S3 matrix from a file.
-
R8S3_READ_SIZE reads the size of a square R8S3 matrix from a file.
-
R8S3_WRITE writes a square R8S3 matrix to a file.
-
R8SD_CG uses the conjugate gradient method on a R8SD linear system.
-
R8SD_INDICATOR sets up a R8SD indicator matrix.
-
R8SD_MXV multiplies a R8SD matrix times a vector.
-
R8SD_PRINT prints a R8SD matrix.
-
R8SD_PRINT_SOME prints some of a R8SD matrix.
-
R8SD_RANDOM randomizes a R8SD matrix.
-
R8SD_TO_R8GE copies a R8SD matrix to a R8GE matrix.
-
R8SD_ZERO zeros a R8SD matrix.
-
R8SM_ML multiplies a factored square R8SM matrix times a vector.
-
R8SM_MXV multiplies a R8SM matrix times a vector.
-
R8SM_PRINT prints a R8SM matrix.
-
R8SM_PRINT_SOME prints some of a R8SM matrix.
-
R8SM_RANDOM randomizes a R8SM matrix.
-
R8SM_SL solves a square R8SM system that has been factored.
-
R8SM_TO_R8GE copies a R8SM matrix to a R8GE matrix.
-
R8SM_VXM multiplies a vector by a R8SM matrix.
-
R8SM_ZERO zeros a R8SM matrix.
-
R8SP_CHECK checks that a R8SP matrix data structure is properly sorted.
-
R8SP_IJ_TO_K seeks the compressed index of the (I,J) entry of A.
-
R8SP_INDICATOR sets up a R8SP indicator matrix.
-
R8SP_MXV multiplies a R8SP matrix times a vector.
-
R8SP_PRINT prints a R8SP matrix.
-
R8SP_PRINT_SOME prints some of a R8SP matrix.
-
R8SP_RANDOM sets a random R8SP matrix.
-
R8SP_READ reads a R8SP matrix from a file.
-
R8SP_READ_SIZE reads the size of a R8SP matrix from a file.
-
R8SP_TO_R8GE converts a R8SP matrix to a R8GE matrix.
-
R8SP_TO_R8NCF converts a R8SP matrix to a R8NCF matrix.
-
R8SP_VXM multiplies a vector times a R8SP matrix.
-
R8SP_WRITE writes a R8SP matrix to a file.
-
R8SP_ZERO returns a zero R8SP matrix.
-
R8SR_INDICATOR sets up a R8SR indicator matrix.
-
R8SR_MXV multiplies a R8SR matrix times a vector.
-
R8SR_PRINT prints a R8SR matrix.
-
R8SR_PRINT_SOME prints some of a R8SR matrix.
-
R8SR_RANDOM randomizes a R8SR matrix.
-
R8SR_TO_R8GE converts a R8SR matrix to a R8GE matrix.
-
R8SR_VXM multiplies a vector times a R8SR matrix.
-
R8SR_ZERO zeros a R8SR matrix.
-
R8SS_ERROR checks dimensions for a R8SS matrix.
-
R8SS_INDICATOR sets up a R8SS indicator matrix.
-
R8SS_MXV multiplies a R8SS matrix times a vector.
-
R8SS_PRINT prints a R8SS matrix.
-
R8SS_PRINT_SOME prints some of a R8SS matrix.
-
R8SS_RANDOM randomizes a R8SS matrix.
-
R8SS_TO_R8GE copies a R8SS matrix to a R8GE matrix.
-
R8SS_ZERO zeros a R8SS matrix.
-
FILE_DELETE deletes a named file if it exists.
-
FILE_EXIST reports whether a file exists.
-
GET_SEED returns a random seed for the random number generator.
-
HILBERT_INVERSE returns the inverse of the Hilbert matrix.
-
I4_HUGE returns a "huge" integer value, usually the largest legal signed int.
-
I4_LOG_10 returns the integer part of the logarithm base 10 of ABS(X).
-
I4_MAX returns the maximum of two integers.
-
I4_MIN returns the smaller of two integers.
-
I4_MODP returns the nonnegative remainder of integer division.
-
I4_POWER returns the value of I^J.
-
I4_UNIFORM returns a scaled pseudorandom I4.
-
I4VEC_PRINT prints an integer vector.
-
I4VEC_SEARCH_BINARY_A searches an ascending sorted vector for a value.
-
R4_ABS returns the absolute value of an R4.
-
R4_NINT returns the nearest integer to an R4.
-
R4_UNIFORM returns a scaled pseudorandom R4.
-
R4_UNIFORM_01 returns a unit pseudorandom R4.
-
R8_ABS returns the absolute value of an R8.
-
R8_IS_INT determines if a real number represents an integer value.
-
R8_MAX returns the maximum of two R8s.
-
R8_MIN returns the minimum of two R8s.
-
R8_SIGN2 returns the first argument with the sign of the second.
-
R8_SWAP switches two R8s.
-
R8_UNIFORM randomizes a real number.
-
R8_UNIFORM_01 is a portable pseudorandom number generator.
-
R8MAT_PRINT prints an R8MAT.
-
R8STO_INDICATOR sets up a R8STO indicator matrix.
-
R8STO_INVERSE computes the inverse of a R8STO matrix.
-
R8STO_MXV multiplies a R8STO matrix times a vector.
-
R8STO_PRINT prints a R8STO matrix.
-
R8STO_PRINT_SOME prints some of am R8STO matrix.
-
R8STO_RANDOM randomizes a R8STO matrix.
-
R8STO_SL solves a R8STO system.
-
R8STO_TO_R8GE copies a R8STO matrix to a R8GE matrix.
-
R8STO_YW_SL solves the Yule-Walker equations for a R8STO matrix.
-
R8STO_ZERO zeros a R8STO matrix.
-
R8TO_INDICATOR sets up a R8TO indicator matrix.
-
R8TO_MXV multiplies a R8TO matrix times a vector.
-
R8TO_PRINT prints a R8TO matrix.
-
R8TO_PRINT_SOME prints some of a R8TO matrix.
-
R8TO_RANDOM randomizes a R8TO matrix.
-
R8TO_SL solves a R8TO system.
-
R8TO_TO_R8GE copies a R8TO matrix to a R8GE matrix.
-
R8TO_VXM multiplies a vector times a R8TO matrix.
-
R8TO_ZERO zeros a R8TO matrix.
-
R8UT_DET computes the determinant of a R8UT matrix.
-
R8UT_INDICATOR sets up a R8UT indicator matrix.
-
R8UT_INVERSE computes the inverse of a R8UT matrix.
-
R8UT_MXM multiplies two R8UT matrices.
-
R8UT_MXV multiplies a R8UT matrix times a vector.
-
R8UT_PRINT prints a R8UT matrix.
-
R8UT_PRINT_SOME prints some of a R8UT matrix.
-
R8UT_RANDOM randomizes a R8UT matrix.
-
R8UT_SL solves a R8UT system.
-
R8UT_VXM multiplies a vector times a R8UT matrix.
-
R8UT_ZERO zeros a R8UT matrix.
-
R8VEC_DOT computes the inner product of two R8VEC's.
-
R8VEC_INDICATOR_NEW sets an R8VEC to the indicator vector {1,2,3...}.
-
R8VEC_PRINT prints an R8VEC.
-
R8VEC_PRINT_SOME prints "some" of an R8VEC.
-
R8VEC_RANDOM randomizes an R8VEC.
-
R8VEC_READ reads an R8VEC from a file.
-
R8VEC_READ_SIZE reads the size of an R8VEC from a file.
-
R8VEC_TO_R8CB copies an R8VEC into a R8CB matrix.
-
R8VEC_TO_R8GB copies an R8VEC into a R8GB matrix.
-
R8VEC_TO_R8GE copies an R8VEC into a R8GE matrix.
-
R8VEC_WRITE writes an R8VEC to a file.
-
R8VEC2_PRINT_SOME prints "some" of two real vectors.
-
R8VM_DET computes the determinant of a R8VM matrix.
-
R8VM_MXV multiplies a R8VM matrix times a vector.
-
R8VM_PRINT prints a R8VM matrix.
-
R8VM_PRINT_SOME prints some of a R8VM matrix.
-
R8VM_RANDOM randomizes a R8VM matrix.
-
R8VM_SL solves a R8VM system.
-
R8VM_TO_R8GE copies a R8VM matrix to a R8GE matrix.
-
R8VM_VXM multiplies a vector times a R8VM matrix.
-
R8VM_ZERO zeros a R8VM matrix.
-
S_LEN_TRIM returns the length of a string to the last nonblank.
-
SORT_HEAP_EXTERNAL externally sorts a list of items into ascending order.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
You can go up one level to
the C++ source codes.
Last revised on 11 August 2009.