org.apache.commons.math3.special
Class Erf

java.lang.Object
  extended by org.apache.commons.math3.special.Erf

public class Erf
extends Object

This is a utility class that provides computation methods related to the error functions.

Version:
$Id: Erf.java 1244107 2012-02-14 16:17:55Z erans $

Field Summary
private static double X_CRIT
          The number X_CRIT is used by erf(double, double) internally.
 
Constructor Summary
private Erf()
          Default constructor.
 
Method Summary
static 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 double erfc(double x)
          Returns the complementary error function.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

X_CRIT

private static final double X_CRIT
The number X_CRIT is used by erf(double, double) internally. This number solves erf(x)=0.5 within 1ulp. More precisely, the current implementations of erf(double) and erfc(double) satisfy:
erf(X_CRIT) < 0.5,
erf(Math.nextUp(X_CRIT) > 0.5,
erfc(X_CRIT) = 0.5, and
erfc(Math.nextUp(X_CRIT) < 0.5

See Also:
Constant Field Values
Constructor Detail

Erf

private Erf()
Default constructor. Prohibit instantiation.

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:
MaxCountExceededException - 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:
MaxCountExceededException - if the algorithm fails to converge.
Since:
2.2
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)


Copyright (c) 2003-2013 Apache Software Foundation