specfun
specfun,
a Fortran77 code which
evaluates special functions, including Bessel I, J, K and Y functions,
Dawson Integral, Error (Erf), Exponential Integral (E1 and EI), Gamma,
log Gamma, and Psi/Digamma,
by William Cody and Laura Stoltz;
The code can evaluate the I, J, K and Y
Bessel functions, of orders 0, 1, or arbitrary positive integer
order N, or for any positive noninteger order (an unusual
feature).
The original, true, correct (Fortran77) version
is available through NETLIB:
http://www.netlib.org/specfun/index.html".
Licensing:
The computer code and data files described and made available on this web page
are distributed under
the MIT license.
Languages:
specfun is available in
a Fortran77 version and
a Fortran90 version.
Related Data and Programs:
specfun_test
cordic,
a Fortran77 library which
uses the CORDIC method to compute certain elementary functions.
MACHAR,
a Fortran77 library which
is used to compute machine arithmetic parameters.
POLPAK,
a Fortran77 library which
evaluates certain mathematical functions, especially some
recursive polynomial families.
SLATEC,
a Fortran90 library which
evaluates many special functions.
SPECIAL_FUNCTIONS,
a Fortran77 library which
computes special functions,
by Shanjie Zhang, Jianming Jin;
TEST_VALUES,
a Fortran77 library which
contains a few test values of many functions.
TOMS644,
a Fortran77 library which
evaluates the Bessel I, J, K, Y functions, the Airy functions Ai and Bi,
and the Hankel function, for complex argument and real order.
TOMS715,
a Fortran77 library which
evaluates special functions, including the Bessel I, J, K, and Y functions
of order 0, of order 1, and of any real order, Dawson's integral,
the error function, exponential integrals, the gamma function,
the normal distribution function, the psi function.
This is a version of ACM TOMS algorithm 715.
Author:
William Cody, Laura Stoltz.
Reference:

Donald Amos,
Computation of Modified Bessel Functions and Their Ratios,
Mathematics of Computation,
Volume 28, Number 24, January 1974.

John Campbell,
On Temme's Algorithm for the Modified Bessel Functions of the
Third Kind,
ACM Transactions on Mathematical Software,
Volume 6, Number 4, December 1980, pages 581586.

John Campbell,
Bessel functions J_nu(x) and Y_nu(x) of real order and real
argument,
Computational Physics Communications,
Volume 18, 1979, pages 133142.

William Cody,
An Overview of Software Development for Special Functions,
in Numerical Analysis Dundee, 1975,
edited by GA Watson,
Lecture Notes in Mathematics, 506,
Springer, 1976,
LC: QA3.L28.v506.

William Cody,
Rational Chebyshev Approximations for the Error Function,
Mathematics of Computation,
Volume 23, Number 107, July 1969, pages 631638.

William Cody,
Algorithm 597:
Sequence of Modified Bessel Functions of the First Kind,
ACM Transactions of Mathematical Software,
Volume 9, Number 2, June 1983, pages 242245.

William Cody,
Algorithm 665:
MACHAR, a subroutine to dynamically determine
machine parameters,
ACM Transactions on Mathematical Software,
Volume 14, Number 4, December 1988, pages 303311.

William Cody,
Algorithm 715:
SPECFUN  A Portable Fortran Package of
Special Function Routines and Test Drivers,
ACM Transactions on Mathematical Software,
Volume 19, Number 1, March 1993, pages 2232.

William Cody,
Performance evaluation of programs for the error and
complementary error functions,
ACM Transactions on Mathematical Software,
Volume 16, Number 1, March 1990, pages 2937.

William Cody,
Performance evaluation of programs related to the real gamma function,
ACM Transactions on Mathematical Software,
Volume 17, Number 1, March 1991, pages 4654.

William Cody, Kenneth Hillstrom,
Chebyshev Approximations for the Natural Logarithm of the
Gamma Function,
Mathematics of Computation,
Volume 21, Number 98, April 1967, pages 198203.

William Cody, Kathleen Paciorek, Henry Thacher,
Chebyshev Approximations for Dawson's Integral,
Mathematics of Computation,
Volume 24, Number 109, January 1970, pages 171178.

William Cody, Laura Stoltz,
Performance evaluation of programs for certain Bessel functions,
ACM Transactions on Mathematical Software,
Volume 15, Number 1, March 1989, pages 4148.

William Cody, Laura Stoltz,
The Use of Taylor series to test accuracy of function programs,
ACM Transactions on Mathematical Software,
Volume 17, Number 1, March 1991, pages 5563.

William Cody, Anthony Strecok, Henry Thacher,
Chebyshev Approximations for the Psi Function,
Mathematics of Computation,
Volume 27, Number 121, January 1973, pages 123127.

William Cody, Henry Thacher,
Rational Chebyshev Approximations for the Exponential
Integral E1(x),
Mathematics of Computation,
Volume 22, Number 103, July 1968, pages 641649.

William Cody, Henry Thacher,
Chebyshev Approximations for the Exponential
Integral Ei(x),
Mathematics of Computation,
Volume 23, Number 106, April 1969, pages 289303.

William Cody, William Waite,
Software Manual for the Elementary Functions,
Prentice Hall, 1980,
ISBN: 0138220646,
LC: QA331.C635.

Walter Gautschi,
Algorithm 282,
Derivatives of EXP(X)/X, COS(X)/X, and SIN(X)/X,
Communications of the ACM,
Volume 9, April 1966, page 272.

John Hart, Ward Cheney, Charles Lawson, Hans Maehly,
Charles Mesztenyi, John Rice, Henry Thatcher,
Christoph Witzgall,
Computer Approximations,
Wiley, 1968,
LC: QA297.C64.

Michael Malcolm,
Algorithms to Reveal Properties of Floating Point Arithmetic,
Communications of the ACM,
Volume 15, Number 11, November 1972, pages 949951.

Frank Olver, David Sookne,
A Note on Backward Recurrence Algorithms,
Mathematics of Computation,
Volume 26, 1972, pages 941947.

Malcolm Pike, David Hill,
Algorithm 266:
PseudoRandom Numbers,
Communications of the ACM,
Volume 8, Number 10, October 1965, page 605.

David Sookne,
Bessel Functions of Real Argument and Integer Order,
NBS Journal of Research B,
Volume 77B, 1973, pages 125132.

Nico Temme,
On the numerical evaluation of the ordinary Bessel function
of the second kind,
Journal of Computational Physics,
Volume 21, 1976, pages 343350.
Source Code:
Last revised on 19 December 2023.