NMS
Numerical Analysis Library
NMS
is a FORTRAN77 library which
is a good beginner's
mathematical library, with well tested routines for standard problems.
NMS accompanies the text
"Numerical Methods and Software". The book is a modern discussion
of current numerical algorithms and software. The software that comes
with the book has been extracted from standard software libraries,
particularly the SLATEC library. Thus the book is also a good
introduction to the use of a portion of the SLATEC library, which
does not have a widely available solid hardcopy reference.
In particular, NMS includes some or all of:
-
BLAS1, the Basis Linear Algebra Subprograms, Level 1;
-
DDRIV, for integrating systems of ODE's;
-
FFTPACK, for Fast Fourier Transforms,
(Paul Swarztrauber);
-
FNLIB, Wayne Fullerton's special function package,
-
FUNPACK, Daniel Amos's special function package,
-
LINPACK, for solving linear systems.
-
MACHINE, for reporting values of machine arithmetic constants.
-
PCHIP, Piecewise Cubic Hermite Interpolation Package,
(Fritsch and Carlson);
-
QUADPACK, for approximate integration;
-
UNCMIN, for the unconstrained minimization of a function
of several variables.
-
XERROR, for handling run time errors.
Languages:
NMS is available in
a FORTRAN77 version and
a FORTRAN90 version.
Related Data and Programs:
BERNSTEIN_POLYNOMIAL,
a FORTRAN77 library which
evaluates the Bernstein polynomials,
useful for uniform approximation of functions;
BLAS1_D,
a FORTRAN77 library which
contains basic linear algebra routines for vector-vector operations,
using double precision real arithmetic;
FFTPACK5,
a FORTRAN77 library which
contains version 5 of FFTPACK.
LINPACK_D,
a FORTRAN77 library which
solves linear systems using double precision real arithmetic;
MACHINE,
a FORTRAN77 library which
reports the value of machine
arithmetic constants.
ODE,
a FORTRAN77 library which
implements the Shampine and Gordon ODE solver.
PCHIP,
a FORTRAN77 library which
can construct a piecewise cubic Hermite interpolant to data, and
carry out various related operations, by Fred Fritsch.
QR_SOLVE,
a FORTRAN77 library which
computes the least squares solution of a linear system A*x=b.
QUADPACK,
a FORTRAN77 library which
approximates integrals of functions.
RKF45,
a FORTRAN77 library which
is a Runge-Kutta-Fehlberg ODE solver.
TEST_VALUES,
a FORTRAN77 library which
supplies test values of various mathematical functions.
XERROR,
a FORTRAN77 library which
is designed to report and handle errors detected during program execution.
Reference:
-
Milton Abramowitz, Irene Stegun,
Handbook of Mathematical Functions,
National Bureau of Standards, 1964,
ISBN: 0-486-61272-4,
LC: QA47.A34.
-
Donald Amos, SL Daniel, MK Weston,
CDC 6600 subroutines IBESS and JBESS for Bessel functions
I(NU,X) and J(NU,X),
ACM Transactions on Mathematical Software,
Volume 3, pages 76-92, 1977.
-
Paul Bratley, Bennett Fox, Linus Schrage,
A Guide to Simulation,
Second Edition,
Springer, 1987,
ISBN: 0387964673,
LC: QA76.9.C65.B73.
-
Richard Brent,
Algorithms for Minimization without Derivatives,
Dover, 2002,
ISBN: 0-486-41998-3,
LC: QA402.5.B74.
-
Roger Broucke,
Algorithm 446:
Ten Subroutines for the Manipulation of Chebyshev Series,
Communications of the ACM,
Volume 16, Number 4, April 1973, pages 254-256.
-
Bill Buzbee,
The SLATEC Common Math Library,
in Sources and Development of Mathematical Software,
edited by Wayne Cowell,
Prentice-Hall, 1984,
ISBN: 0-13-823501-5,
LC: QA76.95.S68.
-
Carl deBoor,
A Practical Guide to Splines,
Springer, 2001,
ISBN: 0387953663,
LC: QA1.A647.v27.
-
Jacob Dekker,
Finding a Zero by Means of Successive Linear Interpolation,
in Constructive Aspects of the Fundamental Theorem of Algebra,
edited by Bruno Dejon, Peter Henrici,
Wiley, 1969,
ISBN: 0471203009,
LC: QA212.C65.
-
John Dennis, Robert Schnabel,
Numerical Methods for Unconstrained Optimization
and Nonlinear Equations,
SIAM, 1996,
ISBN13: 978-0-898713-64-0,
LC: QA402.5.D44.
-
Jack Dongarra, Jim Bunch, Cleve Moler, Pete Stewart,
LINPACK User's Guide,
SIAM, 1979,
ISBN13: 978-0-898711-72-1,
LC: QA214.L56.
-
Bennett Fox,
Algorithm 647:
Implementation and Relative Efficiency of Quasirandom
Sequence Generators,
ACM Transactions on Mathematical Software,
Volume 12, Number 4, December 1986, pages 362-376.
-
Leslie Fox, Ian Parker,
Chebyshev Polynomials in Numerical Analysis,
Oxford Press, 1968,
LC: QA297.F65.
-
Phyllis Fox, Andrew Hall, Norman Schryer,
Algorithm 528:
Framework for a Portable Library,
ACM Transactions on Mathematical Software,
Volume 4, Number 2, June 1978, page 176-188.
-
Fred Fritsch, Judy Butland,
A Method for Constructing Local Monotone Piecewise
Cubic Interpolants,
SIAM Journal on Scientific and Statistical Computing,
Volume 5, Number 2, June 1984, pages 300-304.
-
Fred Fritsch, Ralph Carlson,
Monotone Piecewise Cubic Interpolation,
SIAM Journal on Numerical Analysis,
Volume 17, Number 2, April 1980, pages 238-246.
-
Charles Gear,
Numerical Initial Value Problems in Ordinary Differential
Equations,
Prentice-Hall, 1971,
ISBN: 0136266061,
LC: QA372.G4.
-
Ron Jones, David Kahaner,
XERROR, The SLATEC Error Handling Package,
Software: Practice and Experience,
Volume 13, Number 3, 1983, pages 251-257.
-
David Kahaner, Cleve Moler, Steven Nash,
Numerical Methods and Software,
Prentice Hall, 1989,
ISBN: 0-13-627258-4,
LC: TA345.K34.
-
Charles Lawson, Richard Hanson, David Kincaid, Fred Krogh,
Algorithm 539:
Basic Linear Algebra Subprograms for Fortran Usage,
ACM Transactions on Mathematical Software,
Volume 5, Number 3, September 1979, pages 308-323.
-
Pierre LEcuyer,
Random Number Generation,
in Handbook of Simulation,
edited by Jerry Banks,
Wiley, 1998,
ISBN: 0471134031,
LC: T57.62.H37.
-
Peter Lewis, Allen Goodman, James Miller,
A Pseudo-Random Number Generator for the System/360,
IBM Systems Journal,
Volume 8, Number 2, 1969, pages 136-143.
-
George Marsaglia, Wai Wan Tsang,
A fast, easily implemented method for sampling from decreasing or
symmetric unimodal density functions,
SIAM Journal of Scientific and Statistical Computing,
Volume 5, Number 2, June 1984, pages 349-359.
-
Jorge More, Burton Garbow, Kenneth Hillstrom,
User Guide for MINPACK-1,
Technical Report ANL-80-74,
Argonne National Laboratory, 1980.
-
Frank Olver,
Tables of Bessel Functions of Moderate or Large Orders,
NPL Mathematical Tables, Volume 6,
Her Majesty's Stationery Office, London, 1962.
-
Robert Piessens, Elise deDoncker-Kapenga,
Christian Ueberhuber, David Kahaner,
QUADPACK: A Subroutine Package for Automatic Integration,
Springer, 1983,
ISBN: 3540125531,
LC: QA299.3.Q36.
-
Michael Powell,
A Hybrid Method for Nonlinear Equations,
in Numerical Methods for Nonlinear Algebraic Equations,
edited by Philip Rabinowitz,
Gordon and Breach, 1970,
ISBN13: 978-0677142302,
LC: QA218.N85.
-
Robert Schnabel, John Koontz, Barry Weiss,
A modular system of algorithms for unconstrained minimization,
Technical Report CU-CS-240-82,
Computer Science Department,
University of Colorado at Boulder, 1982.
-
Lawrence Shampine, Herman Watts,
ZEROIN, a Root-Solving Routine,
Technical Report: SC-TM-70-631,
Sandia National Laboratories, September 1970.
-
Paul Swarztrauber,
Vectorizing the FFT's,
in Parallel Computations,
edited by Garry Rodrigue,
Academic Press, 1982,
ISBN: 0125921012,
LC: QA76.6.P348.
-
Stephen Wolfram,
The Mathematica Book,
Fourth Edition,
Cambridge University Press, 1999,
ISBN: 0-521-64314-7,
LC: QA76.95.W65.
Source Code:
-
nms.f, the source code;
-
nms.sh,
commands to compile the source code;
Examples and Tests:
You can go up one level to
the FORTRAN77 source codes.
Last revised on 04 February 2012.