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 2022/10/03 11:10:47 UTC
[commons-statistics] 02/05: Update ZipfDistribution to always use RejectionInversionZipfSampler
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-statistics.git
commit 5b67ad1dd7ac2c4e1b704fda3a92ad7a4bccc51b
Author: aherbert <ah...@apache.org>
AuthorDate: Mon Oct 3 11:54:54 2022 +0100
Update ZipfDistribution to always use RejectionInversionZipfSampler
The RejectionInversionZipfSampler was modified in release 1.5 to allow
an exponent of 0.
Change fixed seed for ZipfDistributionTest. Seed expansion from
primitive seeds has changed in RNG 1.5.
---
.../apache/commons/statistics/distribution/ZipfDistribution.java | 9 ++-------
.../commons/statistics/distribution/ZipfDistributionTest.java | 2 +-
2 files changed, 3 insertions(+), 8 deletions(-)
diff --git a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ZipfDistribution.java b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ZipfDistribution.java
index b9933d5..82bbdde 100644
--- a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ZipfDistribution.java
+++ b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ZipfDistribution.java
@@ -18,7 +18,6 @@
package org.apache.commons.statistics.distribution;
import org.apache.commons.rng.UniformRandomProvider;
-import org.apache.commons.rng.sampling.distribution.DiscreteUniformSampler;
import org.apache.commons.rng.sampling.distribution.RejectionInversionZipfSampler;
/**
@@ -269,11 +268,7 @@ public final class ZipfDistribution extends AbstractDiscreteDistribution {
/** {@inheritDoc} */
@Override
public DiscreteDistribution.Sampler createSampler(final UniformRandomProvider rng) {
- if (exponent > 0) {
- // Zipf distribution sampler.
- return RejectionInversionZipfSampler.of(rng, numberOfElements, exponent)::sample;
- }
- // Special case when exponent is zero then the sample is uniform
- return DiscreteUniformSampler.of(rng, 1, numberOfElements)::sample;
+ // Zipf distribution sampler.
+ return RejectionInversionZipfSampler.of(rng, numberOfElements, exponent)::sample;
}
}
diff --git a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ZipfDistributionTest.java b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ZipfDistributionTest.java
index 640e7ed..e3675f8 100644
--- a/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ZipfDistributionTest.java
+++ b/commons-statistics-distribution/src/test/java/org/apache/commons/statistics/distribution/ZipfDistributionTest.java
@@ -114,7 +114,7 @@ class ZipfDistributionTest extends BaseDiscreteDistributionTest {
// that all test cases do not fail is 0.999^(32*22) = 0.49442874426
final DiscreteDistribution.Sampler distribution =
ZipfDistribution.of(numPoints, exponent).createSampler(
- RandomSource.XO_SHI_RO_256_PP.create(6));
+ RandomSource.XO_SHI_RO_256_PP.create(1));
final double[] expectedCounts = new double[numPoints];
final long[] observedCounts = new long[numPoints];