|
Statistics.Math | Portability | portable | Stability | experimental | Maintainer | bos@serpentine.com |
|
|
|
|
|
Description |
Mathematical functions for statistics.
|
|
Synopsis |
|
|
|
|
Functions
|
|
|
Compute the binomial coefficient n `choose` k. For
values of k > 30, this uses an approximation for performance
reasons. The approximation is accurate to 7 decimal places in the
worst case, but is typically accurate to 9 decimal places or
better.
Example:
7 `choose` 3 == 35
|
|
Beta function
|
|
|
Compute the natural logarithm of the beta function.
|
|
Chebyshev polynomials
|
|
A Chebyshev polynomial of the first kind is defined by the
following recurrence:
t 0 _ = 1
t 1 x = x
t n x = 2 * x * t (n-1) x - t (n-2) x
|
|
|
:: Vector v Double | | => Double | Parameter of each function.
| -> v Double | Coefficients of each polynomial term, in increasing order.
| -> Double | | Evaluate a Chebyshev polynomial of the first kind. Uses
Clenshaw's algorithm.
|
|
|
|
:: Vector v Double | | => Double | Parameter of each function.
| -> v Double | Coefficients of each polynomial term, in increasing order.
| -> Double | | Evaluate a Chebyshev polynomial of the first kind. Uses Broucke's
ECHEB algorithm, and his convention for coefficient handling, and so
gives different results than chebyshev for the same inputs.
|
|
|
Factorial
|
|
|
Compute the factorial function n!. Returns ∞ if the
input is above 170 (above which the result cannot be represented by
a 64-bit Double).
|
|
|
Compute the natural logarithm of the factorial function. Gives
16 decimal digits of precision.
|
|
Gamma function
|
|
|
:: Double | s
| -> Double | x
| -> Double | | Compute the normalized lower incomplete gamma function
γ(s,x). Normalization means that
γ(∞,x)=1. Uses Algorithm AS 239 by Shea.
|
|
|
|
Compute the logarithm of the gamma function Γ(x). Uses
Algorithm AS 245 by Macleod.
Gives an accuracy of 10–12 significant decimal digits, except
for small regions around x = 1 and x = 2, where the function
goes to zero. For greater accuracy, use logGammaL.
Returns ∞ if the input is outside of the range (0 < x
≤ 1e305).
|
|
|
Compute the logarithm of the gamma function, Γ(x). Uses a
Lanczos approximation.
This function is slower than logGamma, but gives 14 or more
significant decimal digits of accuracy, except around x = 1 and
x = 2, where the function goes to zero.
Returns ∞ if the input is outside of the range (0 < x
≤ 1e305).
|
|
Logarithm
|
|
|
Compute the natural logarithm of 1 + x. This is accurate even
for values of x near zero, where use of log(1+x) would lose
precision.
|
|
References
|
|
- Broucke, R. (1973) Algorithm 446: Ten subroutines for the
manipulation of Chebyshev series. Communications of the ACM
16(4):254–256. http://doi.acm.org/10.1145/362003.362037
- Clenshaw, C.W. (1962) Chebyshev series for mathematical
functions. National Physical Laboratory Mathematical Tables 5,
Her Majesty's Stationery Office, London.
- Lanczos, C. (1964) A precision approximation of the gamma
function. SIAM Journal on Numerical Analysis B
1:86–96. http://www.jstor.org/stable/2949767
- Macleod, A.J. (1989) Algorithm AS 245: A robust and reliable
algorithm for the logarithm of the gamma function.
Journal of the Royal Statistical Society, Series C (Applied Statistics)
38(2):397–402. http://www.jstor.org/stable/2348078
- Shea, B. (1988) Algorithm AS 239: Chi-squared and incomplete
gamma integral. Applied Statistics
37(3):466–473. http://www.jstor.org/stable/2347328
|
|
Produced by Haddock version 2.4.2 |