( 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.
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.
- Version 1.0 March 1986
- Version 2.0 March 1987
- Version 3.0 April 1988
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)
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