Class Erf
- java.lang.Object
-
- org.hipparchus.special.Erf
-
public class Erf extends Object
This is a utility class that provides computation methods related to the error functions.
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static double
erf(double x)
Returns the error function. \[ \mathrm{erf}(x) = \frac{2}{\sqrt{\pi}} \int_{t=0}^x e^{-t^2}dt \]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. \[ \mathrm{erf}(x) = \frac{2}{\sqrt{\pi}} \int_{t=0}^x e^{-t^2}dt \]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. \[ \mathrm{erfc}(x) = \frac{2}{\sqrt{\pi}} \int_{t=x}^\infty e^{-t^2}dt = 1 - \mathrm{erf}static <T extends CalculusFieldElement<T>>
Terfc(T x)
Returns the complementary error function. \[ erfc(x) = \frac{2}{\sqrt{\pi}} \int_x^\infty e^{-t^2}dt = 1 - erf(x) \]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 Detail
-
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:
Gamma.regularizedGammaP(double, double, double, int)
-
erf
public static <T extends CalculusFieldElement<T>> T erf(T 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.- 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:
Gamma.regularizedGammaP(double, double, double, int)
-
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:
Gamma.regularizedGammaQ(double, double, double, int)
-
erfc
public static <T extends CalculusFieldElement<T>> T erfc(T x)
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:
Gamma.regularizedGammaQ(double, double, double, int)
-
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
public static <T extends CalculusFieldElement<T>> T erf(T x1, T 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.
- 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
public static <T extends CalculusFieldElement<T>> T erfInv(T 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.
- 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
public static <T extends CalculusFieldElement<T>> T erfcInv(T x)
Returns the inverse erfc.- Type Parameters:
T
- type of the field elements- Parameters:
x
- the value- Returns:
- t such that x = erfc(t)
-
-