Documentation of 'umontreal.iro.lecuyer.probdist.DiscreteDistributionInt' Java class
DiscreteDistributionInt
umontreal.iro.lecuyer.probdist

Class DiscreteDistributionInt

  • All Implemented Interfaces:
    Distribution
    Direct Known Subclasses:
    BernoulliDist, BinomialDist, GeometricDist, HypergeometricDist, LogarithmicDist, NegativeBinomialDist, PoissonDist, UniformIntDist


    public abstract class DiscreteDistributionInt
    extends java.lang.Object
    implements Distribution
    Classes implementing discrete distributions over the integers should inherit from this class. It specifies the signatures of methods for computing the mass function (or probability) p(x) = P[X = x], distribution function F(x), complementary distribution function bar(F)(x), and inverse distribution function F-1(u), for a random variable X with a discrete distribution over the integers.

    WARNING: the complementary distribution function is defined as bar(F)(j) = P[X >= j] (for integers j, so that for discrete distributions in SSJ, F(j) + bar(F)(j)≠1 since both include the term P[X = j].

    The implementing classes provide both static and non-static methods to compute the above functions. The non-static methods require the creation of an object of class DiscreteDistributionInt; all the non-negligible terms of the mass and distribution functions will be precomputed by the constructor and kept in arrays. Subsequent accesses will be very fast. The static methods do not require the construction of an object. These static methods are not specified in this abstract class because the number and types of their parameters depend on the distribution. When methods have to be called several times with the same parameters for the distributions, it is usually more efficient to create an object and use its non-static methods instead of the static ones. This trades memory for speed.

    • Field Summary

      Fields 
      Modifier and Type Field and Description
      static double EPSILON
      Environment variable that determines what probability terms can be considered as negligible when building precomputed tables for distribution and mass functions.
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method and Description
      double barF(double x)
      Returns bar(F)(x), the complementary distribution function.
      double barF(int x)
      Returns bar(F)(x), the complementary distribution function.
      double cdf(double x)
      Returns the distribution function F evaluated at x (see).
      abstract double cdf(int x)
      Returns the distribution function F evaluated at x (see).
      int getXinf()
      Returns the lower limit xa of the support of the probability mass function.
      int getXsup()
      Returns the upper limit xb of the support of the probability mass function.
      double inverseF(double u)
      Returns the inverse distribution function F-1(u), where 0 <= u <= 1.
      int inverseFInt(double u)
      Returns the inverse distribution function F-1(u), where 0 <= u <= 1.
      abstract double prob(int x)
      Returns p(x), the probability of x, which should be a real number in the interval [0, 1].
      • Methods inherited from class java.lang.Object

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

      • EPSILON

        public static double EPSILON
        Environment variable that determines what probability terms can be considered as negligible when building precomputed tables for distribution and mass functions. Probabilities smaller than EPSILON are not stored in the DiscreteDistribution objects (such as those of class PoissonDist, etc.), but are computed directly each time they are needed (which should be very seldom). The default value is set to 10-16.
    • Constructor Detail

      • DiscreteDistributionInt

        public DiscreteDistributionInt()
    • Method Detail

      • prob

        public abstract double prob(int x)
        Returns p(x), the probability of x, which should be a real number in the interval [0, 1].
        Parameters:
        x - value at which the mass function must be evaluated
        Returns:
        the mass function evaluated at x
      • cdf

        public double cdf(double x)
        Returns the distribution function F evaluated at x (see). Calls the cdf(int) method.
        Specified by:
        cdf in interface Distribution
        Parameters:
        x - value at which the distribution function must be evaluated
        Returns:
        the distribution function evaluated at x
      • cdf

        public abstract double cdf(int x)
        Returns the distribution function F evaluated at x (see).
        Parameters:
        x - value at which the distribution function must be evaluated
        Returns:
        the distribution function evaluated at x
      • barF

        public double barF(double x)
        Returns bar(F)(x), the complementary distribution function. Calls the barF(int) method.
        Specified by:
        barF in interface Distribution
        Parameters:
        x - value at which the complementary distribution function must be evaluated
        Returns:
        the complementary distribution function evaluated at x
      • barF

        public double barF(int x)
        Returns bar(F)(x), the complementary distribution function. See the WARNING above.
        Parameters:
        x - value at which the complementary distribution function must be evaluated
        Returns:
        the complementary distribution function evaluated at x
      • getXinf

        public int getXinf()
        Returns the lower limit xa of the support of the probability mass function. The probability is 0 for all x < xa.
        Returns:
        x lower limit of support
      • getXsup

        public int getXsup()
        Returns the upper limit xb of the support of the probability mass function. The probability is 0 for all x > xb.
        Returns:
        x upper limit of support
      • inverseF

        public double inverseF(double u)
        Returns the inverse distribution function F-1(u), where 0 <= u <= 1. Calls the inverseFInt method.
        Specified by:
        inverseF in interface Distribution
        Parameters:
        u - value in the interval (0, 1) for which the inverse distribution function is evaluated
        Returns:
        the inverse distribution function evaluated at u
        Throws:
        java.lang.IllegalArgumentException - if u is not in the interval (0, 1)
        java.lang.ArithmeticException - if the inverse cannot be computed, for example if it would give infinity in a theoritical context
      • inverseFInt

        public int inverseFInt(double u)
        Returns the inverse distribution function F-1(u), where 0 <= u <= 1. The default implementation uses binary search.
        Parameters:
        u - value in the interval (0, 1) for which the inverse distribution function is evaluated
        Returns:
        the inverse distribution function evaluated at u
        Throws:
        java.lang.IllegalArgumentException - if u is not in the interval (0, 1)
        java.lang.ArithmeticException - if the inverse cannot be computed, for example if it would give infinity in a theoritical context

DMelt 3.0 © DataMelt by jWork.ORG

You see the box below because you did not login.