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.