SSJ
V. 2.6.

umontreal.iro.lecuyer.randvar
Class StudentGen

java.lang.Object
  extended by umontreal.iro.lecuyer.randvar.RandomVariateGen
      extended by umontreal.iro.lecuyer.randvar.StudentGen
Direct Known Subclasses:
StudentPolarGen

public class StudentGen
extends RandomVariateGen

This class implements methods for generating random variates from the Student distribution with n > 0 degrees of freedom. Its density function is

f (x) = [Γ((n + 1)/2)/(Γ(n/2)(πn)1/2)][1 + x2/n]-(n+1)/2                for - ∞ < x < ∞,

where Γ(x) is the gamma function defined in GammaGen.

The nextDouble method simply calls inverseF on the distribution.

The following table gives the CPU time needed to generate 107 Student random variates using the different implementations available in SSJ. The second test (Q) was made with the inverse in StudentDistQuick, while the first test was made with the inverse in StudentDist. These tests were made on a machine with processor AMD Athlon 4000, running Red Hat Linux, with clock speed at 2400 MHz.

Generator time in seconds
StudentGen 22.4
StudentGen(Q) 6.5
StudentPolarGen 1.4


Constructor Summary
StudentGen(RandomStream s, int n)
          Creates a Student random variate generator with n degrees of freedom, using stream s.
StudentGen(RandomStream s, StudentDist dist)
          Creates a new generator for the Student distribution dist and stream s.
 
Method Summary
 int getN()
          Returns the value of n for this object.
static double nextDouble(RandomStream s, int n)
          Generates a new variate from the Student distribution with n = n degrees of freedom, using stream s.
 
Methods inherited from class umontreal.iro.lecuyer.randvar.RandomVariateGen
getDistribution, getStream, nextArrayOfDouble, nextDouble, setStream, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

StudentGen

public StudentGen(RandomStream s,
                  int n)
Creates a Student random variate generator with n degrees of freedom, using stream s.


StudentGen

public StudentGen(RandomStream s,
                  StudentDist dist)
Creates a new generator for the Student distribution dist and stream s.

Method Detail

nextDouble

public static double nextDouble(RandomStream s,
                                int n)
Generates a new variate from the Student distribution with n = n degrees of freedom, using stream s.


getN

public int getN()
Returns the value of n for this object.


SSJ
V. 2.6.

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