DiscreteSampler
, SharedStateDiscreteSampler
, SharedStateSampler<SharedStateDiscreteSampler>
public final class KempSmallMeanPoissonSampler extends java.lang.Object implements SharedStateDiscreteSampler
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
.
Modifier and Type | Method | Description |
---|---|---|
static SharedStateDiscreteSampler |
of(org.apache.commons.rng.UniformRandomProvider rng,
double mean) |
Creates a new sampler for the Poisson distribution.
|
int |
sample() |
Creates a sample.
|
java.lang.String |
toString() |
|
SharedStateDiscreteSampler |
withUniformRandomProvider(org.apache.commons.rng.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.
|
public int sample()
sample
in interface DiscreteSampler
public java.lang.String toString()
toString
in class java.lang.Object
public SharedStateDiscreteSampler withUniformRandomProvider(org.apache.commons.rng.UniformRandomProvider rng)
withUniformRandomProvider
in interface SharedStateSampler<SharedStateDiscreteSampler>
rng
- Generator of uniformly distributed random numbers.public static SharedStateDiscreteSampler of(org.apache.commons.rng.UniformRandomProvider rng, double mean)
rng
- Generator of uniformly distributed random numbers.mean
- Mean of the distribution.java.lang.IllegalArgumentException
- if mean <= 0
or
Math.exp(-mean) == 0
.Copyright © 2016–2019 The Apache Software Foundation. All rights reserved.