org.apache.commons.math3.special

## Class Erf

- java.lang.Object
- - 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 1416643 2012-12-03 19:37:14Z tn $

### Field Summary

Fields
`private static double` `X_CRIT` The number `X_CRIT` is used by `erf(double, double)` internally.

### Constructor Summary

Constructors
`private` `Erf()` Default constructor.

### Method Summary

Methods
`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/√π 0∫x 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)