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/05/30 19:47:10 UTC

[commons-rng] 03/07: RNG-101: Added MarsagliaTsangWang samplers to the JMH benchmark.

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 5d681da5775127c43f642ec1dec0ac3a5d960b33
Author: aherbert <ah...@apache.org>
AuthorDate: Fri May 10 15:02:43 2019 +0100

    RNG-101: Added MarsagliaTsangWang samplers to the JMH benchmark.
---
 .../jmh/distribution/DiscreteSamplersPerformance.java        | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/distribution/DiscreteSamplersPerformance.java b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/distribution/DiscreteSamplersPerformance.java
index eef191e..81dc616 100644
--- a/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/distribution/DiscreteSamplersPerformance.java
+++ b/commons-rng-examples/examples-jmh/src/main/java/org/apache/commons/rng/examples/jmh/distribution/DiscreteSamplersPerformance.java
@@ -23,6 +23,9 @@ import org.apache.commons.rng.sampling.distribution.DiscreteSampler;
 import org.apache.commons.rng.sampling.distribution.DiscreteUniformSampler;
 import org.apache.commons.rng.sampling.distribution.GeometricSampler;
 import org.apache.commons.rng.sampling.distribution.LargeMeanPoissonSampler;
+import org.apache.commons.rng.sampling.distribution.MarsagliaTsangWangBinomialSampler;
+import org.apache.commons.rng.sampling.distribution.MarsagliaTsangWangDiscreteSampler;
+import org.apache.commons.rng.sampling.distribution.MarsagliaTsangWangSmallMeanPoissonSampler;
 import org.apache.commons.rng.sampling.distribution.RejectionInversionZipfSampler;
 import org.apache.commons.rng.sampling.distribution.SmallMeanPoissonSampler;
 
@@ -66,6 +69,9 @@ public class DiscreteSamplersPerformance {
                 "SmallMeanPoissonSampler",
                 "LargeMeanPoissonSampler",
                 "GeometricSampler",
+                "MarsagliaTsangWangDiscreteSampler",
+                "MarsagliaTsangWangSmallMeanPoissonSampler",
+                "MarsagliaTsangWangBinomialSampler",
                 })
         private String samplerType;
 
@@ -96,6 +102,12 @@ public class DiscreteSamplersPerformance {
                 sampler = new LargeMeanPoissonSampler(rng, 41.7);
             } else if ("GeometricSampler".equals(samplerType)) {
                 sampler = new GeometricSampler(rng, 0.21);
+            } else if ("MarsagliaTsangWangDiscreteSampler".equals(samplerType)) {
+                sampler = new MarsagliaTsangWangDiscreteSampler(rng, new double[] {0.1, 0.2, 0.3, 0.4});
+            } else if ("MarsagliaTsangWangSmallMeanPoissonSampler".equals(samplerType)) {
+                sampler = new MarsagliaTsangWangSmallMeanPoissonSampler(rng, 8.9);
+            } else if ("MarsagliaTsangWangBinomialSampler".equals(samplerType)) {
+                sampler = new MarsagliaTsangWangBinomialSampler(rng, 20, 0.33);
             }
         }
     }