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 5be4b5b5697dc4edfef94d5114f29b652d86f63a
Author: Alex Herbert <aherb...@apache.org>
AuthorDate: Tue Aug 3 00:16:08 2021 +0100

    Return optimised sampler using factory constructor
---
 .../statistics/distribution/AbstractContinuousDistribution.java  | 2 +-
 .../statistics/distribution/AbstractDiscreteDistribution.java    | 2 +-
 .../apache/commons/statistics/distribution/BetaDistribution.java | 2 +-
 .../commons/statistics/distribution/ExponentialDistribution.java | 2 +-
 .../commons/statistics/distribution/GammaDistribution.java       | 2 +-
 .../commons/statistics/distribution/GeometricDistribution.java   | 9 +++++++++
 .../commons/statistics/distribution/LogNormalDistribution.java   | 2 +-
 .../commons/statistics/distribution/NormalDistribution.java      | 4 ++--
 .../commons/statistics/distribution/ParetoDistribution.java      | 2 +-
 .../commons/statistics/distribution/PoissonDistribution.java     | 2 +-
 .../statistics/distribution/UniformContinuousDistribution.java   | 2 +-
 .../statistics/distribution/UniformDiscreteDistribution.java     | 2 +-
 .../apache/commons/statistics/distribution/ZipfDistribution.java | 2 +-
 13 files changed, 22 insertions(+), 13 deletions(-)

diff --git 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/AbstractContinuousDistribution.java
 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/AbstractContinuousDistribution.java
index 8157592..136cd7d 100644
--- 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/AbstractContinuousDistribution.java
+++ 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/AbstractContinuousDistribution.java
@@ -161,6 +161,6 @@ abstract class AbstractContinuousDistribution
     @Override
     public ContinuousDistribution.Sampler createSampler(final 
UniformRandomProvider rng) {
         // Inversion method distribution sampler.
-        return new InverseTransformContinuousSampler(rng, 
this::inverseCumulativeProbability)::sample;
+        return InverseTransformContinuousSampler.of(rng, 
this::inverseCumulativeProbability)::sample;
     }
 }
diff --git 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/AbstractDiscreteDistribution.java
 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/AbstractDiscreteDistribution.java
index 7408263..351c951 100644
--- 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/AbstractDiscreteDistribution.java
+++ 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/AbstractDiscreteDistribution.java
@@ -149,6 +149,6 @@ abstract class AbstractDiscreteDistribution
     @Override
     public DiscreteDistribution.Sampler createSampler(final 
UniformRandomProvider rng) {
         // Inversion method distribution sampler.
-        return new InverseTransformDiscreteSampler(rng, 
this::inverseCumulativeProbability)::sample;
+        return InverseTransformDiscreteSampler.of(rng, 
this::inverseCumulativeProbability)::sample;
     }
 }
diff --git 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/BetaDistribution.java
 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/BetaDistribution.java
index ac3cecc..d6fe1ef 100644
--- 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/BetaDistribution.java
+++ 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/BetaDistribution.java
@@ -196,6 +196,6 @@ public class BetaDistribution extends 
AbstractContinuousDistribution {
     @Override
     public ContinuousDistribution.Sampler createSampler(final 
UniformRandomProvider rng) {
         // Beta distribution sampler.
-        return new ChengBetaSampler(rng, alpha, beta)::sample;
+        return ChengBetaSampler.of(rng, alpha, beta)::sample;
     }
 }
diff --git 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ExponentialDistribution.java
 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ExponentialDistribution.java
index 75d0192..c37238d 100644
--- 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ExponentialDistribution.java
+++ 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ExponentialDistribution.java
@@ -174,6 +174,6 @@ public class ExponentialDistribution extends 
AbstractContinuousDistribution {
     @Override
     public ContinuousDistribution.Sampler createSampler(final 
UniformRandomProvider rng) {
         // Exponential distribution sampler.
-        return new AhrensDieterExponentialSampler(rng, mean)::sample;
+        return AhrensDieterExponentialSampler.of(rng, mean)::sample;
     }
 }
diff --git 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/GammaDistribution.java
 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/GammaDistribution.java
index 88037fe..58394ed 100644
--- 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/GammaDistribution.java
+++ 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/GammaDistribution.java
@@ -354,6 +354,6 @@ public class GammaDistribution extends 
AbstractContinuousDistribution {
     @Override
     public ContinuousDistribution.Sampler createSampler(final 
UniformRandomProvider rng) {
         // Gamma distribution sampler.
-        return new AhrensDieterMarsagliaTsangGammaSampler(rng, shape, 
scale)::sample;
+        return AhrensDieterMarsagliaTsangGammaSampler.of(rng, shape, 
scale)::sample;
     }
 }
diff --git 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/GeometricDistribution.java
 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/GeometricDistribution.java
index 2fbf9db..6022b35 100644
--- 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/GeometricDistribution.java
+++ 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/GeometricDistribution.java
@@ -16,6 +16,9 @@
  */
 package org.apache.commons.statistics.distribution;
 
