You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ah...@apache.org on 2019/07/31 23:40:23 UTC
[commons-rng] 05/07: Test the LargeMeanPoissonSampler at small mean.
This is an automated email from the ASF dual-hosted git repository.
aherbert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-rng.git
commit 6ba157e75e5be90fd98f72535b36f9f6a25a5d85
Author: Alex Herbert <ah...@apache.org>
AuthorDate: Wed Jul 31 23:35:38 2019 +0100
Test the LargeMeanPoissonSampler at small mean.
A small mean is required to hit the case where the sample from the
normal distribution is rejected.
---
.../rng/sampling/distribution/DiscreteSamplersList.java | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/DiscreteSamplersList.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/DiscreteSamplersList.java
index b2be61e..dd57177 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/DiscreteSamplersList.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/DiscreteSamplersList.java
@@ -130,7 +130,7 @@ public final class DiscreteSamplersList {
add(LIST, new org.apache.commons.math3.distribution.PoissonDistribution(unusedRng, meanPoisson, epsilonPoisson, maxIterationsPoisson),
MathArrays.sequence(10, 0, 1),
PoissonSampler.of(RandomSource.create(RandomSource.KISS), meanPoisson));
- // Dedicated small mean poisson sampler
+ // Dedicated small mean poisson samplers
add(LIST, new org.apache.commons.math3.distribution.PoissonDistribution(unusedRng, meanPoisson, epsilonPoisson, maxIterationsPoisson),
MathArrays.sequence(10, 0, 1),
SmallMeanPoissonSampler.of(RandomSource.create(RandomSource.XO_SHI_RO_256_PLUS), meanPoisson));
@@ -138,8 +138,13 @@ public final class DiscreteSamplersList {
MathArrays.sequence(10, 0, 1),
KempSmallMeanPoissonSampler.of(RandomSource.create(RandomSource.XO_SHI_RO_128_PLUS), meanPoisson));
add(LIST, new org.apache.commons.math3.distribution.PoissonDistribution(unusedRng, meanPoisson, epsilonPoisson, maxIterationsPoisson),
- MathArrays.sequence(10, 0, 1),
- MarsagliaTsangWangDiscreteSampler.Poisson.of(RandomSource.create(RandomSource.XO_SHI_RO_128_PLUS), meanPoisson));
+ MathArrays.sequence(10, 0, 1),
+ MarsagliaTsangWangDiscreteSampler.Poisson.of(RandomSource.create(RandomSource.XO_SHI_RO_128_PLUS), meanPoisson));
+ // LargeMeanPoissonSampler should work at small mean.
+ // Note: This hits a code path where the sample from the normal distribution is rejected.
+ add(LIST, new org.apache.commons.math3.distribution.PoissonDistribution(unusedRng, meanPoisson, epsilonPoisson, maxIterationsPoisson),
+ MathArrays.sequence(10, 0, 1),
+ LargeMeanPoissonSampler.of(RandomSource.create(RandomSource.PCG_MCG_XSH_RR_32), meanPoisson));
// Poisson (40 < mean < 80).
final double largeMeanPoisson = 67.89;
add(LIST, new org.apache.commons.math3.distribution.PoissonDistribution(unusedRng, largeMeanPoisson, epsilonPoisson, maxIterationsPoisson),