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

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

All Implemented Interfaces:
  Serializable, ContinuousDistribution, Distribution

Direct Known Subclasses:
  BetaDistributionImpl, CauchyDistributionImpl, ChiSquaredDistributionImpl, ExponentialDistributionImpl, FDistributionImpl, GammaDistributionImpl, NormalDistributionImpl, TDistributionImpl, WeibullDistributionImpl

    public abstract class AbstractContinuousDistribution

extends AbstractDistribution
implements ContinuousDistribution, Serializable

Base class for continuous distributions. Default implementations are provided for some of the methods that do not vary from distribution to distribution.

Version:
  $Revision: 1073498 $ $Date: 2011-02-22 21:57:26 +0100 (mar. 22 févr. 2011) $
See Also:
  Serialized Form

Field Summary
`protected RandomDataImpl` `randomData` RandomData instance used to generate samples from the distribution
`private static long` `serialVersionUID` Serializable version identifier
`private double` `solverAbsoluteAccuracy` Solver absolute accuracy for inverse cumulative computation

Constructor Summary
`protected` `AbstractContinuousDistribution()` Default constructor.

Method Summary
`double` `density(double x)` Return the probability density for a particular point.
`protected abstract double` `getDomainLowerBound(double p)` Access the domain value lower bound, based on `p`, used to bracket a CDF root.
`protected abstract double` `getDomainUpperBound(double p)` Access the domain value upper bound, based on `p`, used to bracket a CDF root.
`protected abstract double` `getInitialDomain(double p)` Access the initial domain value, based on `p`, used to bracket a CDF root.
`protected double` `getSolverAbsoluteAccuracy()` Returns the solver absolute accuracy for inverse cumulative computation.
`double` `inverseCumulativeProbability(double p)` For this distribution, X, this method returns the critical point x, such that P(X < x) = `p`.
`void` `reseedRandomGenerator(long seed)` Reseeds the random generator used to generate samples.
`double` `sample()` Generates a random value sampled from this distribution.
`double[]` `sample(int sampleSize)` Generates a random sample from the 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, cumulativeProbability`

Field Detail

### serialVersionUID

    private static final long serialVersionUID

  Serializable version identifier

  See Also:
    Constant Field Values

### randomData

    protected final RandomDataImpl randomData

  RandomData instance used to generate samples from the distribution

  Since:
    2.2

### solverAbsoluteAccuracy

    private double solverAbsoluteAccuracy

  Solver absolute accuracy for inverse cumulative computation

  Since:
    2.1

Constructor Detail

### AbstractContinuousDistribution

    protected AbstractContinuousDistribution()

  Default constructor.

Method Detail

### density

    public double density(double x)
                   throws MathRuntimeException

  Return the probability density for a particular point.

  Parameters:
    `x` - The point at which the density should be computed.
  Returns:
    The pdf at point x.
  Throws:
    `MathRuntimeException` - if the specialized class hasn't implemented this function
  Since:
    2.1

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

  Specified by:
    `inverseCumulativeProbability` in interface `ContinuousDistribution`
  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.

### reseedRandomGenerator

    public void reseedRandomGenerator(long seed)

  Reseeds the random generator used to generate samples.

  Parameters:
    `seed` - the new seed
  Since:
    2.2

### sample

    public double sample()
                  throws MathException

  Generates a random value sampled from this distribution. The default implementation uses the inversion method.

  Returns:
    random value
  Throws:
    `MathException` - if an error occurs generating the random value
  Since:
    2.2

### sample

    public double[] sample(int sampleSize)
                    throws MathException

  Generates a random sample from the distribution. The default implementation generates the sample by calling `sample()` in a loop.

  Parameters:
    `sampleSize` - number of random values to generate
  Returns:
    an array representing the random sample
  Throws:
    `MathException` - if an error occurs generating the sample
    `IllegalArgumentException` - if sampleSize is not positive
  Since:
    2.2

### getInitialDomain

    protected abstract 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.

  Parameters:
    `p` - the desired probability for the critical value
  Returns:
    initial domain value

### getDomainLowerBound

    protected abstract 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.

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

### getDomainUpperBound

    protected abstract 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.

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

### getSolverAbsoluteAccuracy

    protected double getSolverAbsoluteAccuracy()

  Returns the solver absolute accuracy for inverse cumulative computation.

  Returns:
    the maximum absolute error in inverse cumulative probability estimates
  Since:
    2.1

Copyright (c) 2003-2013 Apache Software Foundation