LINPACK_S
Linear Algebra Library
Single Precision Real
LINPACK_S is a library of MATLAB routines, using
single precision real arithmetic, which can solve systems of linear
equations for a variety
of matrix types and storage modes.
MATLAB already provides a wide set of linear equation solvers.
This (partial) set of LINPACK routines is provided just for
testing and comparison.
LINPACK has officially been superseded by the
LAPACK library. The LAPACK
library uses more modern algorithms and code structure. However,
the LAPACK library can be extraordinarily complex; what is done
in a single LINPACK routine may correspond to 10 or 20 utility
routines in LAPACK. This is fine if you treat LAPACK as a black
box. But if you wish to learn how the algorithm works, or
to adapt it, or to convert the code to another language, this
is a real drawback. This is one reason I still keep a copy
of LINPACK around.
Versions of LINPACK in various arithmetic precisions are available
through the NETLIB web site.
Related Data and Programs:
BLAS1
is a library of MATLAB routines for vector operations,
used by LINPACK.
LAPACK
is a FORTRAN90 library of routines which
can solve linear systems of equations or problems involving eigenvalues.
LINPACK_C
is a MATLAB library containing the LINPACK codes
for single precision complex arithmetic.
LINPACK_D
is a MATLAB library containing the LINPACK codes
for double precision real arithmetic.
LINPACK_S is also available in
a C++ version and
a FORTRAN77 version and
a FORTRAN90 version.
LINPACK_Z
is a version of LINPACK for double precision
complex arithmetic.
LINPLUS
is a library of MATLAB routines similar to
LINPACK but covering some other storage formats.
TEMPLATES
is a library of MATLAB routines that implement
various iterative methods for solving a linear system.
TEST_MAT
is a FORTRAN90 collection of test matrices with known inverses,
determinants, eigenvalues and so on.
Reference:
-
Jack Dongarra, Jim Bunch, Cleve Moler, Pete Stewart,
LINPACK User's Guide,
SIAM, 1979,
ISBN13: 978-0-898711-72-1,
LC: QA214.L56.
-
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.
Tar File:
A GZIP'ed TAR file of the contents of this directory is available.
This is only done as a convenience for users who want ALL the files,
and don't want to download them individually. This is not a convenience
for me, so don't be surprised if the tar file is somewhat out of date.
Source Code:
-
schdc.m,
computes the Cholesky decomposition of a positive definite matrix;
-
schdd.m,
downdates an augmented Cholesky decomposition;
-
schex.m,
updates a Cholesky decomposition;
-
schud.m,
updates a Cholesky decomposition;
-
sgbco.m,
factors a double precision band matrix and
estimates its condition number;
-
sgbdi.m,
computes the determinant of a band matrix factored by SGBFA;
-
sgbfa.m,
factors a band matrix;
-
sgbsl.m,
solves a linear system factored by SGBFA;
-
sgeco.m,
factors a matrix and estimates its condition number;
-
sgedi.m,
computes the determinant and inverse of a general matrix;
-
sgefa.m,
factors a matrix;
-
sgesl.m,
solves a general linear system A * X = B;
-
sgtsl.m,
solves a general tridiagonal linear system A * X = B;
-
spbco.m,
factors a positive definite symmetric band matrix
and estimates its condition number;
-
spbdi.m,
computes the determinant of a positive definite symmetric band matrix
factored by SPBFA;
-
spbfa.m,
factors a positive definite symmetric band matrix;
-
spbsl.m,
solves a linear system factored by SPBFA;
-
spoco.m,
factors a positive definite symmetric matrix
and estimates its condition number;
-
spodi.m,
computes the determinant and inverse of a positive
definite symmetric matrix;
-
spofa.m,
factors a positive definite symmetric matrix;
-
sposl.m,
solves a linear system factored by SPOFA;
-
sppco.m,
factors a positive definite symmetric packed matrix
and estimates its condition number;
-
sppdi.m,
computes the determinant and inverse of a positive
definite symmetric packed matrix;
-
sppfa.m,
factors a positive definite symmetric packed matrix;
-
sppsl.m,
solves a linear system factored by SPPFA;
-
sptsl.m,
solves a general positive definite symmetric
tridiagonal linear system A * X = B;
-
sqrdc.m,
computes the QR factorization of a rectangular matrix;
-
sqrsl.m,
computes transformations, projections, and least squares solutions;
-
ssico.m,
factors a symmetric matrix and
estimates its condition number;
-
ssidi.m,
computes the determinant, inertia and inverse of a symmetric matrix;
-
ssifa.m,
factors a symmetric matrix;
-
ssisl.m,
solves a linear system factored by SSIFA;
-
sspco.m,
factors a symmetric packed matrix and
estimates its condition number;
-
sspdi.m,
computes the determinant, inertia and inverse of a symmetric
packed matrix;
-
sspfa.m,
factors a symmetric packed matrix;
-
sspsl.m,
solves a linear system factored by SSPFA;
-
strco.m,
estimates the condition number of an upper or lower triangular
matrix;
-
strdi.m,
computes the determinant and inverse of a triangular matrix;
-
strsl.m,
solves an upper or lower triangular linear system;
Utilities and BLAS1 routines:
-
sasum.m,
sums the absolute values of the entries of a vector;
-
saxpy.m,
adds a multiple of one vector to another;
-
sdot.m,
computes the dot product of two vectors;
-
snrm2.m,
computes the Euclidean norm of a vector;
-
srot.m,
applies a plane rotation;
-
srotg.m,
constructs a Givens plane rotation;
-
sscal.m,
scales a vector by a constant;
-
sswap.m,
swaps two vectors;
-
isamax.m,
locates the index of the vector entry of largest magnitude;
-
r4_sign.m,
returns the sign of a value;
-
r4_swap.m,
swaps two values;
-
r4mat_uniform_01.m,
fills a matrix with uniform random values;
-
timestamp.m,
prints the current YMDHMS date as a timestamp;
Examples and Tests:
-
linpack_s_test.m, calls all the tests;
-
linpack_s_test.out,
output from the tests.
-
linpack_s_test01.m, tests SCHDC;
-
linpack_s_test02.m, tests SCHEX;
-
linpack_s_test03.m, tests SCHUD;
-
linpack_s_test04.m, tests SGBCO;
-
linpack_s_test05.m, tests SGBFA and SGBSL;
-
linpack_s_test06.m, tests SGBFA and SGBDI;
-
linpack_s_test07.m, tests SGBFA and SGBSL;
-
linpack_s_test08.m, tests SGECO and SGESL;
-
linpack_s_test09.m, tests SGEFA and SGEDI;
-
linpack_s_test10.m, tests SGEFA and SGESL;
-
linpack_s_test11.m, tests SGEFA and SGESL;
-
linpack_s_test12.m, tests SGTSL;
-
linpack_s_test13.m, tests SPBCO;
-
linpack_s_test14.m, tests SPBDI;
-
linpack_s_test15.m, tests SPBFA and SPBSL;
-
linpack_s_test16.m, tests SPOCO;
-
linpack_s_test17.m, tests SPOFA and SPODI;
-
linpack_s_test18.m, tests SPOFA and SPOSL;
-
linpack_s_test19.m, tests SPPCO;
-
linpack_s_test20.m, tests SPPFA and SPPDI;
-
linpack_s_test21.m, tests SPPFA and SPPSL;
-
linpack_s_test22.m, tests SPTSL;
-
linpack_s_test23.m, tests SQRDC and SQRSL;
-
linpack_s_test24.m, tests SSICO;
-
linpack_s_test25.m, tests SSIFA and SSISL;
-
linpack_s_test26.m, tests SSPCO;
-
linpack_s_test27.m, tests SSPFA and SSPSL;
-
linpack_s_test28.m, tests SSVDC;
-
linpack_s_test29.m, tests STRCO;
-
linpack_s_test30.m, tests STRDI;
-
linpack_s_test31.m, tests STRSL;
You can go up one level to
the MATLAB source codes.
Last revised on 09 November 2006.