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 classSample from a t-distribution using a normal distribution.private static final classSample from a t-distribution using Bailey's algorithm. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final doubleThreshold for huge degrees of freedom.private final UniformRandomProviderSource of randomness. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) longnextLong()Generates alongvalue.static TSamplerof(UniformRandomProvider rng, double degreesOfFreedom) Create a new t distribution sampler.toString()abstract TSamplerCreate 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, waitMethods 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:
withUniformRandomProviderin interfaceSharedStateSampler<SharedStateContinuousSampler>- Parameters:
rng- Generator of uniformly distributed random numbers.- Returns:
- the sampler
-
nextLong
long nextLong()Generates alongvalue. 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
-