Class ZipfDistributionImpl

All Implemented Interfaces:
Serializable, DiscreteDistribution, Distribution, IntegerDistribution, ZipfDistribution

public class ZipfDistributionImpl extends AbstractIntegerDistribution implements ZipfDistribution, Serializable
Implementation for the ZipfDistribution.
Version:
$Revision: 1054524 $ $Date: 2011-01-03 05:59:18 +0100 (lun. 03 janv. 2011) $
See Also:
  • Constructor Details

    • ZipfDistributionImpl

      public ZipfDistributionImpl(int numberOfElements, double exponent) throws IllegalArgumentException
      Create a new Zipf distribution with the given number of elements and exponent. Both values must be positive; otherwise an IllegalArgumentException is thrown.
      Parameters:
      numberOfElements - the number of elements
      exponent - the exponent
      Throws:
      IllegalArgumentException - if n ≤ 0 or s ≤ 0.0
  • Method Details

    • getNumberOfElements

      public int getNumberOfElements()
      Get the number of elements (e.g. corpus size) for the distribution.
      Specified by:
      getNumberOfElements in interface ZipfDistribution
      Returns:
      the number of elements
    • setNumberOfElements

      @Deprecated public void setNumberOfElements(int n)
      Deprecated.
      as of 2.1 (class will become immutable in 3.0)
      Set the number of elements (e.g. corpus size) for the distribution. The parameter value must be positive; otherwise an IllegalArgumentException is thrown.
      Specified by:
      setNumberOfElements in interface ZipfDistribution
      Parameters:
      n - the number of elements
      Throws:
      IllegalArgumentException - if n ≤ 0
    • getExponent

      public double getExponent()
      Get the exponent characterising the distribution.
      Specified by:
      getExponent in interface ZipfDistribution
      Returns:
      the exponent
    • setExponent

      @Deprecated public void setExponent(double s)
      Deprecated.
      as of 2.1 (class will become immutable in 3.0)
      Set the exponent characterising the distribution. The parameter value must be positive; otherwise an IllegalArgumentException is thrown.
      Specified by:
      setExponent in interface ZipfDistribution
      Parameters:
      s - the exponent
      Throws:
      IllegalArgumentException - if s ≤ 0.0
    • probability

      public double probability(int x)
      The probability mass function P(X = x) for a Zipf distribution.
      Specified by:
      probability in interface IntegerDistribution
      Parameters:
      x - the value at which the probability density function is evaluated.
      Returns:
      the value of the probability mass function at x
    • cumulativeProbability

      public double cumulativeProbability(int x)
      The probability distribution function P(X invalid input: '<'= x) for a Zipf distribution.
      Specified by:
      cumulativeProbability in interface IntegerDistribution
      Specified by:
      cumulativeProbability in class AbstractIntegerDistribution
      Parameters:
      x - the value at which the PDF is evaluated.
      Returns:
      Zipf distribution function evaluated at x
    • getDomainLowerBound

      protected int getDomainLowerBound(double p)
      Access the domain value lower bound, based on p, used to bracket a PDF root.
      Specified by:
      getDomainLowerBound in class AbstractIntegerDistribution
      Parameters:
      p - the desired probability for the critical value
      Returns:
      domain value lower bound, i.e. P(X < lower bound) < p
    • getDomainUpperBound

      protected int getDomainUpperBound(double p)
      Access the domain value upper bound, based on p, used to bracket a PDF root.
      Specified by:
      getDomainUpperBound in class AbstractIntegerDistribution
      Parameters:
      p - the desired probability for the critical value
      Returns:
      domain value upper bound, i.e. P(X < upper bound) > p
    • getSupportLowerBound

      public int getSupportLowerBound()
      Returns the lower bound of the support for the distribution. The lower bound of the support is always 1 no matter the parameters.
      Returns:
      lower bound of the support (always 1)
      Since:
      2.2
    • getSupportUpperBound

      public int getSupportUpperBound()
      Returns the upper bound of the support for the distribution. The upper bound of the support is the number of elements
      Returns:
      upper bound of the support
      Since:
      2.2
    • getNumericalMean

      protected double getNumericalMean()
      Returns the mean. For number of elements N and exponent s, the mean is Hs1 / Hs where
      • Hs1 = generalizedHarmonic(N, s - 1)
      • Hs = generalizedHarmonic(N, s)
      Returns:
      the mean
      Since:
      2.2
    • getNumericalVariance

      protected double getNumericalVariance()
      Returns the variance. For number of elements N and exponent s, the mean is (Hs2 / Hs) - (Hs1^2 / Hs^2) where
      • Hs2 = generalizedHarmonic(N, s - 2)
      • Hs1 = generalizedHarmonic(N, s - 1)
      • Hs = generalizedHarmonic(N, s)
      Returns:
      the variance
      Since:
      2.2