org.apache.commons.math.distribution

## Class CauchyDistributionImpl

- java.lang.Object
- - org.apache.commons.math.distribution.AbstractDistribution
  - - org.apache.commons.math.distribution.AbstractContinuousDistribution
    - - org.apache.commons.math.distribution.CauchyDistributionImpl

All Implemented Interfaces:
  Serializable, CauchyDistribution, ContinuousDistribution, Distribution

    public class CauchyDistributionImpl
    extends AbstractContinuousDistribution
    implements CauchyDistribution, Serializable

Default implementation of `CauchyDistribution`.

Since:
  1.1
Version:
  $Revision: 1054524 $ $Date: 2011-01-03 05:59:18 +0100 (lun. 03 janv. 2011) $
See Also:
  Serialized Form

### Field Summary

Fields
`static double` `DEFAULT_INVERSE_ABSOLUTE_ACCURACY` Default inverse cumulative probability accuracy
`private double` `median` The median of this distribution.
`private double` `scale` The scale of this distribution.
`private static long` `serialVersionUID` Serializable version identifier
`private double` `solverAbsoluteAccuracy` Inverse cumulative probability accuracy

### Fields inherited from class org.apache.commons.math.distribution.AbstractContinuousDistribution

`randomData`

### Constructor Summary

Constructors
Constructor and Description
`CauchyDistributionImpl()` Creates cauchy distribution with the medain equal to zero and scale equal to one.
`CauchyDistributionImpl(double median, double s)` Create a cauchy distribution using the given median and scale.
`CauchyDistributionImpl(double median, double s, double inverseCumAccuracy)` Create a cauchy distribution using the given median and scale.

### Method Summary

Methods
`double` `cumulativeProbability(double x)` For this distribution, X, this method returns P(X < `x`).
`double` `density(double x)` Returns the probability density for a particular point.
`protected double` `getDomainLowerBound(double p)` Access the domain value lower bound, based on `p`, used to bracket a CDF root.
`protected double` `getDomainUpperBound(double p)` Access the domain value upper bound, based on `p`, used to bracket a CDF root.
`protected double` `getInitialDomain(double p)` Access the initial domain value, based on `p`, used to bracket a CDF root.
`double` `getMedian()` Access the median.
`double` `getNumericalMean()` Returns the mean.
`double` `getNumericalVariance()` Returns the variance.
`double` `getScale()` Access the scale parameter.
`protected double` `getSolverAbsoluteAccuracy()` Return the absolute accuracy setting of the solver used to estimate inverse cumulative probabilities.
`double` `getSupportLowerBound()` Returns the lower bound of the support for this distribution.
`double` `getSupportUpperBound()` Returns the upper bound of the support for this distribution.
`double` `inverseCumulativeProbability(double p)` For this distribution, X, this method returns the critical point x, such that P(X < x) = `p`.
`void` `setMedian(double median)` Deprecated. as of 2.1 (class will become immutable in 3.0)
`private void` `setMedianInternal(double newMedian)` Modify the median.
`void` `setScale(double s)` Deprecated. as of 2.1 (class will become immutable in 3.0)
`private void` `setScaleInternal(double s)` Modify the scale parameter.

### Methods inherited from class org.apache.commons.math.distribution.AbstractContinuousDistribution

`reseedRandomGenerator, sample, sample`

### Methods inherited from class org.apache.commons.math.distribution.AbstractDistribution

`cumulativeProbability`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.apache.commons.math.distribution.Distribution

`cumulativeProbability`

### Field Detail

#### DEFAULT_INVERSE_ABSOLUTE_ACCURACY

    public static final double DEFAULT_INVERSE_ABSOLUTE_ACCURACY

Default inverse cumulative probability accuracy

Since:
  2.1
See Also:
  Constant Field Values

#### serialVersionUID

    private static final long serialVersionUID

Serializable version identifier

See Also:
  Constant Field Values

#### median

    private double median

The median of this distribution.

#### scale

    private double scale

The scale of this distribution.

#### solverAbsoluteAccuracy

    private final double solverAbsoluteAccuracy

Inverse cumulative probability accuracy

### Constructor Detail

#### CauchyDistributionImpl

    public CauchyDistributionImpl()

Creates cauchy distribution with the medain equal to zero and scale equal to one.

#### CauchyDistributionImpl

    public CauchyDistributionImpl(double median,
                          double s)

Create a cauchy distribution using the given median and scale.

Parameters:
  `median` - median for this distribution
  `s` - scale parameter for this distribution

#### CauchyDistributionImpl

    public CauchyDistributionImpl(double median,
                          double s,
                          double inverseCumAccuracy)

Create a cauchy distribution using the given median and scale.

Parameters:
  `median` - median for this distribution
  `s` - scale parameter for this distribution
  `inverseCumAccuracy` - the maximum absolute error in inverse cumulative probability estimates (defaults to `DEFAULT_INVERSE_ABSOLUTE_ACCURACY`)
Since:
  2.1

### Method Detail

#### cumulativeProbability

    public double cumulativeProbability(double x)

