Class KempSmallMeanPoissonSampler
java.lang.Object
org.apache.commons.rng.sampling.distribution.KempSmallMeanPoissonSampler
- All Implemented Interfaces:
DiscreteSampler, SharedStateDiscreteSampler, SharedStateSampler<SharedStateDiscreteSampler>
Sampler for the Poisson
distribution.
- Kemp, A, W, (1981) Efficient Generation of Logarithmically Distributed Pseudo-Random Variables. Journal of the Royal Statistical Society. Vol. 30, No. 3, pp. 249-253.
This sampler is suitable for mean < 40. For large means,
LargeMeanPoissonSampler should be used instead.
Note: The algorithm uses a recurrence relation to compute the Poisson probability and a rolling summation for the cumulative probability. When the mean is large the initial probability (Math.exp(-mean)) is zero and an exception is raised by the constructor.
Sampling uses 1 call to UniformRandomProvider.nextDouble(). This method provides
an alternative to the SmallMeanPoissonSampler for slow generators of double.
- Since:
- 1.3
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionstatic SharedStateDiscreteSamplerof(UniformRandomProvider rng, double mean) Creates a new sampler for the Poisson distribution.intsample()Creates anintsample.toString()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 Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface DiscreteSampler
samples, samples
-
Method Details
-
sample
Creates anintsample.- Specified by:
samplein interfaceDiscreteSampler- Returns:
- a sample.
-
toString
-
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<SharedStateDiscreteSampler>- Parameters:
rng- Generator of uniformly distributed random numbers.- Returns:
- the sampler
-
of
Creates a new sampler for the Poisson distribution.- Parameters:
rng- Generator of uniformly distributed random numbers.mean- Mean of the distribution.- Returns:
- the sampler
- Throws:
IllegalArgumentException- ifmean <= 0orMath.exp(-mean) == 0.
-