NAPACK
A Numerical Linear Algebra Package
NAPACK
is a FORTRAN77 library which
handles various common tasks in numerical linear algebra and optimization,
by William Hager.
NAPACK may be used to
-
solve linear systems;
-
estimate the condition number of a matrix;
-
compute the norm of a matrix;
-
compute the determinant of a matrix;
-
multiply a matrix by a vector;
-
invert a matrix;
-
solve linear least squares problems;
-
perform unconstrained minimization of a function f(x);
-
compute eigenvalues and eigenvectors of a matrix;
-
compute the singular value decomposition of a matrix;
-
compute the QR factors of a matrix.
The package has special routines for general, band, symmetric, indefinite,
tridiagonal, upper Hessenberg, and circulant matrices.
Many of the routines use a standard naming convention, in which the first
letter indicates the matrix type, and the remainder of the name indicates
the operation.
-
B, Band matrix;
-
C, Complex matrix;
-
E, Upper Hessenberg matrix;
-
H, Symmetric band matrix;
-
i, Symmetric matrix (symmetric pivoting);
-
K, General matrix (complete pivoting);
-
O, Circulant matrix;
-
P, Tridiagonal matrix (partial pivoting);
-
S, Symmetric matrix;
-
T, Tridiagonal matrix;
The original, true, correct version of NAPACK
is available through NETLIB:
http://www.netlib.org/napack/index.html".
Languages:
NAPACK is available in
a FORTRAN77 version.
Related Data and Programs:
BLAS1,
a FORTRAN77 library which
contains level 1 basic linear algebra routines.
CONDITION,
a FORTRAN77 library which
implements methods of computing or estimating the condition number of a matrix.
DLAP,
a FORTRAN90 library which
carries out the iterative solution of sparse linear systems.
GSL,
a C++ library which
includes many linear algebra routines.
LAPACK_EXAMPLES,
a FORTRAN77 program which
demonstrates the use of the LAPACK linear algebra library.
LINPACK,
a FORTRAN77 library which
factors and solves systems of linear equations in a variety of
formats and arithmetic types.
LINPLUS,
a FORTRAN77 library which
factors and solves systems of linear equations in a variety of
formats and arithmetic types.
MGMRES,
a FORTRAN77 library which
applies the restarted GMRES algorithm to solve a sparse linear system.
SPARSEKIT,
a FORTRAN77 library which
carries out operations on sparse matrices, including conversion between various formats.
TEST_MAT,
a FORTRAN77 library which
defines test matrices, some of
which have known determinants, eigenvalues and eigenvectors,
inverses and so on.
Author:
William Hager
Reference:
-
William Hager,
Applied Numerical Linear Algebra,
Prentice-Hall, 1988,
ISBN13: 978-0130412942,
LC: QA184.H33.
-
William Hager,
Condition Estimates,
SIAM Journal on Scientific and Statistical Computing,
Volume 5, Number 2, June 1984, pages 311-316.
Source Code:
Examples and Tests:
List of Routines:
-
ADDCHG adds an increment vector to a vector.
-
AHESS balances a real matrix, and reduces it to upper Hessenberg form.
-
AMAG returns the L1 norm of a complex number.
-
BAL balances (rescales the rows and columns of) a real matrix.
-
BASIS computes an orthonormal basis for a collection of vectors
-
BCON estimates the condition number of a band matrix.
-
BDET computes the determinant of a band matrix factored by BFACT.
-
BFACT factors a band matrix with partial pivoting.
-
BIDAG reduces a general matrix to bidiagonal form
-
BIDAG2 reduces a general matrix a to bidiagonal form.
-
BMULT multiplies a real band matrix a by a vector x.
-
BSOLVE solves a factored band system.
-
BTRANS solves transpose of a factored band system
-
BVERT inverts a band matrix
-
CAHESS balances a complex matrix, and reduces it to Upper Hessenberg form.
-
CBALL balances (rescales the rows and columns of) a complex matrix.
-
CC
-
CDIAG diagonalizes a general complex matrix.
-
CEDIAG diagonalizes a complex Hessenberg matrix.
-
CEF
-
CEIG
-
CEMULT mltiplies a complex Hessenberg matrix by a complex vector.
-
CEVALS computes all eigenvalues of a complex Hessenberg matrix.
-
CEVECT computes an eigenvector of a complex Hessenberg matrix.
-
CHESS reduces a complex matrix to Hessenberg form.
-
CON estimates the 1-norm condition number of a general matrix.
-
CONG minimizes a function using the conjugate gradient method.
-
CP
-
CPACK packs the elements of a complex array.
-
CPOWER uses the power method for a complex matrix.
-
CSIM computes the Hessenberg similarity transform for a complex matrix.
-
CUB
-
CUBIC
-
CUNPACK reverses the operation of CPACK by unpacking the matrix.
-
CVALS computes the eigenvalues of a general complex matrix.
-
CVC
-
CVECT computes an eigenvector of a general complex matrix.
-
CVERT inverts a complex matrix.
-
CZERO computes zeros of a complex polynomial.
-
DAG diagonalizes a complex Hessenberg matrix.
-
DB
-
DET computes the determinant of a matrix factored by FACT.
-
DIAG diagonalizes a general real matrix.
-
ECON computes the condition number of an upper Hessenberg matrix.
-
EDET computes the determinant of an upper Hessenberg matrix.
-
EDIAG diagonalizes an upper Hessenberg matrix.
-
EFACT factors an upper Hessenberg matrix.
-
EIG2
-
EIG3
-
EMULT multiplies an upper Hessenberg matrix times a vector.
-
EQL
-
ERR
-
ESOLVE solves an upper Hessenberg linear system factored by EFACT.
-
ETRANS solves a transposed upper Hessenberg linear system factored by EFACT.
-
EVALS computes the eigenvalues of an upper Hessenberg matrix.
-
EVECT computes the eigenvectors of an upper Hessenberg matrix.
-
EVERT inverts an upper Hessenberg matrix.
-
FACT factors a general matrix, using partial pivoting.
-
FD
-
FF
-
FFC computes the conjugate Fast Fourier Transform.
-
FFC0
-
FFT computes the Fast Fourier Transform.
-
FFT0
-
FGV
-
FV
-
FVD
-
HCON estimates the condition number of a symmetric band matrix.
-
HDET computes the determinant of a symmetric band matrix.
-
HDIAG diagonalizes a symmetric band matrix.
-
HESS reduces a real matrix to Hessenberg form.
-
HFACT factors a symmetric band matrix.
-
HHESS reduces a real symmetric matrix to tridiagonal form.
-
HMULT multiplies a symmetric band matrix times a vector.
-
HSE
-
HSIM reduces a real symmetric band matrix to tridiagonal form.
-
HSOLVE solves a symmetric band matrix linear system.
-
HSR1
-
HSR2
-
HSR3
-
HSR4
-
HSR5
-
HTR
-
HTR2
-
HVALS computes the eigenvalues of a symmetric band matrix.
-
HVECT computes the eigenvectors of a symmetric band matrix.
-
HVERT inverts a symmetric band matrix.
-
ICON estimates the condition number of a symmetric matrix.
-
IDET computes the determinant of a symmetric matrix.
-
IFACT computes the LU factorization of a symmetric matrix.
-
INP
-
INS
-
ISIG returns a sign function of a real number.
-
ISOLVE solves a symmetric linear system.
-
IVERT inverts a symmetric matrix.
-
JT (???Jenkins-Traub?))
-
KCON estimates the condition number of a general matrix.
-
KDET computes the determinant of a general matrix.
-
KFACT factors a general matrix.
-
KSOLVE solves a general linear system.
-
KTRANS solves a transposed general linear system.
-
KVERT inverts a general matrix.
-
LANCZ performs an iteration of Lanczos method to reduce a matrix to tridiagonal form.
-
MPOWER
-
MULT computes a matrix-vector product.
-
NEWTON applies one step of Newton's method to the characteristic polynomial for a tridiagonal matrix
-
NORM1 estimates the 1-norm of a matrix.
-
NULL computes an orthonormal basis for the space perpendicular to a given collection of vectors
-
OMULT multiplies a circulant matrix times a vector.
-
OSOLVE solves a circulant linear system.
-
OVALS computes the eigenvalues of a circulant matrix.
-
OVER computes the least squares solution to an overdetermined linear system.
-
OVERT inverts a circulant matrix.
-
PACK
-
PCON estimates the condition number of a tridiagonal matrix.
-
PDET computes the determinant of a tridiagonal matrix.
-
PFACT factors a tridiagonal matrix.
-
POWER
-
PRECG solves a linear system using (preconditioned) conjugate gradients.
-
PSEUDO computes the regularized pseudoinverse,
-
PSOLVE solves a tridiagonal linear system.
-
PTRANS solves a transposed tridiagonal linear system.
-
PVECT computes the eigenvectors of a tridiagonal matrix.
-
PVERT inverts a tridiagonal matrix.
-
PWK
-
PX
-
QAD
-
QR computes the QR factorization of a general matrix with column pivoting.
-
QUASI uses a quasi-Newton method to solve a nonlinear system.
-
R4MAT_NORM_L1 returns the matrix L1 norm of an R4MAT.
-
R4MAT_PRINT prints an R4MAT.
-
R4MAT_PRINT_SOME prints some of an R4MAT.
-
RAD
-
RFN
-
ROOT solves a scalar nonlinear equation.
-
RPACK
-
RSOLVE computes the regularized solution to a linear system.
-
RUNPACK reverses the operation of RPACK by unpacking the matrix.
-
RVC
-
SCI
-
SCON estimates the condition number of a symmetric matrix.
-
SDET computes the determinant of a symmetric matrix.
-
SDIAG
-
SDIAG2 is the same as SDIAG, but the matrix is not stored in compressed format.
-
SFACT computes the LU factorization of a symmetric matrix.
-
SFT
-
SHESS
-
SIM
-
SING computes the singular value decomposition of a general matrix.
-
SINGB computes the singular value decomposition of a bidiagonal matrix
-
SLICE computes the eigenvalues in a given interval for a tridiagonal matrix.
-
SMULT
-
SNG0
-
SNG1
-
SOLVE
-
SORT
-
SORT2
-
SQ
-
SQR
-
SSIM
-
SSOLVE
-
STM
-
STM2
-
STO
-
STOPIT performs a test for convergence.
-
STP
-
SVALS computes the eigenvalues of a symmetric matrix.
-
SVECT computes the eigenvectors of a symmetric matrix.
-
SVERT inverts a symmetric matrix.
-
TCON estimates the condition number of a tridiagonal matrix.
-
TDET computes the determinant of a tridiagonal matrix.
-
TDG
-
TDIAG diagonalizes a tridiagonal matrix.
-
TFACT computes the LU factorization of a tridiagonal matrix.
-
TIMESTAMP prints out the current YMDHMS date as a timestamp.
-
TMULT multiplies a tridiagonal matrix times a vector.
-
TRANS solves A' * x = b, after A has been factored.
-
TSOLVE solves a tridiagonal linear system.
-
TTRANS solves a transposed tridiagonal linear system.
-
TVAL computes the k-th smallest or largest eigenvalue of a tridiagonal matrix whose cross-diagonal products are nonnegative.
-
TVALS computes the eigenvalues of a tridiagonal matrix.
-
TVECT computes the eigenvectors of a tridiagonal matrix.
-
TVERT inverts a tridiagonal matrix.
-
UNDER computes the least squares (minimum norm) solution to an underdetermined linear system.
-
UNPACK reverses the operation of PACK by unpacking the matrix.
-
UPDATE updates a vector, and computes the difference and norm.
-
VALS computes all eigenvalues of a general real matrix.
-
VECT computes an eigenvector of a general real matrix.
-
VERT inverts a general matrix.
-
VLS computes all eigenvalues of a complex Hessenberg matrix.
-
WHATIS prints the iteration number, iteration difference, and stopping criterion.
-
XP
You can go up one level to
the FORTRAN77 source codes.
Last revised on 16 November 2011.