## org.apache.commons.math.distribution
Class ChiSquaredDistributionImpl

    java.lang.Object
      org.apache.commons.math.distribution.AbstractDistribution
          org.apache.commons.math.distribution.AbstractContinuousDistribution
              org.apache.commons.math.distribution.ChiSquaredDistributionImpl

All Implemented Interfaces:
  Serializable, ChiSquaredDistribution, ContinuousDistribution, Distribution, HasDensity<Double>

    public class ChiSquaredDistributionImpl

extends AbstractContinuousDistribution
implements ChiSquaredDistribution, Serializable

The default implementation of `ChiSquaredDistribution`

Version:
  $Revision: 762087 $ $Date: 2009-04-05 10:20:18 -0400 (Sun, 05 Apr 2009) $
See Also:
  Serialized Form

Field Summary
`private GammaDistribution` `gamma` Internal Gamma distribution.
`private static long` `serialVersionUID` Serializable version identifier

Constructor Summary
`ChiSquaredDistributionImpl(double df)` Create a Chi-Squared distribution with the given degrees of freedom.
`ChiSquaredDistributionImpl(double df, GammaDistribution g)` Create a Chi-Squared distribution with the given degrees of freedom.

Method Summary
`double` `cumulativeProbability(double x)` For this distribution, X, this method returns P(X < x).
`double` `density(Double x)` Return the probability density for a particular point.
`double` `getDegreesOfFreedom()` Access the degrees of freedom.
`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.
`private GammaDistribution` `getGamma()` Access the Gamma distribution.
`protected double` `getInitialDomain(double p)` Access the initial domain value, based on `p`, used to bracket a CDF root.
`double` `inverseCumulativeProbability(double p)` For this distribution, X, this method returns the critical point x, such that P(X < x) = `p`.
`void` `setDegreesOfFreedom(double degreesOfFreedom)` Modify the degrees of freedom.
`void` `setGamma(GammaDistribution g)` Modify the underlying gamma distribution.

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

### serialVersionUID

    private static final long serialVersionUID

  Serializable version identifier

  See Also:
    Constant Field Values

### gamma

    private GammaDistribution gamma

  Internal Gamma distribution.

Constructor Detail

### ChiSquaredDistributionImpl

    public ChiSquaredDistributionImpl(double df)

  Create a Chi-Squared distribution with the given degrees of freedom.

  Parameters:
    `df` - degrees of freedom.

### ChiSquaredDistributionImpl

    public ChiSquaredDistributionImpl(double df,
                                      GammaDistribution g)

  Create a Chi-Squared distribution with the given degrees of freedom.

  Parameters:
    `df` - degrees of freedom.
    `g` - the underlying gamma distribution used to compute probabilities.
  Since:
    1.2

Method Detail

### setDegreesOfFreedom

    public void setDegreesOfFreedom(double degreesOfFreedom)

  Modify the degrees of freedom.

  Specified by:
    `setDegreesOfFreedom` in interface `ChiSquaredDistribution`
  Parameters:
    `degreesOfFreedom` - the new degrees of freedom.

### getDegreesOfFreedom

    public double getDegreesOfFreedom()

  Access the degrees of freedom.

  Specified by:
    `getDegreesOfFreedom` in interface `ChiSquaredDistribution`
  Returns:
    the degrees of freedom.

### density

    public double density(Double x)

  Return the probability density for a particular point.

  Specified by:
    `density` in interface `ChiSquaredDistribution`
  Specified by:
    `density` in interface `HasDensity<Double>`
  Parameters:
    `x` - The point at which the density should be computed.
  Returns:
    The pdf at point x.

### cumulativeProbability

    public double cumulativeProbability(double x)
                                 throws MathException

  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 for this distribution.
  Throws:
    `MathException` - if the cumulative probability can not be computed due to convergence or other numerical errors.

### inverseCumulativeProbability

    public double inverseCumulativeProbability(double p)
                                        throws MathException

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

  Returns 0 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:
    `MathException` - if the inverse cumulative probability can not be computed due to convergence or other numerical errors.
    `IllegalArgumentException` - if `p` is not a valid probability.

### 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

### setGamma

    public void setGamma(GammaDistribution g)

  Modify the underlying gamma distribution. The caller is responsible for insuring the gamma distribution has the proper parameter settings.

  Parameters:
    `g` - the new distribution.
  Since:
    1.2 made public

### getGamma

    private GammaDistribution getGamma()

  Access the Gamma distribution.

  Returns:
    the internal Gamma distribution.

Copyright (c) 2003-2010 Apache Software Foundation