An overview of the Distfun toolbox.
The goal of this toolbox is to provide accurate distribution functions. The provided functions are designed to be compatible with Matlab.
The goals of this toolbox are the following.
All functions are tested with tables (actually, csv datasets). The tests includes accuracy tests, so that the accuracy should by from 13 to 15 significant digits.
For each distribution, we have
the probability distribution function (PDF)
the cumulated distribution function (CDF)
the inverse CDF
the random number generator
the statistics (mean and variance)
The CDF provides the upper and the lower tail of the distribution, for accuracy reasons.
The uniform random numbers are of high quality. The default is to use the Mersenne-Twister generator.
Each function has a consistent help page. This removes confusions in the meaning of the parameters and clarifies the differences with other computing languages (e.g. R).
The design is similar to Matlab's distribution functions. A significant difference with Matlab's function is that both the upper and lower tails are available in the CDF of the "distfun" toolbox, while Matlab only provides the lower tail. Hence, "distfun" should provide a better accuracy when probabilities close to 1 are computed (e.g. p=1 - 1.e-4).
The differences with Scilab is that a consistent set of functions is provided. First, Scilab currently does not provide the PDFs. Users may write their own functions: this is not as easy as it seems, and may lead to very innaccurate results if floating point issues are ignored. Secondly, Scilab does not provide a consistent sets of functions: the CDF and the random number generators are provided in two different toolboxes, with no consistency.
The difference with Stixbox is that the current function are tested, accurate, with consistent help pages.
The toolbox is based on both macros and compiled source code.
For each PDF, we present the mathematical definition of the function that we use. This removes potential ambiguities.
In general, we do not give the mathematical definition of the CDF function. This is because it can be derived directly from the PDF by integration. For example, assume that the PDF function f has the support (-inf,inf). Therefore the CDF function F is defined by: