public class PoissonSampler extends SamplerBase implements SharedStateDiscreteSampler
Knuth (1969). Seminumerical Algorithms. The Art of Computer Programming, Volume 2. Chapter 3.4.1.F.3 Important integer-valued distributions: The Poisson distribution. Addison Wesley.The Poisson process (and hence, the returned value) is bounded by
1000 * mean.
Devroye, Luc. (1981). The Computer Generation of Poisson Random Variables
Computing vol. 26 pp. 197-207.
Sampling uses:
UniformRandomProvider.nextDouble()
UniformRandomProvider.nextLong() (large means only)
| Constructor and Description |
|---|
PoissonSampler(UniformRandomProvider rng,
double mean)
This instance delegates sampling.
|
| Modifier and Type | Method and Description |
|---|---|
static SharedStateDiscreteSampler |
of(UniformRandomProvider rng,
double mean)
Creates a new Poisson distribution sampler.
|
int |
sample()
Creates an
int sample. |
String |
toString() |
SharedStateDiscreteSampler |
withUniformRandomProvider(UniformRandomProvider rng)
Create a new instance of the sampler with the same underlying state using the given
uniform random provider as the source of randomness.
|
nextDouble, nextInt, nextInt, nextLongclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitsamples, samplespublic PoissonSampler(UniformRandomProvider rng, double mean)
of(UniformRandomProvider, double) to create an optimal sampler.rng - Generator of uniformly distributed random numbers.mean - Mean.IllegalArgumentException - if mean <= 0 or mean > 0.5 *
Integer.MAX_VALUE.public int sample()
int sample.sample in interface DiscreteSamplerpublic String toString()
toString in class SamplerBasepublic SharedStateDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng)
withUniformRandomProvider in interface SharedStateSampler<SharedStateDiscreteSampler>rng - Generator of uniformly distributed random numbers.public static SharedStateDiscreteSampler of(UniformRandomProvider rng, double mean)
rng - Generator of uniformly distributed random numbers.mean - Mean.IllegalArgumentException - if mean <= 0 or mean > 0.5 *
Integer.MAX_VALUE.Copyright © 2016–2022 The Apache Software Foundation. All rights reserved.