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:
  • Field Details

    • randomData

      protected final RandomDataImpl randomData
      RandomData instance used to generate samples from the distribution
      Since:
      2.2
  • Constructor Details

    • AbstractContinuousDistribution

      protected AbstractContinuousDistribution()
      Default constructor.
  • Method Details

    • 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