Class AbstractContinuousDistribution

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected RandomDataImpl randomData
      RandomData instance used to generate samples from the distribution
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method 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 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • randomData

        protected final RandomDataImpl randomData
        RandomData instance used to generate samples from the distribution
        Since:
        2.2
    • 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