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 376bd5aa516171c00a70ebd32d1ecbe8925ef1b8 Author: Alex Herbert <aherb...@apache.org> AuthorDate: Fri Jul 19 21:42:33 2019 +0100 RNG-110: Return the specialised delegate from withUniformRandomProvider. --- .../AhrensDieterMarsagliaTsangGammaSampler.java | 14 ++------------ .../rng/sampling/distribution/DiscreteUniformSampler.java | 14 ++------------ .../rng/sampling/distribution/GeometricSampler.java | 11 ++--------- .../commons/rng/sampling/distribution/PoissonSampler.java | 13 ++----------- 4 files changed, 8 insertions(+), 44 deletions(-) diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/AhrensDieterMarsagliaTsangGammaSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/AhrensDieterMarsagliaTsangGammaSampler.java index 006581d..24aa406 100644 --- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/AhrensDieterMarsagliaTsangGammaSampler.java +++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/AhrensDieterMarsagliaTsangGammaSampler.java @@ -282,17 +282,6 @@ public class AhrensDieterMarsagliaTsangGammaSampler new MarsagliaTsangGammaSampler(rng, alpha, theta); } - /** - * @param rng Generator of uniformly distributed random numbers. - * @param source Source to copy. - */ - @SuppressWarnings("unchecked") - private AhrensDieterMarsagliaTsangGammaSampler(UniformRandomProvider rng, - AhrensDieterMarsagliaTsangGammaSampler source) { - super(null); - delegate = source.delegate.withUniformRandomProvider(rng); - } - /** {@inheritDoc} */ @Override public double sample() { @@ -308,6 +297,7 @@ public class AhrensDieterMarsagliaTsangGammaSampler /** {@inheritDoc} */ @Override public SharedStateContinuousSampler withUniformRandomProvider(UniformRandomProvider rng) { - return new AhrensDieterMarsagliaTsangGammaSampler(rng, this); + // Direct return of the optimised sampler + return delegate.withUniformRandomProvider(rng); } } diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/DiscreteUniformSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/DiscreteUniformSampler.java index bc1830c..b9f6fad 100644 --- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/DiscreteUniformSampler.java +++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/DiscreteUniformSampler.java @@ -161,17 +161,6 @@ public class DiscreteUniformSampler new SmallRangeDiscreteUniformSampler(rng, lower, range); } - /** - * @param rng Generator of uniformly distributed random numbers. - * @param source Source to copy. - */ - @SuppressWarnings("unchecked") - private DiscreteUniformSampler(UniformRandomProvider rng, - DiscreteUniformSampler source) { - super(null); - delegate = source.delegate.withUniformRandomProvider(rng); - } - /** {@inheritDoc} */ @Override public int sample() { @@ -187,6 +176,7 @@ public class DiscreteUniformSampler /** {@inheritDoc} */ @Override public SharedStateDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) { - return new DiscreteUniformSampler(rng, this); + // Direct return of the optimised sampler + return delegate.withUniformRandomProvider(rng); } } diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/GeometricSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/GeometricSampler.java index a65a46e..25a4703 100644 --- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/GeometricSampler.java +++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/GeometricSampler.java @@ -154,14 +154,6 @@ public class GeometricSampler implements SharedStateDiscreteSampler { } /** - * @param rng Generator of uniformly distributed random numbers - * @param source Source to copy. - */ - private GeometricSampler(UniformRandomProvider rng, GeometricSampler source) { - delegate = source.delegate.withUniformRandomProvider(rng); - } - - /** * Create a sample from a geometric distribution. * * <p>The sample will take the values in the set {@code [0, 1, 2, ...]}, equivalent to the @@ -181,6 +173,7 @@ public class GeometricSampler implements SharedStateDiscreteSampler { /** {@inheritDoc} */ @Override public SharedStateDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) { - return new GeometricSampler(rng, this); + // Direct return of the optimised sampler + return delegate.withUniformRandomProvider(rng); } } diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/PoissonSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/PoissonSampler.java index 36cc04b..6834db9 100644 --- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/PoissonSampler.java +++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/PoissonSampler.java @@ -79,16 +79,6 @@ public class PoissonSampler new LargeMeanPoissonSampler(rng, mean); } - /** - * @param rng Generator of uniformly distributed random numbers. - * @param source Source to copy. - */ - private PoissonSampler(UniformRandomProvider rng, - PoissonSampler source) { - super(null); - poissonSamplerDelegate = source.poissonSamplerDelegate.withUniformRandomProvider(rng); - } - /** {@inheritDoc} */ @Override public int sample() { @@ -104,6 +94,7 @@ public class PoissonSampler /** {@inheritDoc} */ @Override public SharedStateDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) { - return new PoissonSampler(rng, this); + // Direct return of the optimised sampler + return poissonSamplerDelegate.withUniformRandomProvider(rng); } }