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:
    java.io.Serializable, ContinuousDistribution, Distribution
  Direct Known Subclasses:
    BetaDistributionImpl, CauchyDistributionImpl, ChiSquaredDistributionImpl, ExponentialDistributionImpl, FDistributionImpl, GammaDistributionImpl, NormalDistributionImpl, TDistributionImpl, WeibullDistributionImpl

      public abstract class AbstractContinuousDistribution
      extends AbstractDistribution
      implements ContinuousDistribution, java.io.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

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `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

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `AbstractContinuousDistribution()` Default constructor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.
        `java.lang.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
        `java.lang.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