# 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.

William Hager

### Reference:

1. William Hager,
Applied Numerical Linear Algebra,
Prentice-Hall, 1988,
ISBN13: 978-0130412942,
LC: QA184.H33.
2. William Hager,
Condition Estimates,
SIAM Journal on Scientific and Statistical Computing,
Volume 5, Number 2, June 1984, pages 311-316.

### List of Routines:

• 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
• 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.
• 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.