Class Erf


  • public class Erf
    extends Object
    This is a utility class that provides computation methods related to the error functions.
    • Method Detail

      • erf

        public static double erf​(double x)
        Returns the error function.

        erf(x) = 2/√π 0x e-t2dt

        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, then erf(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)
      • erfc

        public static double erfc​(double x)
        Returns the complementary error function.

        erfc(x) = 2/√π x e-t2dt
        = 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, then erf(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)
      • 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 value
        x2 - 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)
      • erfcInv

        public static double erfcInv​(double x)
        Returns the inverse erfc.
        Parameters:
        x - the value
        Returns:
        t such that x = erfc(t)