Package cern.jet.random
Class StudentT
java.lang.Object
cern.colt.PersistentObject
cern.jet.random.AbstractDistribution
cern.jet.random.AbstractContinousDistribution
cern.jet.random.StudentT
- All Implemented Interfaces:
DoubleFunction
,IntFunction
,Serializable
,Cloneable
StudentT distribution (aka T-distribution); See the math definition
and animated definition.
Static methods operate on a default uniform random number generator; they are synchronized.
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
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.
Implementation:
R.W. Bailey (1994): Polar generation of random variates with the t-distribution, Mathematics of Computation 62, 779-781.
- Version:
- 1.0, 09/24/99
- See Also:
-
Field Summary
FieldsFields inherited from class cern.jet.random.AbstractDistribution
randomGenerator
Fields inherited from class cern.colt.PersistentObject
serialVersionUID
-
Constructor Summary
ConstructorsConstructorDescriptionStudentT
(double freedom, RandomEngine randomGenerator) Constructs a StudentT distribution. -
Method Summary
Modifier and TypeMethodDescriptiondouble
cdf
(double x) Returns the cumulative distribution function.double
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.toString()
Returns a String representation of the receiver.private static void
xstaticSetRandomGenerator
(RandomEngine randomGenerator) Sets the uniform random number generated shared by all static methods.Methods inherited from class cern.jet.random.AbstractDistribution
apply, apply, clone, getRandomGenerator, makeDefaultGenerator, nextInt, setRandomGenerator
-
Field Details
-
freedom
protected double freedom -
TERM
protected double TERM
-
-
Constructor Details
-
StudentT
Constructs a StudentT distribution. Example: freedom=1.0.- Parameters:
freedom
- degrees of freedom.- Throws:
IllegalArgumentException
- if freedom <= 0.0.
-
-
Method Details
-
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 classAbstractDistribution
-
nextDouble
public double nextDouble(double degreesOfFreedom) Returns a random number from the distribution; bypasses the internal state.- Parameters:
a
- degrees of freedom.- Throws:
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:
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:
IllegalArgumentException
- if freedom <= 0.0.
-
toString
Returns a String representation of the receiver. -
xstaticSetRandomGenerator
Sets the uniform random number generated shared by all static methods.- Parameters:
randomGenerator
- the new uniform random number generator to be shared.
-