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:


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.


  1. Milton Abramowitz, Irene Stegun,
    Handbook of Mathematical Functions,
    National Bureau of Standards, 1964,
    ISBN: 0-486-61272-4,
    LC: QA47.A34.
  2. 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.
  3. Paul Bratley, Bennett Fox, Linus Schrage,
    A Guide to Simulation,
    Second Edition,
    Springer, 1987,
    ISBN: 0387964673,
    LC: QA76.9.C65.B73.
  4. Richard Brent,
    Algorithms for Minimization without Derivatives,
    Dover, 2002,
    ISBN: 0-486-41998-3,
    LC: QA402.5.B74.
  5. 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.
  6. 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.
  7. Carl deBoor,
    A Practical Guide to Splines,
    Springer, 2001,
    ISBN: 0387953663,
    LC: QA1.A647.v27.
  8. 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.
  9. John Dennis, Robert Schnabel,
    Numerical Methods for Unconstrained Optimization and Nonlinear Equations,
    SIAM, 1996,
    ISBN13: 978-0-898713-64-0,
    LC: QA402.5.D44.
  10. Jack Dongarra, Jim Bunch, Cleve Moler, Pete Stewart,
    LINPACK User's Guide,
    SIAM, 1979,
    ISBN13: 978-0-898711-72-1,
    LC: QA214.L56.
  11. 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.
  12. Leslie Fox, Ian Parker,
    Chebyshev Polynomials in Numerical Analysis,
    Oxford Press, 1968,
    LC: QA297.F65.
  13. 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.
  14. 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.
  15. Fred Fritsch, Ralph Carlson,
    Monotone Piecewise Cubic Interpolation,
    SIAM Journal on Numerical Analysis,
    Volume 17, Number 2, April 1980, pages 238-246.
  16. Charles Gear,
    Numerical Initial Value Problems in Ordinary Differential Equations,
    Prentice-Hall, 1971,
    ISBN: 0136266061,
    LC: QA372.G4.
  17. Ron Jones, David Kahaner,
    XERROR, The SLATEC Error Handling Package,
    Software: Practice and Experience,
    Volume 13, Number 3, 1983, pages 251-257.
  18. David Kahaner, Cleve Moler, Steven Nash,
    Numerical Methods and Software,
    Prentice Hall, 1989,
    ISBN: 0-13-627258-4,
    LC: TA345.K34.
  19. 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.
  20. Pierre LEcuyer,
    Random Number Generation,
    in Handbook of Simulation,
    edited by Jerry Banks,
    Wiley, 1998,
    ISBN: 0471134031,
    LC: T57.62.H37.
  21. 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.
  22. 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.
  23. Jorge More, Burton Garbow, Kenneth Hillstrom,
    User Guide for MINPACK-1,
    Technical Report ANL-80-74,
    Argonne National Laboratory, 1980.
  24. Frank Olver,
    Tables of Bessel Functions of Moderate or Large Orders,
    NPL Mathematical Tables, Volume 6,
    Her Majesty's Stationery Office, London, 1962.
  25. Robert Piessens, Elise deDoncker-Kapenga, Christian Ueberhuber, David Kahaner,
    QUADPACK: A Subroutine Package for Automatic Integration,
    Springer, 1983,
    ISBN: 3540125531,
    LC: QA299.3.Q36.
  26. 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.
  27. 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.
  28. Lawrence Shampine, Herman Watts,
    ZEROIN, a Root-Solving Routine,
    Technical Report: SC-TM-70-631,
    Sandia National Laboratories, September 1970.
  29. Paul Swarztrauber,
    Vectorizing the FFT's,
    in Parallel Computations,
    edited by Garry Rodrigue,
    Academic Press, 1982,
    ISBN: 0125921012,
    LC: QA76.6.P348.
  30. Stephen Wolfram,
    The Mathematica Book,
    Fourth Edition,
    Cambridge University Press, 1999,
    ISBN: 0-521-64314-7,
    LC: QA76.95.W65.

Source Code:

Examples and Tests:

You can go up one level to the FORTRAN77 source codes.

Last revised on 04 February 2012.