# LINPACK_D Linear Algebra Library Double Precision Real

LINPACK_D is a MATLAB library which solves systems of linear equations for a variety of matrix types and storage modes, by Jack Dongarra, Jim Bunch, Cleve Moler, Pete Stewart.

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.

### Languages:

LINPACK_D is available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version and a MATLAB version and a Python version.

### Related Data and Programs:

BLAS1_D, a MATLAB library which contains basic linear algebra routines for vector-vector operations, using double precision real arithmetic.

CONDITION, a MATLAB library which implements methods of computing or estimating the condition number of a matrix.

LAPACK_EXAMPLES, a FORTRAN90 program which demonstrates the use of the LAPACK linear algebra library.

LINPACK_C, a MATLAB library which solves linear systems using single precision complex arithmetic;

LINPACK_S, a MATLAB library which solves linear systems using single precision real arithmetic;

LINPACK_Z, a MATLAB library which solves linear systems using double precision complex arithmetic;

TEMPLATES, a MATLAB library which carries out simple versions of various iterative solvers.

TEST_MAT, a MATLAB library which defines test matrices.

TEST_MATRIX, a MATLAB library which contains a collection of test matrices by Nick Higham.

TOEPLITZ_CHOLESKY, a MATLAB library which computes the Cholesky factorization of a nonnegative definite symmetric Toeplitz matrix.

WATHEN, a MATLAB library which compares storage schemes (full, banded, sparse triplet, sparse) and solution strategies (A\x, Linpack, conjugate gradient) for linear systems involving the Wathen matrix, which can arise when solving a problem using the finite element method (FEM).

### Author:

Original FORTRAN77 version by Jack Dongarra, Jim Bunch, Cleve Moler, Pete Stewart. MATLAB version by John Burkardt.

### Reference:

1. Jack Dongarra, Jim Bunch, Cleve Moler, Pete Stewart,
LINPACK User's Guide,
SIAM, 1979,
ISBN13: 978-0-898711-72-1,
LC: QA214.L56.
2. 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.

### Source Code:

• dchdc.m, computes the Cholesky decomposition of a positive definite matrix;
• dchdd.m, downdates an augmented Cholesky decomposition;
• dchex.m, updates a Cholesky decomposition;
• dchud.m, updates a Cholesky decomposition;
• dgbco.m, factors a double precision band matrix and estimates its condition number;
• dgbdi.m, computes the determinant of a band matrix factored by DGBFA;
• dgbfa.m, factors a double precision band matrix;
• dgbsl.m, solves a linear system factored by DGBFA;
• dgeco.m, factors a double precision matrix and estimates its condition number;
• dgedi.m, computes the determinant and inverse of a general matrix;
• dgefa.m, factors a double precision matrix;
• dgesl.m, solves a double precision general linear system A * X = B;
• dgtsl.m, solves a double precision general tridiagonal linear system A * X = B;
• dpbco.m, factors a positive definite symmetric band matrix and estimates its condition number;
• dpbdi.m, computes the determinant of a positive definite symmetric band matrix factored by DPBFA;
• dpbfa.m, factors a double precision positive definite symmetric band matrix;
• dpbsl.m, solves a linear system factored by DPBFA;
• dpoco.m, factors a positive definite symmetric matrix and estimates its condition number;
• dpodi.m, computes the determinant and inverse of a positive definite symmetric matrix;
• dpofa.m, factors a double precision positive definite symmetric matrix;
• dposl.m, solves a linear system factored by DPOFA;
• dppco.m, factors a positive definite symmetric packed matrix and estimates its condition number;
• dppdi.m, computes the determinant and inverse of a positive definite symmetric packed matrix;
• dppfa.m, factors a double precision positive definite symmetric packed matrix;
• dppsl.m, solves a linear system factored by DPPFA;
• dptsl.m, solves a double precision general positive definite symmetric tridiagonal linear system A * X = B;
• dqrdc.m, computes the QR factorization of a rectangular matrix;
• dqrdc_test.m, tests DQRDC;
• dqrsl.m, computes transformations, projections, and least squares solutions;
• dqrsl_test.m
• dsico.m, factors a symmetric matrix and estimates its condition number;
• dsidi.m, computes the determinant, inertia and inverse of a symmetric matrix;
• dsifa.m, factors a symmetric matrix;
• dsisl.m, solves a linear system factored by DSIFA;
• dspco.m, factors a symmetric packed matrix and estimates its condition number;
• dspdi.m, computes the determinant, inertia and inverse of a symmetric packed matrix;
• dspfa.m, factors a symmetric packed matrix;
• dspsl.m, solves a linear system factored by DSPFA;
• dsvdc.m, computes the singular value decomposition of a real rectangular matrix.
• dsvdc_test.m
• dtrco.m, estimates the condition number of an upper or lower triangular matrix;
• dtrdi.m, computes the determinant and inverse of a triangular matrix;
• dtrsl.m, solves an upper or lower triangular linear system;

### Utilities and BLAS1 routines:

• dasum.m, sums the absolute values of the entries of a double precision vector;
• daxpy.m, adds a multiple of one vector to another;
• ddot.m, computes the dot product of two vectors;
• dnrm2.m, computes the Euclidean norm of a vector;
• drot.m, applies a plane rotation;
• drotg.m, constructs a Givens plane rotation;
• dscal.m, scales a vector by a constant;
• dswap.m, swaps two vectors;
• idamax.m, locates the index of the vector entry of largest magnitude;
• r8_sign.m, returns the sign of a double precision value;
• r8_swap.m, swaps two values;
• r8mat_uniform_01.m, fills a matrix with uniform random values;
• timestamp.m, prints the current YMDHMS date as a timestamp;

### Examples and Tests:

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

Last revised on 28 August 2016.