cern.jet.random
Class StudentT

java.lang.Object
  extended by cern.colt.PersistentObject
      extended by cern.jet.random.AbstractDistribution
          extended by cern.jet.random.AbstractContinousDistribution
              extended by cern.jet.random.StudentT
All Implemented Interfaces:
DoubleFunction, IntFunction, java.io.Serializable, java.lang.Cloneable

public class StudentT
extends AbstractContinousDistribution

StudentT distribution (aka T-distribution); See the math definition and animated definition.

p(x) = k * (1+x^2/f) ^ -(f+1)/2 where k = g((f+1)/2) / (sqrt(pi*f) * g(f/2)) and g(a) being the gamma function and f being the degrees of freedom.

Valid parameter ranges: freedom > 0.

Instance methods operate on a user supplied uniform random number generator; they are unsynchronized.

Static methods operate on a default uniform random number generator; they are synchronized.

Implementation:

Method: Adapted Polar Box-Muller transformation.
This is a port of RandStudentT used in CLHEP 1.4.0 (C++). CLHEP's implementation, in turn, is based on tpol.c from the C-RAND / WIN-RAND library. C-RAND's implementation, in turn, is based upon

R.W. Bailey (1994): Polar generation of random variates with the t-distribution, Mathematics of Computation 62, 779-781.

Author:
wolfgang.hoschek@cern.ch
See Also:
Serialized Form

Field Summary
protected  double freedom
           
protected static StudentT shared
           
protected  double TERM
           
 
Fields inherited from class cern.jet.random.AbstractDistribution
randomGenerator
 
Fields inherited from class cern.colt.PersistentObject
serialVersionUID
 
Constructor Summary
StudentT(double freedom, RandomEngine randomGenerator)
          Constructs a StudentT distribution.
 
Method Summary
 double cdf(double x)
          Returns the cumulative distribution function.
 double nextDouble()
          Returns a random number from the distribution.
 double nextDouble(double degreesOfFreedom)
          Returns a random number from the distribution; bypasses the internal state.
 double pdf(double x)
          Returns the probability distribution function.
 void setState(double freedom)
          Sets the distribution parameter.
static double staticNextDouble(double freedom)
          Returns a random number from the distribution.
 java.lang.String toString()
          Returns a String representation of the receiver.
 
Methods inherited from class cern.jet.random.AbstractDistribution
apply, apply, clone, getRandomGenerator, makeDefaultGenerator, nextInt, setRandomGenerator
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

freedom

protected double freedom

TERM

protected double TERM

shared

protected static StudentT shared
Constructor Detail

StudentT

public StudentT(double freedom,
                RandomEngine randomGenerator)
Constructs a StudentT distribution. Example: freedom=1.0.

Parameters:
freedom - degrees of freedom.
Throws:
java.lang.IllegalArgumentException - if freedom <= 0.0.
Method Detail

cdf

public double cdf(double x)
Returns the cumulative distribution function.


nextDouble

public double nextDouble()
Returns a random number from the distribution.

Specified by:
nextDouble in class AbstractDistribution

nextDouble

public double nextDouble(double degreesOfFreedom)
Returns a random number from the distribution; bypasses the internal state.

Parameters:
a - degrees of freedom.
Throws:
java.lang.IllegalArgumentException - if a <= 0.0.

pdf

public double pdf(double x)
Returns the probability distribution function.


setState

public void setState(double freedom)
Sets the distribution parameter.

Parameters:
freedom - degrees of freedom.
Throws:
java.lang.IllegalArgumentException - if freedom <= 0.0.

staticNextDouble

public static double staticNextDouble(double freedom)
Returns a random number from the distribution.

Parameters:
freedom - degrees of freedom.
Throws:
java.lang.IllegalArgumentException - if freedom <= 0.0.

toString

public java.lang.String toString()
Returns a String representation of the receiver.

Overrides:
toString in class java.lang.Object