Class ExponentialDistributionImpl

    • Field Detail

      • DEFAULT_INVERSE_ABSOLUTE_ACCURACY

        public static final double DEFAULT_INVERSE_ABSOLUTE_ACCURACY
        Default inverse cumulative probability accuracy
        Since:
        2.1
        See Also:
        Constant Field Values
    • Constructor Detail

      • ExponentialDistributionImpl

        public ExponentialDistributionImpl​(double mean)
        Create a exponential distribution with the given mean.
        Parameters:
        mean - mean of this distribution.
      • ExponentialDistributionImpl

        public ExponentialDistributionImpl​(double mean,
                                           double inverseCumAccuracy)
        Create a exponential distribution with the given mean.
        Parameters:
        mean - mean of this distribution.
        inverseCumAccuracy - the maximum absolute error in inverse cumulative probability estimates (defaults to DEFAULT_INVERSE_ABSOLUTE_ACCURACY)
        Since:
        2.1
    • Method Detail

      • setMean

        @Deprecated
        public void setMean​(double mean)
        Deprecated.
        as of 2.1 (class will become immutable in 3.0)
        Modify the mean.
        Specified by:
        setMean in interface ExponentialDistribution
        Parameters:
        mean - the new mean.
        Throws:
        java.lang.IllegalArgumentException - if mean is not positive.
      • density

        @Deprecated
        public double density​(java.lang.Double x)
        Deprecated.
        - use density(double)
        Return the probability density for a particular point.
        Specified by:
        density in interface ExponentialDistribution
        Specified by:
        density in interface HasDensity<java.lang.Double>
        Parameters:
        x - The point at which the density should be computed.
        Returns:
        The pdf at point x.
      • density

        public double density​(double x)
        Return the probability density for a particular point.
        Overrides:
        density in class AbstractContinuousDistribution
        Parameters:
        x - The point at which the density should be computed.
        Returns:
        The pdf at point x.
        Since:
        2.1
      • cumulativeProbability

        public double cumulativeProbability​(double x)
                                     throws MathException
        For this distribution, X, this method returns P(X < x). The implementation of this method is based on:
        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.
        java.lang.IllegalArgumentException - if p < 0 or p > 1.
      • sample

        public double sample()
                      throws MathException
        Generates a random value sampled from this distribution.

        Algorithm Description: Uses the Inversion Method to generate exponentially distributed random values from uniform deviates.

        Overrides:
        sample in class AbstractContinuousDistribution
        Returns:
        random value
        Throws:
        MathException - if an error occurs generating the random value
        Since:
        2.2
      • getDomainLowerBound

        protected double getDomainLowerBound​(double p)
        Access the domain value lower bound, based on p, used to bracket a CDF root.
        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.
        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.
        Specified by:
        getInitialDomain in class AbstractContinuousDistribution
        Parameters:
        p - the desired probability for the critical value
        Returns:
        initial domain value
      • getSolverAbsoluteAccuracy

        protected double getSolverAbsoluteAccuracy()
        Return the absolute accuracy setting of the solver used to estimate inverse cumulative probabilities.
        Overrides:
        getSolverAbsoluteAccuracy in class AbstractContinuousDistribution
        Returns:
        the solver absolute accuracy
        Since:
        2.1
      • getSupportLowerBound

        public double getSupportLowerBound()
        Returns the lower bound of the support for the distribution. The lower bound of the support is always 0, regardless of the mean.
        Returns:
        lower bound of the support (always 0)
        Since:
        2.2
      • getSupportUpperBound

        public double getSupportUpperBound()
        Returns the upper bound of the support for the distribution. The upper bound of the support is always positive infinity, regardless of the mean.
        Returns:
        upper bound of the support (always Double.POSITIVE_INFINITY)
        Since:
        2.2
      • getNumericalMean

        public double getNumericalMean()
        Returns the mean of the distribution. For mean parameter k, the mean is k
        Returns:
        the mean
        Since:
        2.2
      • getNumericalVariance

        public double getNumericalVariance()
        Returns the variance of the distribution. For mean parameter k, the variance is k^2
        Returns:
        the variance
        Since:
        2.2