SSJ
V. 1.2.5.

umontreal.iro.lecuyer.randvar
Class LogarithmicGen

java.lang.Object
  extended by umontreal.iro.lecuyer.randvar.RandomVariateGen
      extended by umontreal.iro.lecuyer.randvar.RandomVariateGenInt
          extended by umontreal.iro.lecuyer.randvar.LogarithmicGen

public class LogarithmicGen
extends RandomVariateGenInt

This class implements random variate generators for the (discrete) logarithmic distribution. Its mass function is

p(x) = $\displaystyle {\frac{{-\theta^x}}{{x \log(1 - \theta)}}}$         for x = 1, 2,…,

where 0 < θ < 1. It uses inversion with the LS chop-down algorithm if θ < θ0 and the LK transformation algorithm if θ >= θ0, as described in. The threshold θ0 can be specified when invoking the constructor. Its default value is θ0 = 0.96, as suggested in.

A local copy of the parameter θ is maintained in this class.


Constructor Summary
LogarithmicGen(RandomStream s, LogarithmicDist dist)
          Creates a new generator with distribution dist and stream s, with default value θ0 = 0.96.
LogarithmicGen(RandomStream s, LogarithmicDist dist, double theta0)
          Creates a new generator with distribution dist and stream s, with θ0 = theta0.
 
Method Summary
 int nextInt()
          Generates a random number (an integer) from the discrete distribution contained in this object.
static int nextInt(RandomStream s, double theta)
          Uses stream s to generate a new variate from the logarithmic distribution with parameter θ = theta.
 
Methods inherited from class umontreal.iro.lecuyer.randvar.RandomVariateGenInt
nextArrayOfInt
 
Methods inherited from class umontreal.iro.lecuyer.randvar.RandomVariateGen
getDistribution, getStream, nextArrayOfDouble, nextDouble, setStream
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LogarithmicGen

public LogarithmicGen(RandomStream s,
                      LogarithmicDist dist)
Creates a new generator with distribution dist and stream s, with default value θ0 = 0.96.


LogarithmicGen

public LogarithmicGen(RandomStream s,
                      LogarithmicDist dist,
                      double theta0)
Creates a new generator with distribution dist and stream s, with θ0 = theta0.

Method Detail

nextInt

public int nextInt()
Description copied from class: RandomVariateGenInt
Generates a random number (an integer) from the discrete distribution contained in this object. By default, this method uses inversion by calling the inverseF method of the distribution object. Alternative generating methods are provided in subclasses.

Overrides:
nextInt in class RandomVariateGenInt
Returns:
the generated value

nextInt

public static int nextInt(RandomStream s,
                          double theta)
Uses stream s to generate a new variate from the logarithmic distribution with parameter θ = theta.


SSJ
V. 1.2.5.

To submit a bug or ask questions, send an e-mail to Pierre L'Ecuyer.