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/07/31 21:47:21 UTC
[commons-rng] 03/08: RNG-110: Return the specialised delegate from
withUniformRandomProvider.
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 <ah...@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);
}
}