5 Special Functions
5.1 Overview
The special package of Commons-Math gathers several useful special functions not provided by java.lang.Math.
5.2 Erf functions
Erf contains several useful functions involving the Error Function, Erf.
Function |
Method |
Reference |
Error Function |
erf |
See Erf from MathWorld |
5.3 Gamma functions
Class Gamma contains several useful functions involving the Gamma Function.
Gamma
Gamma.gamma(x) computes the Gamma function, Γ(x) (see MathWorld, DLMF). The accuracy of the Commons-Math implementation is assessed by comparison with high precision values computed with the Maxima Computer Algebra System.
Interval |
Values tested |
Average error |
Standard deviation |
Maximum error |
-5 < x < -4 |
x[i] = i / 1024, i = -5119, ..., -4097 |
0.49 ulps |
0.57 ulps |
3.0 ulps |
-4 < x < -3 |
x[i] = i / 1024, i = -4095, ..., -3073 |
0.36 ulps |
0.51 ulps |
2.0 ulps |
-3 < x < -2 |
x[i] = i / 1024, i = -3071, ..., -2049 |
0.41 ulps |
0.53 ulps |
2.0 ulps |
-2 < x < -1 |
x[i] = i / 1024, i = -2047, ..., -1025 |
0.37 ulps |
0.50 ulps |
2.0 ulps |
-1 < x < 0 |
x[i] = i / 1024, i = -1023, ..., -1 |
0.46 ulps |
0.54 ulps |
2.0 ulps |
0 < x ≤ 8 |
x[i] = i / 1024, i = 1, ..., 8192 |
0.33 ulps |
0.48 ulps |
2.0 ulps |
8 < x ≤ 141 |
x[i] = i / 64, i = 513, ..., 9024 |
1.32 ulps |
1.19 ulps |
7.0 ulps |
Log Gamma
Gamma.logGamma(x) computes the natural logarithm of the Gamma function, log Γ(x), for x > 0 (see MathWorld, DLMF). The accuracy of the Commons-Math implementation is assessed by comparaison with high precision values computed with the Maxima Computer Algebra System.
Interval |
Values tested |
Average error |
Standard deviation |
Maximum error |
0 < x ≤ 8 |
x[i] = i / 1024, i = 1, ..., 8192 |
0.32 ulps |
0.50 ulps |
4.0 ulps |
8 < x ≤ 1024 |
x[i] = i / 8, i = 65, ..., 8192 |
0.43 ulps |
0.53 ulps |
3.0 ulps |
1024 < x ≤ 8192 |
x[i], i = 1025, ..., 8192 |
0.53 ulps |
0.56 ulps |
3.0 ulps |
8933.439345993791 ≤ x ≤ 1.75555970201398e+305 |
x[i] = 2**(i / 8), i = 105, ..., 8112 |
0.35 ulps |
0.49 ulps |
2.0 ulps |
Regularized Gamma
Gamma.regularizedGammaP(a, x) computes the value of the regularized Gamma function, P(a, x) (see MathWorld).
5.4 Beta functions
Beta contains several useful functions involving the Beta Function.
Log Beta
Beta.logBeta(a, b) computes the value of the natural logarithm of the Beta function, log B(a, b). (see MathWorld, DLMF). The accuracy of the Commons-Math implementation is assessed by comparison with high precision values computed with the Maxima Computer Algebra System.
Interval |
Values tested |
Average error |
Standard deviation |
Maximum error |
0 < x ≤ 8 0 < y ≤ 8 |
x[i] = i / 32, i = 1, ..., 256 y[j] = j / 32, j = 1, ..., 256 |
1.80 ulps |
81.08 ulps |
14031.0 ulps |
0 < x ≤ 8 8 < y ≤ 16 |
x[i] = i / 32, i = 1, ..., 256 y[j] = j / 32, j = 257, ..., 512 |
0.50 ulps |
3.64 ulps |
694.0 ulps |
0 < x ≤ 8 16 < y ≤ 256 |
x[i] = i / 32, i = 1, ..., 256 y[j] = j, j = 17, ..., 256 |
1.04 ulps |
139.32 ulps |
34509.0 ulps |
8 < x ≤ 16 8 < y ≤ 16 |
x[i] = i / 32, i = 257, ..., 512 y[j] = j / 32, j = 257, ..., 512 |
0.35 ulps |
0.48 ulps |
2.0 ulps |
8 < x ≤ 16 16 < y ≤ 256 |
x[i] = i / 32, i = 257, ..., 512 y[j] = j, j = 17, ..., 256 |
0.31 ulps |
0.47 ulps |
2.0 ulps |
16 < x ≤ 256 16 < y ≤ 256 |
x[i] = i, i = 17, ..., 256 y[j] = j, j = 17, ..., 256 |
0.35 ulps |
0.49 ulps |
2.0 ulps |
|