For this distribution, X, this method returns P(X < `x`).

Specified by:
  `cumulativeProbability` in interface `Distribution`
Parameters:
  `x` - the value at which the CDF is evaluated.
Returns:
  CDF evaluated at `x`.

#### getMedian

    public double getMedian()

Access the median.

Specified by:
  `getMedian` in interface `CauchyDistribution`
Returns:
  median for this distribution

#### getScale

    public double getScale()

Access the scale parameter.

Specified by:
  `getScale` in interface `CauchyDistribution`
Returns:
  scale parameter for this distribution

#### density

    public double density(double x)

Returns the probability density for a particular point.

Overrides:
  `density` in class `AbstractContinuousDistribution`
Parameters:
  `x` - The point at which the density should be computed.
Returns:
  The pdf at point x.
Since:
  2.1

#### inverseCumulativeProbability

    public double inverseCumulativeProbability(double p)

For this distribution, X, this method returns the critical point x, such that P(X < x) = `p`.

Returns `Double.NEGATIVE_INFINITY` for p=0 and `Double.POSITIVE_INFINITY` for p=1.

Specified by:
  `inverseCumulativeProbability` in interface `ContinuousDistribution`
Overrides:
  `inverseCumulativeProbability` in class `AbstractContinuousDistribution`
Parameters:
  `p` - the desired probability
Returns:
  x, such that P(X < x) = `p`
Throws:
  `IllegalArgumentException` - if `p` is not a valid probability.

#### setMedian

    @Deprecated
    public void setMedian(double median)

Deprecated. as of 2.1 (class will become immutable in 3.0)
Modify the median.

Specified by:
  `setMedian` in interface `CauchyDistribution`
Parameters:
  `median` - for this distribution

#### setMedianInternal

    private void setMedianInternal(double newMedian)

Modify the median.

Parameters:
  `newMedian` - for this distribution

#### setScale

    @Deprecated
    public void setScale(double s)

Deprecated. as of 2.1 (class will become immutable in 3.0)
Modify the scale parameter.

Specified by:
  `setScale` in interface `CauchyDistribution`
Parameters:
  `s` - scale parameter for this distribution
Throws:
  `IllegalArgumentException` - if `sd` is not positive.

#### setScaleInternal

    private void setScaleInternal(double s)

Modify the scale parameter.

Parameters:
  `s` - scale parameter for this distribution
Throws:
  `IllegalArgumentException` - if `sd` is not positive.

#### getDomainLowerBound

    protected double getDomainLowerBound(double p)

Access the domain value lower bound, based on `p`, used to bracket a CDF root. This method is used by `inverseCumulativeProbability(double)` to find critical values.

Specified by:
  `getDomainLowerBound` in class `AbstractContinuousDistribution`
Parameters:
  `p` - the desired probability for the critical value
Returns:
  domain value lower bound, i.e. P(X < lower bound) < `p`

#### getDomainUpperBound

    protected double getDomainUpperBound(double p)

Access the domain value upper bound, based on `p`, used to bracket a CDF root. This method is used by `inverseCumulativeProbability(double)` to find critical values.

Specified by:
  `getDomainUpperBound` in class `AbstractContinuousDistribution`
Parameters:
  `p` - the desired probability for the critical value
Returns:
  domain value upper bound, i.e. P(X < upper bound) > `p`

#### getInitialDomain

    protected double getInitialDomain(double p)

Access the initial domain value, based on `p`, used to bracket a CDF root. This method is used by `inverseCumulativeProbability(double)` to find critical values.

Specified by:
  `getInitialDomain` in class `AbstractContinuousDistribution`
Parameters:
  `p` - the desired probability for the critical value
Returns:
  initial domain value

#### getSolverAbsoluteAccuracy

    protected double getSolverAbsoluteAccuracy()

Return the absolute accuracy setting of the solver used to estimate inverse cumulative probabilities.

Overrides:
  `getSolverAbsoluteAccuracy` in class `AbstractContinuousDistribution`
Returns:
  the solver absolute accuracy
Since:
  2.1

#### getSupportLowerBound

    public double getSupportLowerBound()

Returns the lower bound of the support for this distribution. The lower bound of the support of the Cauchy distribution is always negative infinity, regardless of the parameters.

Returns:
  lower bound of the support (always Double.NEGATIVE_INFINITY)
Since:
  2.2

#### getSupportUpperBound

    public double getSupportUpperBound()

Returns the upper bound of the support for this distribution. The upper bound of the support of the Cauchy distribution is always positive infinity, regardless of the parameters.

Returns:
  upper bound of the support (always Double.POSITIVE_INFINITY)
Since:
  2.2

#### getNumericalMean

    public double getNumericalMean()

Returns the mean. The mean is always undefined, regardless of the parameters.

Returns:
  mean (always Double.NaN)
Since:
  2.2

#### getNumericalVariance

    public double getNumericalVariance()

Returns the variance. The variance is always undefined, regardless of the parameters.

Returns:
  variance (always Double.NaN)
Since:
  2.2