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
The following commit(s) were added to refs/heads/master by this push:
new aa7b93a Updated the createSampler methods to use method references.
new cbdb5d4 Merge pull request #9 from aherbert/method-refs-for-samplers
aa7b93a is described below
commit aa7b93a0eff339c59f9b674cdcbb4b0e405cb445
Author: aherbert <[email protected]>
AuthorDate: Fri May 17 18:00:33 2019 +0100
Updated the createSampler methods to use method references.
---
.../AbstractContinuousDistribution.java | 31 +++-------------------
.../distribution/AbstractDiscreteDistribution.java | 31 +++-------------------
.../statistics/distribution/BetaDistribution.java | 16 +++--------
.../ConstantContinuousDistribution.java | 8 +-----
.../distribution/ExponentialDistribution.java | 16 +++--------
.../statistics/distribution/GammaDistribution.java | 17 +++---------
.../distribution/LogNormalDistribution.java | 17 +++---------
.../distribution/NormalDistribution.java | 17 ++++--------
.../distribution/ParetoDistribution.java | 16 +++--------
.../distribution/PoissonDistribution.java | 15 +++--------
.../UniformContinuousDistribution.java | 16 +++--------
.../distribution/UniformDiscreteDistribution.java | 16 +++--------
.../statistics/distribution/ZipfDistribution.java | 17 +++---------
13 files changed, 44 insertions(+), 189 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 c760078..9826a69 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
@@ -20,7 +20,6 @@ import java.util.function.DoubleUnaryOperator;
import org.apache.commons.numbers.core.Precision;
import org.apache.commons.rng.UniformRandomProvider;
import
org.apache.commons.rng.sampling.distribution.InverseTransformContinuousSampler;
-import
org.apache.commons.rng.sampling.distribution.ContinuousInverseCumulativeProbabilityFunction;
import org.apache.commons.rng.sampling.distribution.ContinuousSampler;
/**
@@ -176,32 +175,10 @@ abstract class AbstractContinuousDistribution
/**{@inheritDoc} */
@Override
public ContinuousDistribution.Sampler createSampler(final
UniformRandomProvider rng) {
- return new ContinuousDistribution.Sampler() {
- /**
- * Inversion method distribution sampler.
- */
- private final ContinuousSampler sampler =
- new InverseTransformContinuousSampler(rng, createICPF());
-
- /** {@inheritDoc} */
- @Override
- public double sample() {
- return sampler.sample();
- }
- };
- }
-
- /**
- * @return an instance for use by {@link
#createSampler(UniformRandomProvider)}
- */
- private ContinuousInverseCumulativeProbabilityFunction createICPF() {
- return new ContinuousInverseCumulativeProbabilityFunction() {
- /** {@inheritDoc} */
- @Override
- public double inverseCumulativeProbability(double p) {
- return
AbstractContinuousDistribution.this.inverseCumulativeProbability(p);
- }
- };
+ // Inversion method distribution sampler.
+ final ContinuousSampler sampler =
+ new InverseTransformContinuousSampler(rng,
this::inverseCumulativeProbability);
+ return sampler::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 0edbdea..4a69eb4 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
@@ -18,7 +18,6 @@ package org.apache.commons.statistics.distribution;
import org.apache.commons.rng.UniformRandomProvider;
import
org.apache.commons.rng.sampling.distribution.InverseTransformDiscreteSampler;
-import
org.apache.commons.rng.sampling.distribution.DiscreteInverseCumulativeProbabilityFunction;
import org.apache.commons.rng.sampling.distribution.DiscreteSampler;
/**
@@ -180,31 +179,9 @@ abstract class AbstractDiscreteDistribution
/** {@inheritDoc} */
@Override
public DiscreteDistribution.Sampler createSampler(final
UniformRandomProvider rng) {
- return new DiscreteDistribution.Sampler() {
- /**
- * Inversion method distribution sampler.
- */
- private final DiscreteSampler sampler =
- new InverseTransformDiscreteSampler(rng, createICPF());
-
- /** {@inheritDoc} */
- @Override
- public int sample() {
- return sampler.sample();
- }
- };
- }
-
- /**
- * @return an instance for use by {@link
#createSampler(UniformRandomProvider)}.
- */
- private DiscreteInverseCumulativeProbabilityFunction createICPF() {
- return new DiscreteInverseCumulativeProbabilityFunction() {
- /** {@inheritDoc} */
- @Override
- public int inverseCumulativeProbability(double p) {
- return
AbstractDiscreteDistribution.this.inverseCumulativeProbability(p);
- }
- };
+ // Inversion method distribution sampler.
+ final DiscreteSampler sampler =
+ new InverseTransformDiscreteSampler(rng,
this::inverseCumulativeProbability);
+ return sampler::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 6a198e5..d71c16c 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
@@ -185,18 +185,8 @@ public class BetaDistribution extends
AbstractContinuousDistribution {
*/
@Override
public ContinuousDistribution.Sampler createSampler(final
UniformRandomProvider rng) {
- return new ContinuousDistribution.Sampler() {
- /**
- * Beta distribution sampler.
- */
- private final ContinuousSampler sampler =
- new ChengBetaSampler(rng, alpha, beta);
-
- /**{@inheritDoc} */
- @Override
- public double sample() {
- return sampler.sample();
- }
- };
+ // Beta distribution sampler.
+ final ContinuousSampler sampler = new ChengBetaSampler(rng, alpha,
beta);
+ return sampler::sample;
}
}
diff --git
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ConstantContinuousDistribution.java
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ConstantContinuousDistribution.java
index 592e19e..85c480d 100644
---
a/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ConstantContinuousDistribution.java
+++
b/commons-statistics-distribution/src/main/java/org/apache/commons/statistics/distribution/ConstantContinuousDistribution.java
@@ -105,12 +105,6 @@ public class ConstantContinuousDistribution extends
AbstractContinuousDistributi
*/
@Override
public ContinuousDistribution.Sampler createSampler(final
UniformRandomProvider rng) {
- return new ContinuousDistribution.Sampler() {
- /** {@inheritDoc} */
- @Override
- public double sample() {
- return value;
- }
- };
+ return this::getSupportLowerBound;
}
}
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 9fdf5ea..be64dfa 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
@@ -166,18 +166,8 @@ public class ExponentialDistribution extends
AbstractContinuousDistribution {
*/
@Override
public ContinuousDistribution.Sampler createSampler(final
UniformRandomProvider rng) {
- return new ContinuousDistribution.Sampler() {
- /**
- * Exponential distribution sampler.
- */
- private final ContinuousSampler sampler =
- new AhrensDieterExponentialSampler(rng, mean);
-
- /**{@inheritDoc} */
- @Override
- public double sample() {
- return sampler.sample();
- }
- };
+ // Exponential distribution sampler.
+ final ContinuousSampler sampler = new
AhrensDieterExponentialSampler(rng, mean);
+ return sampler::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 84d2f8a..b1992b3 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
@@ -337,18 +337,9 @@ public class GammaDistribution extends
AbstractContinuousDistribution {
*/
@Override
public ContinuousDistribution.Sampler createSampler(final
UniformRandomProvider rng) {
- return new ContinuousDistribution.Sampler() {
- /**
- * Gamma distribution sampler.
- */
- private final ContinuousSampler sampler =
- new AhrensDieterMarsagliaTsangGammaSampler(rng, scale, shape);
-
- /**{@inheritDoc} */
- @Override
- public double sample() {
- return sampler.sample();
- }
- };
+ // Gamma distribution sampler.
+ final ContinuousSampler sampler =
+ new AhrensDieterMarsagliaTsangGammaSampler(rng, scale, shape);
+ return sampler::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 935c421..e6bd521 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
@@ -238,18 +238,9 @@ public class LogNormalDistribution extends
AbstractContinuousDistribution {
/** {@inheritDoc} */
@Override
public ContinuousDistribution.Sampler createSampler(final
UniformRandomProvider rng) {
- return new ContinuousDistribution.Sampler() {
- /**
- * Log normal distribution sampler.
- */
- private final ContinuousSampler sampler =
- new LogNormalSampler(new
ZigguratNormalizedGaussianSampler(rng), scale, shape);
-
- /**{@inheritDoc} */
- @Override
- public double sample() {
- return sampler.sample();
- }
- };
+ // Log normal distribution sampler.
+ final ContinuousSampler sampler =
+ new LogNormalSampler(new ZigguratNormalizedGaussianSampler(rng),
scale, shape);
+ return sampler::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 9d6293c..696fb57 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
@@ -179,17 +179,10 @@ public class NormalDistribution extends
AbstractContinuousDistribution {
/** {@inheritDoc} */
@Override
public ContinuousDistribution.Sampler createSampler(final
UniformRandomProvider rng) {
- return new ContinuousDistribution.Sampler() {
- /** Gaussian distribution sampler. */
- private final ContinuousSampler sampler =
- new GaussianSampler(new ZigguratNormalizedGaussianSampler(rng),
- mean, standardDeviation);
-
- /** {@inheritDoc} */
- @Override
- public double sample() {
- return sampler.sample();
- }
- };
+ // Gaussian distribution sampler.
+ final ContinuousSampler sampler =
+ new GaussianSampler(new ZigguratNormalizedGaussianSampler(rng),
+ mean, standardDeviation);
+ return sampler::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 f97b7f1..d1cc753 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
@@ -201,18 +201,8 @@ public class ParetoDistribution extends
AbstractContinuousDistribution {
/** {@inheritDoc} */
@Override
public ContinuousDistribution.Sampler createSampler(final
UniformRandomProvider rng) {
- return new ContinuousDistribution.Sampler() {
- /**
- * Pareto distribution sampler.
- */
- private final ContinuousSampler sampler =
- new InverseTransformParetoSampler(rng, scale, shape);
-
- /**{@inheritDoc} */
- @Override
- public double sample() {
- return sampler.sample();
- }
- };
+ // Pareto distribution sampler.
+ final ContinuousSampler sampler = new
InverseTransformParetoSampler(rng, scale, shape);
+ return sampler::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 545e2b4..756b3af 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
@@ -183,17 +183,8 @@ public class PoissonDistribution extends
AbstractDiscreteDistribution {
/**{@inheritDoc} */
@Override
public DiscreteDistribution.Sampler createSampler(final
UniformRandomProvider rng) {
- return new DiscreteDistribution.Sampler() {
- /**
- * Poisson distribution sampler.
- */
- private final DiscreteSampler sampler = new PoissonSampler(rng,
mean);
-
- /**{@inheritDoc} */
- @Override
- public int sample() {
- return sampler.sample();
- }
- };
+ // Poisson distribution sampler.
+ final DiscreteSampler sampler = new PoissonSampler(rng, mean);
+ return sampler::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 da5abf7..0d9c1cd 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
@@ -144,18 +144,8 @@ public class UniformContinuousDistribution extends
AbstractContinuousDistributio
/** {@inheritDoc} */
@Override
public ContinuousDistribution.Sampler createSampler(final
UniformRandomProvider rng) {
- return new ContinuousDistribution.Sampler() {
- /**
- * Uniform distribution sampler.
- */
- private final ContinuousSampler sampler =
- new ContinuousUniformSampler(rng, lower, upper);
-
- /**{@inheritDoc} */
- @Override
- public double sample() {
- return sampler.sample();
- }
- };
+ // Uniform distribution sampler.
+ final ContinuousSampler sampler = new ContinuousUniformSampler(rng,
lower, upper);
+ return sampler::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 47ffffb..7d39a2a 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
@@ -142,18 +142,8 @@ public class UniformDiscreteDistribution extends
AbstractDiscreteDistribution {
/**{@inheritDoc} */
@Override
public DiscreteDistribution.Sampler createSampler(final
UniformRandomProvider rng) {
- return new DiscreteDistribution.Sampler() {
- /**
- * Discrete uniform distribution sampler.
- */
- private final DiscreteSampler sampler =
- new DiscreteUniformSampler(rng, lower, upper);
-
- /**{@inheritDoc} */
- @Override
- public int sample() {
- return sampler.sample();
- }
- };
+ // Discrete uniform distribution sampler.
+ final DiscreteSampler sampler = new DiscreteUniformSampler(rng, lower,
upper);
+ return sampler::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 8d233fa..5b949c6 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
@@ -219,18 +219,9 @@ public class ZipfDistribution extends
AbstractDiscreteDistribution {
/**{@inheritDoc} */
@Override
public DiscreteDistribution.Sampler createSampler(final
UniformRandomProvider rng) {
- return new DiscreteDistribution.Sampler() {
- /**
- * Zipf distribution sampler.
- */
- private final DiscreteSampler sampler =
- new RejectionInversionZipfSampler(rng, numberOfElements,
exponent);
-
- /**{@inheritDoc} */
- @Override
- public int sample() {
- return sampler.sample();
- }
- };
+ // Zipf distribution sampler.
+ final DiscreteSampler sampler =
+ new RejectionInversionZipfSampler(rng, numberOfElements, exponent);
+ return sampler::sample;
}
}