nms
nms,
a FORTRAN90 code which
is a good beginner's
mathematical code, with well tested routines for standard problems.
The code 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 code. Thus the book is also a good
introduction to the use of a portion of the SLATEC code, which
does not have a widely available solid hardcopy reference.
In particular, the code 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.
Licensing:
The computer code and data files made available on this web page
are distributed under
the GNU LGPL license.
Languages:
nms is available in
a FORTRAN90 version.
Related Data and Programs:
nms_test
bernstein_polynomial,
a FORTRAN90 code which
evaluates the Bernstein polynomials,
useful for uniform approximation of functions;
distance_to_position,
a FORTRAN90 code which
estimates the positions of cities based on a citytocity distance table.
It uses UNCMIN from NMS to solve this problem.
fftpack5,
a FORTRAN90 code which
contains version 5 of FFTPACK.
machine,
a FORTRAN90 code which
reports the value of machine
arithmetic constants.
ode,
a FORTRAN90 code which
implements the Shampine and Gordon ODE solver.
qr_solve,
a FORTRAN90 code which
computes the least squares solution of a linear system A*x=b.
quadpack,
a FORTRAN90 code which
approximates integrals of functions.
reactor_simulation,
a FORTRAN90 code which
is a simple Monte Carlo simulation of the shielding effect of a slab
of a certain thickness in front of a neutron source. This program was
provided as an example with the book "Numerical Methods and Software."
rkf45,
a FORTRAN90 code which
is a RungeKuttaFehlberg ODE solver.
slatec,
a FORTRAN90 code which
evaluates many special functions.
xerror,
a FORTRAN90 code 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: 0486612724,
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 7692, 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: 0486419983,
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 254256.

Bill Buzbee,
The SLATEC Common Math code,
in Sources and Development of Mathematical Software,
edited by Wayne Cowell,
PrenticeHall, 1984,
ISBN: 0138235015,
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: 9780898713640,
LC: QA402.5.D44.

Jack Dongarra, Jim Bunch, Cleve Moler, Pete Stewart,
LINPACK User's Guide,
SIAM, 1979,
ISBN13: 9780898711721,
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 362376.

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 code,
ACM Transactions on Mathematical Software,
Volume 4, Number 2, June 1978, page 176188.

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

Fred Fritsch, Ralph Carlson,
Monotone Piecewise Cubic Interpolation,
SIAM Journal on Numerical Analysis,
Volume 17, Number 2, April 1980, pages 238246.

Charles Gear,
Numerical Initial Value Problems in Ordinary Differential
Equations,
PrenticeHall, 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 251257.

David Kahaner, Cleve Moler, Steven Nash,
Numerical Methods and Software,
Prentice Hall, 1989,
ISBN: 0136272584,
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 308323.

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 PseudoRandom Number Generator for the System/360,
IBM Systems Journal,
Volume 8, Number 2, 1969, pages 136143.

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

Jorge More, Burton Garbow, Kenneth Hillstrom,
User Guide for MINPACK1,
Technical Report ANL8074,
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 deDonckerKapenga,
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: 9780677142302,
LC: QA218.N85.

Robert Schnabel, John Koontz, Barry Weiss,
A modular system of algorithms for unconstrained minimization,
Technical Report CUCS24082,
Computer Science Department,
University of Colorado at Boulder, 1982.

Lawrence Shampine, Herman Watts,
ZEROIN, a RootSolving Routine,
Technical Report: SCTM70631,
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: 0521643147,
LC: QA76.95.W65.
Source Code:
Last revised on 18 June 2020.