----------------------------------------------------------------------
N I S T C O R E M A T H L I B R A R Y ( C M L I B )
----------------------------------------------------------------------
( Version 3.0 --- April 1988 )
A collection of non-proprietary, easily transportable Fortran
subprogram packages solving a variety of mathematical and statistical
problems.
Compiled by Ronald F. Boisvert (boisvert@nist.gov)
Sally E. Howe
David K. Kahaner
Computing and Applied Mathematics Laboratory
National Institute of Standards and Technology
Gaithersburg, MD 20899
Although most applications will only use a small number of CMLIB
modules, there are no name conflicts within the library and thus all
of CMLIB can easily be installed. All the documentation is machine
readable.
Distribution : CMLIB is distributed as a compressed Unix tar file
------------ containing all CMLIB source and documentation. When
uncompressed it expands to about 14 Mbytes. To obtain
cmlib for your workstation, do the following :
mkdir cmlib
cd cmlib
ftp ftp.nist.gov
user anonymous
cd cmlib
binary
get src.tar.Z cmlib.tar.Z
quit
zcat cmlib.tar.Z | tar xvf -
rm cmlib.tar.Z
Also available on this ftp site:
src.zip ................. Zipped source file for unbundling on PCs.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ +
+ DISCLAIMER +
+ +
+ Inclusion of computer programs in the NIST Core Math Library (CMLIB) +
+ does not imply certification, recommendation, or endorsement by the +
+ National Institute of Standards and Technology, nor does it imply +
+ that the programs are necessarily the best available for the purpose. +
+ +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ADAPT.........A subroutine for evaluation of the integral of a user
specified function on a hyper rectangle of dimension 2
through 20.
AMOSLIB.......A collection of special function routines with
particular emphasis on the special functions of
statistics.
BLAS..........Basic linear algebra subroutines. Perform various
elementary matrix and vector opertaions.
BOCLS.........Solves bounded and linearly constrained linear least
squares problems.
BSPLINE.......Subroutines for computing with piecewise polynomials (B-
splines). Includes interpolation, differentiation and
integration with B-splines.
BVSUP.........Solves linear two-point boundary value problems using
superposition voupled with an orthonormalization
procedure and a variable-step integration scheme.
CDRIV.........Solves initial value problems for systems of ordinary
differential equations including stiff equations.
Complex differential equations, real independent
variable.
CLUSTER.......Subroutines for cluster analysis and related line
printer graphics. Included are routines for clustering
variables and/or observations using algorithms such as
direct joining and splitting, Fisher's exact optimi-
zation, single-link, K-means, and minimum mutations, and
routines for estimating missing values.
CPQR79........Two subprograms for finding all (complex) zeros of real
or complex polynomials. (Based on EISPACK software.)
CPZERO........Two subprograms for finding all (complex) zeros of real
or complex polynomials. (Based on Newton's method.)
DBSPLIN.......Subroutines for computing with piecewise polynomials (B-
splines). Double precision version of BSPLINE package.
DDASSL........Solves the system of differential/algebraic equations of
the form g(t,y,yprime) = 0. (Double precision version of
SDASSL)
DEPAC.........A suite of programs for solving initial value problems
for ordinary differential equations.
DDRIV.........Solves initial value problems for systems of ordinary
differential equations, including stiff systems. (Double
precision version of SDRIV).
DNL2SN........A collection of two subprograms for nonlinear least
squares problems and three subprograms for general
unconstrained minimization problems. Double precision
version of NL2SN.
DQRLSS........Solves linear least squares problem in the matrix form
Ax=b. Uses LINPACK routines. Easy to use. Double
Precision version of SQRLSS.
DTENSBS.......Interpolation of two and three dimensional gridded data
using tensor products of one dimensional B-spline basis
functions. Double precision version of TENSBS.
EISPACK.......Solves various linear algebraic eigenvalue problems.
FC............Solves constrained least squares problems.
FCNPAK........A collection of special function routines, including the
associated Legendre functions (Ferrers functions), the
normalized Legendre polynomials, and elliptic integrals
of the first, second, and third kinds.
FFTPKG........Subroutines for computing the fast Fourier transform in
various forms.
FNLIB.........Portable special function routines (e.g. Bessel
functions, the error function, etc.)
FISHPAK.......FISHPAK solves separable elliptic boundary value
problems in two and three dimensions using a variety of
coordinate systems.
LICEPAK.......Solves various linear algebraic eigenvalue problems.
(Provides an interface to the EISPACK package).
LINDRV........Programs to solve linear systems of algebraic equations
in a number of forms. Provides an easy to use interface
to the LINPACK package.
LINPAKC.......Analyse and solve various systems of linear algebraic
equations. (Complex precision version of LINPACK).
LINPAKD.......Analyse and solve various systems of linear algebraic
equations. (Double precision version of LINPACK).
LINPAKS.......Analyse and solve various systems of linear algebraic
equations. (Single precision version of LINPACK).
LOTPS.........A set of programs for smooth interpolation of scattered
data in two dimensions using thin-plate splines.
MACHCON.......Functions that return machine-dependent constants. These
are used by many routines in CMLIB.
MXENTRP.......compute maximum entropy spectrum estimates for equally
spaced time series.
NL2SN.........A collection of two subprograms for nonlinear least
squares problems and three subprograms for general
unconstrained minimization problems.
ODRPACK.......A collection of subprograms for computing a weighted
orthogonal distance regression or ordinary linear or
nonlinear least squares solution. (Both single and dou-
ble precision versions are available.)
PCHIPD........is a set of programs for interpolation of univariate
data and which is specially adapted to producing fits
which are are aesthetically pleasing. (Double precision
version of PCHIP).
PCHIPS........is a set of programs for interpolation of univariate
data and which is specially adapted to producing fits
which are are aesthetically pleasing. (Single precision
version of PCHIP).
Q1DA..........evaluates one dimensional integrals automatically, easy
to use but very powerful.
QUADPKD.......is a set of programs for evaluating definite integrals
of functions of one variable; the double precision
version of QUADPKS.
QUADPKS.......is a set of programs for evaluating definite integrals
of functions of one variable; including singular
integrands and infinite intervals .
RV............generates uniform random numbers or normal numbers with
zero mean and standard deviation one. Portable,
reproducible, and with a long cycle
SDASSL........Solves the system of differential/algebraic equation of
the form g(t,y,yprime) = 0.
SDRIV.........Solves initial value problems for systems of ordinary
differential equations, including stiff systems.
SGLSS.........Solves over or underdetermined linear systems in least
squares sense.
SLRPACK.......A collection of subprograms for simple linear regression
SLVBLK........solves linear systems of algebraic equations where the
coefficient matrix is in "almost block diagonal" form
SNLS1E........Solves non-linear least squares problems and non-linear
systems of equations.
SPLP..........Solves linear programming problems (minimize a linear
function of n variables subject to linear equality
constraints).
SQRLSS........Solves linear least squares problem in the matrix form
Ax=b. Uses LINPACK routines. Easy to use.
SSORT.........Fast in-core sorting of arrays.
TENSBS........Interpolation of two and three dimensional gridded data
using tensor products of one dimensional B-spline basis
functions.
TWODQ.........Automatic evaluation of two dimensional integral of a
function f(x,y) on one or more triangles in the plane.
UNCMIN........Solves the unconstrained minimization problem for a
real-valued twice-continuously-differentiable function
of n variables.
VFFT..........A vectorized package of Fortran subprograms for the fast
Fourier transform of multiple real sequences.
VHS3..........A vectorized package of Fortran subprograms for the
solution of a three-dimensional Helmholtz equation on a
staggered grid.
VSFFT.........A vectorized package of Fortran subprograms for the fast
transform of multiple real sequences defined on a
staggered grid.
XBLAS.........Extended basic linear algebra subroutines. Perform
various matrix and vector operations not found in the
BLAS.
XERROR........Error handling utilities. These are used by most
subprograms in CMLIB.
ZEROIN........Finds zeros of a function of one variable.
-------------------------------------------------------------------------
REVISION HISTORY
Version 1.0 March 1986
Version 2.0 March 1987
Version 3.0 April 1988
-------------------------------------------------------------------------
SUMMARY OF CHANGES
Version 1.0 (March 1986) to Version 2.0 (March 1987)
NEW SUBLIBRARIES
CLUSTER = cluster analysis
VFFT = multiple real FFTs (with Cyber 205 vector version)
VSFFT = multiple real staggered grid FFTs (with Cyber 205 vector
version)
VHS3 = solution of Poisson/Helmholtz equation on a staggered
grid in three dimensions (with Cyber 205 vector version)
MODIFIED SUBLIBRARIES (source, documentation, and tests changed)
SDRIV = new version (dimensions of WORK, IWORK changed)
DDRIV = new version (dimensions of WORK, IWORK changed)
CDRIV = new version (dimensions of WORK, IWORK changed)
FCNPAK = new version of all routines except RC, RD, RF
AMOSLIB = added four new subprograms: BESY, DBESJ, DPSIFN, PSIFN
OTHER MODIFICATIONS
ADAPT = test program changed (changed MAXPTS and WORKSTR from
2000 to 3000)
BLAS = test program changed (calls to DQDOTA and DQDOTI removed)
-------------------------------------------------------------------------
SUMMARY OF CHANGES
Version 2.0 (March 1987) to Version 3.0 (April 1988)
NEW SUBLIBRARIES
ODRPACK = orthogonal distance regression
PCHIPD = piecewise cubic Hermite interpolation (double precision
MODIFIED SUBLIBRARIES (source, documentation, and tests changed)
VFFT = added routines for multiple trigonometric transforms,
e.g. sine, cosine (with Cyber 205 versions)
QUADPKS = added routine EA for accelerating convergence of
sequences
QUADPKD = added routine DEA for accelerating convergence of
sequences (double precision version of EA)
PCHIPS = new version
FCNPAK = new version Legendre function routines XDLEGF, XSLEGF,
XDNRMP, XSNRMP
OTHER MODIFICATIONS
AMOSLIB = added missing internal routines BESYNU, YAIRY, DBESY,
DASYJY, DBSYNU, DYAIRY
BOCLS = added missing internal routine DMOUT
FC = minor change to test program
LINDRV = minor change to test programs LINDRV1 and LINDRV2
MACHCON = added machine constants for Cyber 180 NOS/VE, SUN 3,
and CONVEX C-120
SDRIV = added assignment G=0.0 before RETURN in function G
SLRPACK = minor change to test program
VFFT = fixed reference to function PIMACH in VRADB3, VRADB5,
VRADBG, VRADF3, VRADF5, VRADFG, VRFTI1
VHS3 = fixed reference to function PIMACH in VSCOSI, VSCSQI