- Natural logarithm of Gamma function
-
Uses Lanczos' approximation, based on algorithm in Handbook.
Handles arguments < 1 using G(1-z)=pi*z/(G(1+z)*sin(pi*z))
since the approximation is best for z > 1.
Handles z < 0 as long as non-integer and G(z)>=0.
static double lnGamma(const double x)
- Gamma function
-
Uses Lanczos' approximation, based on algorithm in Handbook.
Handles arguments < 1 using G(1-z)=pi*z/(G(1+z)*sin(pi*z))
since the approximation is best for z > 1.
Handles z < 0 as long as non-integer.
static double Gamma(const double x)
- Bessel Function J0(x)
-
From AMS-55.
error: e < 5x10-8 : |x| <= 3,
e < 1.6x10-8 / sqrt(x) : |x| > 3.
static double Bessel_J0(const double x)
- Bessel Function J1(x)
-
From AMS-55
Error e < 1.6x10-8 x : |x| <= 3,
e < 4x10-8 / sqrt(x) : |x| > 3.
static double Bessel_J1(const double x)
- Bessel Function Y0(x), x > 0
-
From AMS-55
Error e < 1.4x10-8 : x <= 3,
e < 1.6x10-8 / sqrt(x) : x > 3.
static double Bessel_Y0(const double x)
- Bessel Function Y1(x) : x > 0
-
From AMS-55
Error e < 1.1x10-7 / x : x <= 3,
e < 4x10-8 / sqrt(x) : x > 3.
static double Bessel_Y1(const double x)
- Complete Elliptic Integral of the First Kind K(x) : 0 <= x < 1
-
From AMS-55.
Error e <= 2x10-8.
static double elliptic_K(const double x)
- Complete Elliptic Integral of the Second Kind E(x) : 0 <= x < 1
-
From AMS-55.
Error e < 2x10-8.
static double elliptic_E(const double x)
- Complementary Error Function erfc(x)
-
From AMS-55.
Error e <= 3x10-7.
static double Erfc(const double x)
- Error Function erf(x)
-
Uses AMS-55 erfc(x): erf(x)=1-erfc(x).
Error e <= 3x10-7.
static double Erf(const double x)
- Fresnel Integral C(x) : x >= 0
-
AMS-55: series approximation for x <= 4
interpolated table for 4 < x <= 5,
trigonometric approximation for x > 5,
Error e < 3x10-7.
static double Fresnel_C(const double z)
- Fresnel Integral S(x) : x >= 0
-
AMS-55: series approximation for x <= 4
interpolated table for 4 < x <= 5,
trigonometric approximation for x > 5.
Error e < 3x10-7.
static double Fresnel_S(const double z)