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,
PrenticeHall, 1988,
ISBN13: 9780130412942,
LC: QA184.H33.

William Hager,
Condition Estimates,
SIAM Journal on Scientific and Statistical Computing,
Volume 5, Number 2, June 1984, pages 311316.
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 1norm 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 (???JenkinsTraub?))

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 matrixvector product.

NEWTON applies one step of Newton's method to the characteristic polynomial for a tridiagonal matrix

NORM1 estimates the 1norm 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 quasiNewton 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 kth smallest or largest eigenvalue of a tridiagonal matrix whose crossdiagonal 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.