cdflib


cdflib, a C++ code which evaluates cumulative density functions (CDF), by Barry Brown, James Lovato, Kathy Russell.

CDFLIB includes routines for evaluating the cumulative density functions of a variety of standard probability distributions. An unusual feature of this library is its ability to easily compute any one parameter of the CDF given the others. This means that a single routine can evaluate the CDF given the usual parameters, or determine the value of a parameter that produced a given CDF value.

The probability distributions covered include:

Note that the F and noncentral F distributions are not necessarily monotone in either degree of freedom argument. Consequently, there may be two degree of freedom arguments that satisfy the specified condition. An arbitrary one of these will be found by the routines.

The amount of computation required for the noncentral chisquare and noncentral F distribution is proportional to the value of the noncentrality parameter. Very large values of this parameter can require immense numbers of computation. Consequently, when the noncentrality parameter is to be calculated, the upper limit searched is 10,000.

https://www.netlib.org/random
the NETLIB random number web site, distributes a TAR file of the source code for the original CDFLIB library in C and FORTRAN;

https://biostatistics.mdanderson.org/SoftwareDownload/SingleSoftware.aspx?Software_Id=21 is a site at the University of Texas Department of Biostatistics and Applied Mathematics which makes available a more up-to-date FORTRAN90 version of the software, known as CDFLIB90

Licensing:

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

Languages:

cdflib is available in a C version and a C++ version and a FORTRAN90 version.

Related Data and Programs:

asa310, a C++ code which computes the CDF of the noncentral Beta distribution.

beta_nc, a C++ code which evaluates the CDF of the noncentral Beta distribution.

cdflib_test

gsl, a C++ code which contains routines for evaluating, sampling and inverting various probability distributions.

normal, a C++ code which contains routines for sampling the normal distribution.

prob, a C++ code which contains routines for evaluating and inverting the normal CDF, and many other distributions.

test_values, a C++ code which contains routines that store selected values of the normal CDF, and many other statistical distributions.

uniform, a C++ code which contains routines for sampling the uniform distribution.

Author:

Barry Brown, James Lovato, Kathy Russell,
Department of Biomathematics,
University of Texas,
Houston, Texas.

Reference:

  1. Milton Abramowitz, Irene Stegun,
    Handbook of Mathematical Functions,
    National Bureau of Standards, 1964,
    ISBN: 0-486-61272-4,
    LC: QA47.A34.
  2. Jacobus Bus, Jacob Dekker,
    Two Efficient Algorithms with Guaranteed Convergence for Finding a Zero of a Function,
    ACM Transactions on Mathematical Software,
    Volume 1, Number 4, December 1975, pages 330-345.
  3. 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 22-32.
  4. William Cody,
    Rational Chebyshev Approximations for the Error Function,
    Mathematics of Computation,
    Volume 23, Number 107, July 1969, pages 631-638.
  5. William Cody, Anthony Strecok, Henry Thacher,
    Chebyshev Approximations for the Psi Function,
    Mathematics of Computation,
    Volume 27, Number 121, January 1973, pages 123-127.
  6. Armido DiDinato, Alfred Morris,
    Algorithm 708: Significant Digit Computation of the Incomplete Beta Function Ratios,
    ACM Transactions on Mathematical Software,
    Volume 18, Number 3, September 1993, pages 360-373.
  7. Armido DiDinato, Alfred Morris,
    Computation of the Incomplete Gamma Function Ratios and their Inverse,
    ACM Transactions on Mathematical Software,
    Volume 12, Number 4, December 1986, pages 377-393.
  8. 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.
  9. William Kennedy, James Gentle,
    Statistical Computing,
    Marcel Dekker, 1980,
    ISBN: 0824768981,
    LC: QA276.4 K46.
  10. Karl Pearson,
    Tables of the Incomplete Beta Function,
    Cambridge University Press, 1968,
    ISBN: 0521059224,
    LC: QA351.P38.
  11. Frank Powell,
    Statistical Tables for Sociology, Biology and Physical Sciences,
    Cambridge University Press, 1982,
    ISBN: 0521284732,
    LC: QA276.25.S73.
  12. Stephen Wolfram,
    The Mathematica Book,
    Fourth Edition,
    Cambridge University Press, 1999,
    ISBN: 0-521-64314-7,
    LC: QA76.95.W65.
  13. Daniel Zwillinger, editor,
    CRC Standard Mathematical Tables and Formulae,
    30th Edition,
    CRC Press, 1996,
    ISBN: 0-8493-2479-3.
  14. https://www.netlib.org/random, the web site.

Source Code:


Last revised on 13 February 2021.