Class Erf
-
Method Summary
Modifier and TypeMethodDescriptionstatic double
erf
(double x) Returns the error function.static double
erf
(double x1, double x2) Returns the difference between erf(x1) and erf(x2).static <T extends CalculusFieldElement<T>>
Terf
(T x) Returns the error function.static <T extends CalculusFieldElement<T>>
Terf
(T x1, T x2) Returns the difference between erf(x1) and erf(x2).static double
erfc
(double x) Returns the complementary error function.static <T extends CalculusFieldElement<T>>
Terfc
(T x) Returns the complementary error function.static double
erfcInv
(double x) Returns the inverse erfc.static <T extends CalculusFieldElement<T>>
TerfcInv
(T x) Returns the inverse erfc.static double
erfInv
(double x) Returns the inverse erf.static <T extends CalculusFieldElement<T>>
TerfInv
(T x) Returns the inverse erf.
-
Method Details
-
erf
public static double erf(double x) Returns the error function. \[ \mathrm{erf}(x) = \frac{2}{\sqrt{\pi}} \int_{t=0}^x e^{-t^2}dt \]This implementation computes erf(x) using the
regularized gamma function
, following Erf, equation (3)The value returned is always between -1 and 1 (inclusive). If
abs(x) > 40
, thenerf(x)
is indistinguishable from either 1 or -1 as a double, so the appropriate extreme value is returned.- Parameters:
x
- the value.- Returns:
- the error function erf(x)
- Throws:
MathIllegalStateException
- if the algorithm fails to converge.- See Also:
-
erf
Returns the error function. \[ \mathrm{erf}(x) = \frac{2}{\sqrt{\pi}} \int_{t=0}^x e^{-t^2}dt \]This implementation computes erf(x) using the
regularized gamma function
, following Erf, equation (3)The value returned is always between -1 and 1 (inclusive). If
abs(x) > 40
, thenerf(x)
is indistinguishable from either 1 or -1 as a double, so the appropriate extreme value is returned.- Type Parameters:
T
- type of the field elements- Parameters:
x
- the value.- Returns:
- the error function erf(x)
- Throws:
MathIllegalStateException
- if the algorithm fails to converge.- See Also:
-
erfc
public static double erfc(double x) Returns the complementary error function. \[ \mathrm{erfc}(x) = \frac{2}{\sqrt{\pi}} \int_{t=x}^\infty e^{-t^2}dt = 1 - \mathrm{erf}This implementation computes erfc(x) using the
regularized gamma function
, following Erf, equation (3).The value returned is always between 0 and 2 (inclusive). If
abs(x) > 40
, thenerf(x)
is indistinguishable from either 0 or 2 as a double, so the appropriate extreme value is returned.- Parameters:
x
- the value- Returns:
- the complementary error function erfc(x)
- Throws:
MathIllegalStateException
- if the algorithm fails to converge.- See Also:
-
erfc
Returns the complementary error function. \[ erfc(x) = \frac{2}{\sqrt{\pi}} \int_x^\infty e^{-t^2}dt = 1 - erf(x) \]This implementation computes erfc(x) using the
regularized gamma function
, following Erf, equation (3).The value returned is always between 0 and 2 (inclusive). If
abs(x) > 40
, thenerf(x)
is indistinguishable from either 0 or 2 as a double, so the appropriate extreme value is returned. This implies that the current implementation does not allow the use ofDfp
with extended precision.- Type Parameters:
T
- type of the field elements- Parameters:
x
- the value- Returns:
- the complementary error function erfc(x)
- Throws:
MathIllegalStateException
- if the algorithm fails to converge.- See Also:
-
erf
public static double erf(double x1, double x2) Returns the difference between erf(x1) and erf(x2).The implementation uses either erf(double) or erfc(double) depending on which provides the most precise result.
- Parameters:
x1
- the first valuex2
- the second value- Returns:
- erf(x2) - erf(x1)
-
erf
Returns the difference between erf(x1) and erf(x2).The implementation uses either erf(double) or erfc(double) depending on which provides the most precise result.
- Type Parameters:
T
- type of the field elements- Parameters:
x1
- the first valuex2
- the second value- Returns:
- erf(x2) - erf(x1)
-
erfInv
public static double erfInv(double x) Returns the inverse erf.This implementation is described in the paper: Approximating the erfinv function by Mike Giles, Oxford-Man Institute of Quantitative Finance, which was published in GPU Computing Gems, volume 2, 2010. The source code is available here.
- Parameters:
x
- the value- Returns:
- t such that x = erf(t)
-
erfInv
Returns the inverse erf.This implementation is described in the paper: Approximating the erfinv function by Mike Giles, Oxford-Man Institute of Quantitative Finance, which was published in GPU Computing Gems, volume 2, 2010. The source code is available here.
- Type Parameters:
T
- type of the filed elements- Parameters:
x
- the value- Returns:
- t such that x = erf(t)
-
erfcInv
public static double erfcInv(double x) Returns the inverse erfc.- Parameters:
x
- the value- Returns:
- t such that x = erfc(t)
-
erfcInv
Returns the inverse erfc.- Type Parameters:
T
- type of the field elements- Parameters:
x
- the value- Returns:
- t such that x = erfc(t)
-