fn


fn, a FORTRAN77 code which approximates elementary and special functions using Chebyshev polynomials; functions include Airy, Bessel I, Bessel J, Bessel K, Bessel Y, beta, confluent hypergeometric, cosine integral, Dawson's integral, digamma (psi), error, exponential integral, gamma, hyperbolic cosine integral, hyperbolic sine integral, incomplete gamma, log gamma, logarithmic integral, Pochhammer, psi, sine integral, Spence; by Wayne Fullerton.

The original version of the library provided routines for single precision complex, single precision real, and double precision real arguments and used the prefixes "C" and "D" to indicate the complex and double precision versions.

This scheme has been modified for consistency, and also to avoid conflict with the names of functions commonly provided by various compilers. The prefixes "C4_", "R4_" and "R8_" are used to indicate functions for single precision complex, single precision real, and double precision real arguments. For example, the sine function can be calculated by the functions C4_SIN, R4_SIN or R8_SIN.

The original, true, correct version of FN is available through NETLIB: https://www.netlib.org/fn/index.html.

Licensing:

The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

Languages:

fn is available in a C version and a C++ version and a Fortran90 version and a MATLAB version and an Octave version and a Python version.

Related Data and Programs:

fn_test

c4lib, a FORTRAN77 library which implements certain elementary functions for single precision complex variables;

C8LIB, a FORTRAN77 library which implements certain elementary functions for double precision complex variables;

CORDIC, a FORTRAN77 library which uses the CORDIC method to compute certain elementary functions.

F77_INTRINSICS, a FORTRAN77 program which illustrates the use of FORTRAN77 intrinsic functions.

G77_INTRINSICS, a FORTRAN77 program which illustrates the use of intrinsic functions provided by the Gnu G77 compiler.

GFORTRAN_INTRINSICS, a FORTRAN77 program which illustrates the use of intrinsic functions provided by the Gnu GFORTRAN compiler.

MACHAR, a FORTRAN77 library which computes the appropriate values of machine constants for a given machine.

MACHINE, a FORTRAN77 library which stores the appropriate values of machine constants for a given machine.

R4LIB, a FORTRAN77 library which contains many utility routines, using "R4" or "single precision real" arithmetic.

R8LIB, a FORTRAN77 library which contains many utility routines, using "R8" or "double precision real" arithmetic.

SPECFUN, a FORTRAN77 library which computes special functions, including Bessel I, J, K and Y functions, and the Dawson, E1, EI, Erf, Gamma, Psi/Digamma functions.

SPECIAL_FUNCTIONS, a FORTRAN77 library which computes special functions, by Shanjie Zhang, Jianming Jin;

TEST_VALUES, a FORTRAN77 library which supplies test values of various mathematical functions.

Reference:

  1. Milton Abramowitz, Irene Stegun,
    Handbook of Mathematical Functions,
    National Bureau of Standards, 1964,
    ISBN: 0-486-61272-4,
    LC: QA47.A34.
  2. Carter Bays, Stephen Durham,
    Improving a Poor Random Number Generator,
    ACM Transactions on Mathematical Software,
    Volume 2, Number 1, March 1976, pages 59-64.
  3. Nancy Bosten, EL Battiste,
    Remark on Algorithm 179: Incomplete Beta Ratio,
    Communications of the ACM,
    Volume 17, Number 3, March 1974, pages 156-157.
  4. 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.
  5. William Cody,
    ACM Algorithm 665, MACHAR, a subroutine to dynamically determine machine parameters,
    ACM Transactions on Mathematical Software,
    Volume 14, Number 4, pages 303-311, 1988.
  6. William Cody, William Waite,
    Software Manual for the Elementary Functions,
    Prentice Hall, 1980.
  7. 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.
  8. Wayne Fullerton,
    Portable Special Function Routines,
    in Portability of Numerical Software,
    edited by Wayne Cowell,
    Lecture Notes in Computer Science, Volume 57, pages 452-483,
    Springer 1977,
    ISBN: 978-3-540-08446-4,
    LC: QA297.W65.
  9. Walter Gautschi,
    A Computational Procedure for Incomplete Gamma Functions,
    ACM Transactions on Mathematical Software,
    Volume 5, Number 4, December 1979, pages 466-481.
  10. Richard Hamming,
    Numerical Methods for Scientists and Engineers,
    Dover, 1986,
    ISBN: 0486652416,
    LC: QA297.H28.
  11. K Mitchell,
    Tables of the function Integral ( 0 < y < x ) - log | 1 - y | dy / y with an account of some properties of this and related functions,
    Philosophical Magazine,
    Volume 40, pages 351-368, 1949.
  12. Malcolm Pike, David Hill,
    Algorithm 266: Pseudo-Random Numbers,
    Communications of the ACM,
    Volume 8, Number 10, October 1965, page 605.

Source Code:


Last revised on 05 October 2023.