+import org.apache.commons.rng.UniformRandomProvider;
+import org.apache.commons.rng.sampling.distribution.GeometricSampler;
+
 /**
  * Implementation of the <a 
href="http://en.wikipedia.org/wiki/Geometric_distribution";>geometric 
distribution</a>.
  */
@@ -163,4 +166,10 @@ public class GeometricDistribution extends 
AbstractDiscreteDistribution {
     public boolean isSupportConnected() {
         return true;
     }
+
+    /** {@inheritDoc} */
+    @Override
+    public Sampler createSampler(UniformRandomProvider rng) {
+        return GeometricSampler.of(rng, probabilityOfSuccess)::sample;
+    }
 }
diff --git 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/LogNormalDistribution.java
 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/LogNormalDistribution.java
index 6421430..a78ed49 100644
--- 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/LogNormalDistribution.java
+++ 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/LogNormalDistribution.java
@@ -254,6 +254,6 @@ public class LogNormalDistribution extends 
AbstractContinuousDistribution {
     @Override
     public ContinuousDistribution.Sampler createSampler(final 
UniformRandomProvider rng) {
         // Log normal distribution sampler.
-        return new LogNormalSampler(new 
ZigguratNormalizedGaussianSampler(rng), mu, sigma)::sample;
+        return LogNormalSampler.of(ZigguratNormalizedGaussianSampler.of(rng), 
mu, sigma)::sample;
     }
 }
diff --git 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/NormalDistribution.java
 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/NormalDistribution.java
index aa55e63..76303ba 100644
--- 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/NormalDistribution.java
+++ 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/NormalDistribution.java
@@ -191,7 +191,7 @@ public class NormalDistribution extends 
AbstractContinuousDistribution {
     @Override
     public ContinuousDistribution.Sampler createSampler(final 
UniformRandomProvider rng) {
         // Gaussian distribution sampler.
-        return new GaussianSampler(new ZigguratNormalizedGaussianSampler(rng),
-                                   mean, standardDeviation)::sample;
+        return GaussianSampler.of(ZigguratNormalizedGaussianSampler.of(rng),
+                                  mean, standardDeviation)::sample;
     }
 }
diff --git 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ParetoDistribution.java
 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ParetoDistribution.java
index 7be4094..9999f4e 100644
--- 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ParetoDistribution.java
+++ 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ParetoDistribution.java
@@ -220,6 +220,6 @@ public class ParetoDistribution extends 
AbstractContinuousDistribution {
     @Override
     public ContinuousDistribution.Sampler createSampler(final 
UniformRandomProvider rng) {
         // Pareto distribution sampler.
-        return new InverseTransformParetoSampler(rng, scale, shape)::sample;
+        return InverseTransformParetoSampler.of(rng, scale, shape)::sample;
     }
 }
diff --git 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/PoissonDistribution.java
 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/PoissonDistribution.java
index 7cfe1d0..acc6f9d 100644
--- 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/PoissonDistribution.java
+++ 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/PoissonDistribution.java
@@ -172,6 +172,6 @@ public class PoissonDistribution extends 
AbstractDiscreteDistribution {
     @Override
     public DiscreteDistribution.Sampler createSampler(final 
UniformRandomProvider rng) {
         // Poisson distribution sampler.
-        return new PoissonSampler(rng, mean)::sample;
+        return PoissonSampler.of(rng, mean)::sample;
     }
 }
diff --git 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/UniformContinuousDistribution.java
 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/UniformContinuousDistribution.java
index 64c0569..60fe4f4 100644
--- 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/UniformContinuousDistribution.java
+++ 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/UniformContinuousDistribution.java
@@ -162,6 +162,6 @@ public class UniformContinuousDistribution extends 
AbstractContinuousDistributio
     @Override
     public ContinuousDistribution.Sampler createSampler(final 
UniformRandomProvider rng) {
         // Uniform distribution sampler.
-        return new ContinuousUniformSampler(rng, lower, upper)::sample;
+        return ContinuousUniformSampler.of(rng, lower, upper)::sample;
     }
 }
diff --git 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/UniformDiscreteDistribution.java
 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/UniformDiscreteDistribution.java
index 0ed628c..a943ab4 100644
--- 
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/UniformDiscreteDistribution.java
+++ 
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/UniformDiscreteDistribution.java
@@ -152,6 +152,6 @@ public class UniformDiscreteDistribution extends 
AbstractDiscreteDistribution {
     @Override
     public DiscreteDistribution.Sampler createSampler(final 
UniformRandomProvider rng) {
         // Discrete uniform distribution sampler.
-        return new DiscreteUniformSampler(rng, lower, upper)::sample;
+        return DiscreteUniformSampler.of(rng, lower, upper)::sample;
     }
 }
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 da5291d..95c955e 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
@@ -215,7 +215,7 @@ public class ZipfDistribution extends 
AbstractDiscreteDistribution {
         return true;
     }
 
-    /**{@inheritDoc} */
+    /** {@inheritDoc} */
     @Override
     public DiscreteDistribution.Sampler createSampler(final 
UniformRandomProvider rng) {
         // Zipf distribution sampler.

Reply via email to