Class TSampler
java.lang.Object
org.apache.commons.rng.sampling.distribution.TSampler
- All Implemented Interfaces:
ContinuousSampler
,SharedStateContinuousSampler
,SharedStateSampler<SharedStateContinuousSampler>
- Direct Known Subclasses:
TSampler.NormalTSampler
,TSampler.StudentsTSampler
Sampling from a T distribution.
Uses Bailey's algorithm for t-distribution sampling:
Bailey, R. W. (1994) "Polar Generation of Random Variates with the t-Distribution." Mathematics of Computation 62, 779-781.
Sampling uses UniformRandomProvider.nextLong()
.
- Since:
- 1.5
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static final class
Sample from a t-distribution using a normal distribution.private static final class
Sample from a t-distribution using Bailey's algorithm. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final double
Threshold for huge degrees of freedom.private final UniformRandomProvider
Source of randomness. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) long
nextLong()
Generates along
value.static TSampler
of
(UniformRandomProvider rng, double degreesOfFreedom) Create a new t distribution sampler.toString()
abstract TSampler
Create a new instance of the sampler with the same underlying state using the given uniform random provider as the source of randomness.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.apache.commons.rng.sampling.distribution.ContinuousSampler
sample, samples, samples
-
Field Details
-
HUGE_DF
private static final double HUGE_DFThreshold for huge degrees of freedom. Above this value the CDF of the t distribution matches the normal distribution. Value is 2/eps (where eps is the machine epsilon) or approximately 9.0e15.- See Also:
-
rng
Source of randomness.
-
-
Constructor Details
-
TSampler
TSampler(UniformRandomProvider rng) - Parameters:
rng
- Generator of uniformly distributed random numbers.
-
-
Method Details
-
withUniformRandomProvider
Create a new instance of the sampler with the same underlying state using the given uniform random provider as the source of randomness.- Specified by:
withUniformRandomProvider
in interfaceSharedStateSampler<SharedStateContinuousSampler>
- Parameters:
rng
- Generator of uniformly distributed random numbers.- Returns:
- the sampler
-
nextLong
long nextLong()Generates along
value. Used by algorithm implementations without exposing access to the RNG.- Returns:
- the next random value
-
toString
-
of
Create a new t distribution sampler.- Parameters:
rng
- Generator of uniformly distributed random numbers.degreesOfFreedom
- Degrees of freedom.- Returns:
- the sampler
- Throws:
IllegalArgumentException
- ifdegreesOfFreedom <= 0
-