Class AbstractRealDistribution

java.lang.Object
org.hipparchus.distribution.continuous.AbstractRealDistribution
All Implemented Interfaces:
Serializable, RealDistribution
Direct Known Subclasses:
BetaDistribution, CauchyDistribution, ChiSquaredDistribution, ConstantRealDistribution, EmpiricalDistribution, EnumeratedRealDistribution, ExponentialDistribution, FDistribution, GammaDistribution, GumbelDistribution, LaplaceDistribution, LevyDistribution, LogisticDistribution, LogNormalDistribution, NakagamiDistribution, NormalDistribution, ParetoDistribution, TDistribution, TriangularDistribution, UniformRealDistribution, WeibullDistribution

public abstract class AbstractRealDistribution extends Object implements RealDistribution, Serializable
Base class for probability distributions on the reals.

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

See Also:
  • Field Details

    • DEFAULT_SOLVER_ABSOLUTE_ACCURACY

      protected static final double DEFAULT_SOLVER_ABSOLUTE_ACCURACY
      Default absolute accuracy for inverse cumulative computation.
      See Also:
  • Constructor Details

    • AbstractRealDistribution

      protected AbstractRealDistribution(double solverAbsoluteAccuracy)
      Simple constructor.
      Parameters:
      solverAbsoluteAccuracy - the absolute accuracy to use when computing the inverse cumulative probability.
    • AbstractRealDistribution

      protected AbstractRealDistribution()
      Create a real distribution with default solver absolute accuracy.
  • Method Details

    • probability

      public double probability(double x0, double x1) throws MathIllegalArgumentException
      For a random variable X whose values are distributed according to this distribution, this method returns P(x0 < X <= x1).
      Specified by:
      probability in interface RealDistribution
      Parameters:
      x0 - Lower bound (excluded).
      x1 - Upper bound (included).
      Returns:
      the probability that a random variable with this distribution takes a value between x0 and x1, excluding the lower and including the upper endpoint.
      Throws:
      MathIllegalArgumentException - if x0 > x1. The default implementation uses the identity P(x0 < X <= x1) = P(X <= x1) - P(X <= x0)
    • inverseCumulativeProbability

      public double inverseCumulativeProbability(double p) throws MathIllegalArgumentException
      Computes the quantile function of this distribution. For a random variable X distributed according to this distribution, the returned value is
      • inf{x in R | P(X<=x) >= p} for 0 < p <= 1,
      • inf{x in R | P(X<=x) > 0} for p = 0.
      The default implementation returns
      Specified by:
      inverseCumulativeProbability in interface RealDistribution
      Parameters:
      p - the cumulative probability
      Returns:
      the smallest p-quantile of this distribution (largest 0-quantile for p = 0)
      Throws:
      MathIllegalArgumentException - if p < 0 or p > 1
    • getSolverAbsoluteAccuracy

      protected double getSolverAbsoluteAccuracy()
      Returns the solver absolute accuracy for inverse cumulative computation. You can override this method in order to use a Brent solver with an absolute accuracy different from the default.
      Returns:
      the maximum absolute error in inverse cumulative probability estimates
    • logDensity

      public double logDensity(double x)
      Returns the natural logarithm of the probability density function (PDF) of this distribution evaluated at the specified point x. In general, the PDF is the derivative of the CDF. If the derivative does not exist at x, then an appropriate replacement should be returned, e.g. Double.POSITIVE_INFINITY, Double.NaN, or the limit inferior or limit superior of the difference quotient. Note that due to the floating point precision and under/overflow issues, this method will for some distributions be more precise and faster than computing the logarithm of RealDistribution.density(double).

      The default implementation simply computes the logarithm of density(x).

      Specified by:
      logDensity in interface RealDistribution
      Parameters:
      x - the point at which the PDF is evaluated
      Returns:
      the logarithm of the value of the probability density function at point x