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:20 UTC
[commons-rng] 02/08: RNG-110: Make distributions samplers implement
SharedStateXXXSampler.
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 4b43e805fd856296fd1de450c62a9ce8fb3be011
Author: Alex Herbert <ah...@apache.org>
AuthorDate: Fri Jul 19 21:21:57 2019 +0100
RNG-110: Make distributions samplers implement SharedStateXXXSampler.
XXX is Discrete or Continuous.
All withUniformRandomProvider implementations updated to return an
instance of the appropriate interface.
---
.../AhrensDieterExponentialSampler.java | 5 ++-
.../AhrensDieterMarsagliaTsangGammaSampler.java | 15 ++++-----
.../distribution/AliasMethodDiscreteSampler.java | 9 +++--
.../BoxMullerNormalizedGaussianSampler.java | 5 ++-
.../sampling/distribution/ChengBetaSampler.java | 5 ++-
.../distribution/ContinuousUniformSampler.java | 3 +-
.../distribution/DiscreteUniformSampler.java | 15 ++++-----
.../rng/sampling/distribution/GaussianSampler.java | 4 +--
.../sampling/distribution/GeometricSampler.java | 20 +++++------
.../distribution/GuideTableDiscreteSampler.java | 5 ++-
.../InverseTransformContinuousSampler.java | 5 ++-
.../InverseTransformDiscreteSampler.java | 5 ++-
.../InverseTransformParetoSampler.java | 5 ++-
.../distribution/KempSmallMeanPoissonSampler.java | 5 ++-
.../distribution/LargeMeanPoissonSampler.java | 39 +++++++++++++---------
.../sampling/distribution/LogNormalSampler.java | 4 +--
.../MarsagliaNormalizedGaussianSampler.java | 5 ++-
.../MarsagliaTsangWangDiscreteSampler.java | 17 +++++-----
.../rng/sampling/distribution/PoissonSampler.java | 18 +++-------
.../RejectionInversionZipfSampler.java | 5 ++-
.../distribution/SmallMeanPoissonSampler.java | 5 ++-
.../ZigguratNormalizedGaussianSampler.java | 5 ++-
.../AhrensDieterExponentialSamplerTest.java | 2 +-
...AhrensDieterMarsagliaTsangGammaSamplerTest.java | 2 +-
.../AliasMethodDiscreteSamplerTest.java | 2 +-
.../BoxMullerNormalisedGaussianSamplerTest.java | 2 +-
.../distribution/ChengBetaSamplerTest.java | 2 +-
.../distribution/ContinuousUniformSamplerTest.java | 2 +-
.../distribution/DiscreteUniformSamplerTest.java | 2 +-
.../sampling/distribution/GaussianSamplerTest.java | 2 +-
.../distribution/GeometricSamplerTest.java | 2 +-
.../GuideTableDiscreteSamplerTest.java | 2 +-
.../InverseTransformContinuousSamplerTest.java | 2 +-
.../InverseTransformDiscreteSamplerTest.java | 2 +-
.../InverseTransformParetoSamplerTest.java | 2 +-
.../KempSmallMeanPoissonSamplerTest.java | 2 +-
.../distribution/LargeMeanPoissonSamplerTest.java | 2 +-
.../distribution/LogNormalSamplerTest.java | 2 +-
.../MarsagliaNormalisedGaussianSamplerTest.java | 2 +-
.../MarsagliaTsangWangDiscreteSamplerTest.java | 4 +--
.../sampling/distribution/PoissonSamplerTest.java | 2 +-
.../RejectionInversionZipfSamplerTest.java | 2 +-
.../distribution/SmallMeanPoissonSamplerTest.java | 2 +-
.../ZigguratNormalizedGaussianSamplerTest.java | 2 +-
44 files changed, 115 insertions(+), 135 deletions(-)
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/AhrensDieterExponentialSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/AhrensDieterExponentialSampler.java
index 2d93c28..0340a45 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/AhrensDieterExponentialSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/AhrensDieterExponentialSampler.java
@@ -17,7 +17,6 @@
package org.apache.commons.rng.sampling.distribution;
import org.apache.commons.rng.UniformRandomProvider;
-import org.apache.commons.rng.sampling.SharedStateSampler;
/**
* Sampling from an <a href="http://mathworld.wolfram.com/ExponentialDistribution.html">exponential distribution</a>.
@@ -28,7 +27,7 @@ import org.apache.commons.rng.sampling.SharedStateSampler;
*/
public class AhrensDieterExponentialSampler
extends SamplerBase
- implements ContinuousSampler, SharedStateSampler<AhrensDieterExponentialSampler> {
+ implements SharedStateContinuousSampler {
/**
* Table containing the constants
* \( q_i = sum_{j=1}^i (\ln 2)^j / j! = \ln 2 + (\ln 2)^2 / 2 + ... + (\ln 2)^i / i! \)
@@ -139,7 +138,7 @@ public class AhrensDieterExponentialSampler
/** {@inheritDoc} */
@Override
- public AhrensDieterExponentialSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateContinuousSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new AhrensDieterExponentialSampler(rng, this);
}
}
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 08901ff..006581d 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
@@ -17,7 +17,6 @@
package org.apache.commons.rng.sampling.distribution;
import org.apache.commons.rng.UniformRandomProvider;
-import org.apache.commons.rng.sampling.SharedStateSampler;
/**
* Sampling from the <a href="http://mathworld.wolfram.com/GammaDistribution.html">Gamma distribution</a>.
@@ -53,15 +52,15 @@ import org.apache.commons.rng.sampling.SharedStateSampler;
*/
public class AhrensDieterMarsagliaTsangGammaSampler
extends SamplerBase
- implements ContinuousSampler, SharedStateSampler<AhrensDieterMarsagliaTsangGammaSampler> {
+ implements SharedStateContinuousSampler {
/** The appropriate gamma sampler for the parameters. */
- private final ContinuousSampler delegate;
+ private final SharedStateContinuousSampler delegate;
/**
* Base class for a sampler from the Gamma distribution.
*/
private abstract static class BaseGammaSampler
- implements ContinuousSampler, SharedStateSampler<ContinuousSampler> {
+ implements SharedStateContinuousSampler {
/** Underlying source of randomness. */
protected final UniformRandomProvider rng;
@@ -183,7 +182,7 @@ public class AhrensDieterMarsagliaTsangGammaSampler
}
@Override
- public ContinuousSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateContinuousSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new AhrensDieterGammaSampler(rng, this);
}
}
@@ -263,7 +262,7 @@ public class AhrensDieterMarsagliaTsangGammaSampler
}
@Override
- public ContinuousSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateContinuousSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new MarsagliaTsangGammaSampler(rng, this);
}
}
@@ -291,7 +290,7 @@ public class AhrensDieterMarsagliaTsangGammaSampler
private AhrensDieterMarsagliaTsangGammaSampler(UniformRandomProvider rng,
AhrensDieterMarsagliaTsangGammaSampler source) {
super(null);
- delegate = ((SharedStateSampler<ContinuousSampler>)(source.delegate)).withUniformRandomProvider(rng);
+ delegate = source.delegate.withUniformRandomProvider(rng);
}
/** {@inheritDoc} */
@@ -308,7 +307,7 @@ public class AhrensDieterMarsagliaTsangGammaSampler
/** {@inheritDoc} */
@Override
- public AhrensDieterMarsagliaTsangGammaSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateContinuousSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new AhrensDieterMarsagliaTsangGammaSampler(rng, this);
}
}
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/AliasMethodDiscreteSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/AliasMethodDiscreteSampler.java
index c5018e0..2ad3593 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/AliasMethodDiscreteSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/AliasMethodDiscreteSampler.java
@@ -17,7 +17,6 @@
package org.apache.commons.rng.sampling.distribution;
import org.apache.commons.rng.UniformRandomProvider;
-import org.apache.commons.rng.sampling.SharedStateSampler;
import java.util.Arrays;
@@ -63,15 +62,15 @@ import java.util.Arrays;
* <p>Larger table sizes that are a power of 2 will benefit from fast algorithms for
* {@link UniformRandomProvider#nextInt(int)} that exploit the power of 2.</p>
*
- * @since 1.3
* @see <a href="https://en.wikipedia.org/wiki/Alias_method">Alias Method</a>
* @see <a href="http://www.keithschwarz.com/darts-dice-coins/">Darts, Dice, and Coins:
* Sampling from a Discrete Distribution by Keith Schwartz</a>
* @see <a href="https://ieeexplore.ieee.org/document/92917">Vose (1991) IEEE Transactions
* on Software Engineering 17, 972-975.</a>
+ * @since 1.3
*/
public class AliasMethodDiscreteSampler
- implements DiscreteSampler, SharedStateSampler<AliasMethodDiscreteSampler> {
+ implements SharedStateDiscreteSampler {
/**
* The default alpha factor for zero-padding an input probability table. The default
* value will pad the probabilities by to the next power-of-2.
@@ -213,7 +212,7 @@ public class AliasMethodDiscreteSampler
/** {@inheritDoc} */
@Override
- public SmallTableAliasMethodDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new SmallTableAliasMethodDiscreteSampler(rng, probability, alias);
}
}
@@ -280,7 +279,7 @@ public class AliasMethodDiscreteSampler
/** {@inheritDoc} */
@Override
- public AliasMethodDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new AliasMethodDiscreteSampler(rng, probability, alias);
}
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/BoxMullerNormalizedGaussianSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/BoxMullerNormalizedGaussianSampler.java
index 5910060..d707670 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/BoxMullerNormalizedGaussianSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/BoxMullerNormalizedGaussianSampler.java
@@ -17,7 +17,6 @@
package org.apache.commons.rng.sampling.distribution;
import org.apache.commons.rng.UniformRandomProvider;
-import org.apache.commons.rng.sampling.SharedStateSampler;
/**
* <a href="https://en.wikipedia.org/wiki/Box%E2%80%93Muller_transform">
@@ -29,7 +28,7 @@ import org.apache.commons.rng.sampling.SharedStateSampler;
* @since 1.1
*/
public class BoxMullerNormalizedGaussianSampler
- implements NormalizedGaussianSampler, SharedStateSampler<BoxMullerNormalizedGaussianSampler> {
+ implements NormalizedGaussianSampler, SharedStateContinuousSampler {
/** Next gaussian. */
private double nextGaussian = Double.NaN;
/** Underlying source of randomness. */
@@ -79,7 +78,7 @@ public class BoxMullerNormalizedGaussianSampler
/** {@inheritDoc} */
@Override
- public BoxMullerNormalizedGaussianSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateContinuousSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new BoxMullerNormalizedGaussianSampler(rng);
}
}
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/ChengBetaSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/ChengBetaSampler.java
index 682ae9c..6fe83e7 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/ChengBetaSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/ChengBetaSampler.java
@@ -17,7 +17,6 @@
package org.apache.commons.rng.sampling.distribution;
import org.apache.commons.rng.UniformRandomProvider;
-import org.apache.commons.rng.sampling.SharedStateSampler;
/**
* Utility class implementing Cheng's algorithms for beta distribution sampling.
@@ -36,7 +35,7 @@ import org.apache.commons.rng.sampling.SharedStateSampler;
*/
public class ChengBetaSampler
extends SamplerBase
- implements ContinuousSampler, SharedStateSampler<ChengBetaSampler> {
+ implements SharedStateContinuousSampler {
/** 1/2. */
private static final double ONE_HALF = 1d / 2;
/** 1/4. */
@@ -105,7 +104,7 @@ public class ChengBetaSampler
/** {@inheritDoc} */
@Override
- public ChengBetaSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateContinuousSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new ChengBetaSampler(rng, this);
}
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/ContinuousUniformSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/ContinuousUniformSampler.java
index 2a3a9ea..43a7ec9 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/ContinuousUniformSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/ContinuousUniformSampler.java
@@ -17,7 +17,6 @@
package org.apache.commons.rng.sampling.distribution;
import org.apache.commons.rng.UniformRandomProvider;
-import org.apache.commons.rng.sampling.SharedStateSampler;
/**
* Sampling from a uniform distribution.
@@ -28,7 +27,7 @@ import org.apache.commons.rng.sampling.SharedStateSampler;
*/
public class ContinuousUniformSampler
extends SamplerBase
- implements ContinuousSampler, SharedStateSampler<ContinuousUniformSampler> {
+ implements SharedStateContinuousSampler {
/** Lower bound. */
private final double lo;
/** Higher bound. */
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 1809c4c..bc1830c 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
@@ -18,7 +18,6 @@
package org.apache.commons.rng.sampling.distribution;
import org.apache.commons.rng.UniformRandomProvider;
-import org.apache.commons.rng.sampling.SharedStateSampler;
/**
* Discrete uniform distribution sampler.
@@ -31,16 +30,16 @@ import org.apache.commons.rng.sampling.SharedStateSampler;
*/
public class DiscreteUniformSampler
extends SamplerBase
- implements DiscreteSampler, SharedStateSampler<DiscreteUniformSampler> {
+ implements SharedStateDiscreteSampler {
/** The appropriate uniform sampler for the parameters. */
- private final DiscreteSampler delegate;
+ private final SharedStateDiscreteSampler delegate;
/**
* Base class for a sampler from a discrete uniform distribution.
*/
private abstract static class AbstractDiscreteUniformSampler
- implements DiscreteSampler, SharedStateSampler<DiscreteSampler> {
+ implements SharedStateDiscreteSampler {
/** Underlying source of randomness. */
protected final UniformRandomProvider rng;
@@ -91,7 +90,7 @@ public class DiscreteUniformSampler
}
@Override
- public DiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new SmallRangeDiscreteUniformSampler(rng, lower, range);
}
}
@@ -134,7 +133,7 @@ public class DiscreteUniformSampler
}
@Override
- public DiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new LargeRangeDiscreteUniformSampler(rng, lower, upper);
}
}
@@ -170,7 +169,7 @@ public class DiscreteUniformSampler
private DiscreteUniformSampler(UniformRandomProvider rng,
DiscreteUniformSampler source) {
super(null);
- delegate = ((SharedStateSampler<DiscreteSampler>)(source.delegate)).withUniformRandomProvider(rng);
+ delegate = source.delegate.withUniformRandomProvider(rng);
}
/** {@inheritDoc} */
@@ -187,7 +186,7 @@ public class DiscreteUniformSampler
/** {@inheritDoc} */
@Override
- public DiscreteUniformSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new DiscreteUniformSampler(rng, this);
}
}
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/GaussianSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/GaussianSampler.java
index 8362387..91c29e7 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/GaussianSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/GaussianSampler.java
@@ -25,7 +25,7 @@ import org.apache.commons.rng.sampling.SharedStateSampler;
*
* @since 1.1
*/
-public class GaussianSampler implements ContinuousSampler, SharedStateSampler<GaussianSampler> {
+public class GaussianSampler implements SharedStateContinuousSampler {
/** Mean. */
private final double mean;
/** standardDeviation. */
@@ -85,7 +85,7 @@ public class GaussianSampler implements ContinuousSampler, SharedStateSampler<Ga
* sharing state.
*/
@Override
- public GaussianSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateContinuousSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new GaussianSampler(rng, this);
}
}
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 f1e3470..a65a46e 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
@@ -17,7 +17,6 @@
package org.apache.commons.rng.sampling.distribution;
import org.apache.commons.rng.UniformRandomProvider;
-import org.apache.commons.rng.sampling.SharedStateSampler;
/**
* Sampling from a <a href="https://en.wikipedia.org/wiki/Geometric_distribution">geometric
@@ -46,15 +45,15 @@ import org.apache.commons.rng.sampling.SharedStateSampler;
*
* @since 1.3
*/
-public class GeometricSampler implements DiscreteSampler, SharedStateSampler<GeometricSampler> {
+public class GeometricSampler implements SharedStateDiscreteSampler {
/** The appropriate geometric sampler for the parameters. */
- private final DiscreteSampler delegate;
+ private final SharedStateDiscreteSampler delegate;
/**
* Sample from the geometric distribution when the probability of success is 1.
*/
private static class GeometricP1Sampler
- implements DiscreteSampler, SharedStateSampler<DiscreteSampler> {
+ implements SharedStateDiscreteSampler {
/** The single instance. */
static final GeometricP1Sampler INSTANCE = new GeometricP1Sampler();
@@ -70,7 +69,7 @@ public class GeometricSampler implements DiscreteSampler, SharedStateSampler<Geo
}
@Override
- public DiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
// No requirement for a new instance
return this;
}
@@ -80,11 +79,11 @@ public class GeometricSampler implements DiscreteSampler, SharedStateSampler<Geo
* Sample from the geometric distribution by using a related exponential distribution.
*/
private static class GeometricExponentialSampler
- implements DiscreteSampler, SharedStateSampler<DiscreteSampler> {
+ implements SharedStateDiscreteSampler {
/** Underlying source of randomness. Used only for the {@link #toString()} method. */
private final UniformRandomProvider rng;
/** The related exponential sampler for the geometric distribution. */
- private final AhrensDieterExponentialSampler exponentialSampler;
+ private final SharedStateContinuousSampler exponentialSampler;
/**
* @param rng Generator of uniformly distributed random numbers
@@ -128,7 +127,7 @@ public class GeometricSampler implements DiscreteSampler, SharedStateSampler<Geo
}
@Override
- public DiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new GeometricExponentialSampler(rng, this);
}
}
@@ -158,9 +157,8 @@ public class GeometricSampler implements DiscreteSampler, SharedStateSampler<Geo
* @param rng Generator of uniformly distributed random numbers
* @param source Source to copy.
*/
- @SuppressWarnings("unchecked")
private GeometricSampler(UniformRandomProvider rng, GeometricSampler source) {
- delegate = ((SharedStateSampler<DiscreteSampler>)(source.delegate)).withUniformRandomProvider(rng);
+ delegate = source.delegate.withUniformRandomProvider(rng);
}
/**
@@ -182,7 +180,7 @@ public class GeometricSampler implements DiscreteSampler, SharedStateSampler<Geo
/** {@inheritDoc} */
@Override
- public GeometricSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new GeometricSampler(rng, this);
}
}
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/GuideTableDiscreteSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/GuideTableDiscreteSampler.java
index cb02cbb..0ca3315 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/GuideTableDiscreteSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/GuideTableDiscreteSampler.java
@@ -17,7 +17,6 @@
package org.apache.commons.rng.sampling.distribution;
import org.apache.commons.rng.UniformRandomProvider;
-import org.apache.commons.rng.sampling.SharedStateSampler;
/**
* Compute a sample from a discrete probability distribution. The cumulative probability
@@ -41,7 +40,7 @@ import org.apache.commons.rng.sampling.SharedStateSampler;
* @since 1.3
*/
public class GuideTableDiscreteSampler
- implements DiscreteSampler, SharedStateSampler<GuideTableDiscreteSampler> {
+ implements SharedStateDiscreteSampler {
/** The default value for {@code alpha}. */
private static final double DEFAULT_ALPHA = 1.0;
/** Underlying source of randomness. */
@@ -213,7 +212,7 @@ public class GuideTableDiscreteSampler
/** {@inheritDoc} */
@Override
- public GuideTableDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new GuideTableDiscreteSampler(rng, this);
}
}
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InverseTransformContinuousSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InverseTransformContinuousSampler.java
index f60e1d0..4401d9e 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InverseTransformContinuousSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InverseTransformContinuousSampler.java
@@ -17,7 +17,6 @@
package org.apache.commons.rng.sampling.distribution;
import org.apache.commons.rng.UniformRandomProvider;
-import org.apache.commons.rng.sampling.SharedStateSampler;
/**
* Distribution sampler that uses the
@@ -58,7 +57,7 @@ import org.apache.commons.rng.sampling.SharedStateSampler;
*/
public class InverseTransformContinuousSampler
extends SamplerBase
- implements ContinuousSampler, SharedStateSampler<InverseTransformContinuousSampler> {
+ implements SharedStateContinuousSampler {
/** Inverse cumulative probability function. */
private final ContinuousInverseCumulativeProbabilityFunction function;
/** Underlying source of randomness. */
@@ -94,7 +93,7 @@ public class InverseTransformContinuousSampler
* must be suitable for concurrent use to ensure thread safety.</p>
*/
@Override
- public InverseTransformContinuousSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateContinuousSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new InverseTransformContinuousSampler(rng, function);
}
}
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InverseTransformDiscreteSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InverseTransformDiscreteSampler.java
index e10e2c4..6067a8c 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InverseTransformDiscreteSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InverseTransformDiscreteSampler.java
@@ -17,7 +17,6 @@
package org.apache.commons.rng.sampling.distribution;
import org.apache.commons.rng.UniformRandomProvider;
-import org.apache.commons.rng.sampling.SharedStateSampler;
/**
* Distribution sampler that uses the
@@ -58,7 +57,7 @@ import org.apache.commons.rng.sampling.SharedStateSampler;
*/
public class InverseTransformDiscreteSampler
extends SamplerBase
- implements DiscreteSampler, SharedStateSampler<InverseTransformDiscreteSampler> {
+ implements SharedStateDiscreteSampler {
/** Inverse cumulative probability function. */
private final DiscreteInverseCumulativeProbabilityFunction function;
/** Underlying source of randomness. */
@@ -94,7 +93,7 @@ public class InverseTransformDiscreteSampler
* must be suitable for concurrent use to ensure thread safety.</p>
*/
@Override
- public InverseTransformDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new InverseTransformDiscreteSampler(rng, function);
}
}
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InverseTransformParetoSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InverseTransformParetoSampler.java
index 4068b49..a7b6d7c 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InverseTransformParetoSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InverseTransformParetoSampler.java
@@ -17,7 +17,6 @@
package org.apache.commons.rng.sampling.distribution;
import org.apache.commons.rng.UniformRandomProvider;
-import org.apache.commons.rng.sampling.SharedStateSampler;
/**
* Sampling from a <a href="https://en.wikipedia.org/wiki/Pareto_distribution">Pareto distribution</a>.
@@ -28,7 +27,7 @@ import org.apache.commons.rng.sampling.SharedStateSampler;
*/
public class InverseTransformParetoSampler
extends SamplerBase
- implements ContinuousSampler, SharedStateSampler<InverseTransformParetoSampler> {
+ implements SharedStateContinuousSampler {
/** Scale. */
private final double scale;
/** 1 / Shape. */
@@ -83,7 +82,7 @@ public class InverseTransformParetoSampler
/** {@inheritDoc} */
@Override
- public InverseTransformParetoSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateContinuousSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new InverseTransformParetoSampler(rng, this);
}
}
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/KempSmallMeanPoissonSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/KempSmallMeanPoissonSampler.java
index b3203d3..7c4a09c 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/KempSmallMeanPoissonSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/KempSmallMeanPoissonSampler.java
@@ -17,7 +17,6 @@
package org.apache.commons.rng.sampling.distribution;
import org.apache.commons.rng.UniformRandomProvider;
-import org.apache.commons.rng.sampling.SharedStateSampler;
/**
* Sampler for the <a href="http://mathworld.wolfram.com/PoissonDistribution.html">Poisson
@@ -47,7 +46,7 @@ import org.apache.commons.rng.sampling.SharedStateSampler;
* 249-253</a>
*/
public class KempSmallMeanPoissonSampler
- implements DiscreteSampler, SharedStateSampler<KempSmallMeanPoissonSampler> {
+ implements SharedStateDiscreteSampler {
/** Underlying source of randomness. */
private final UniformRandomProvider rng;
/**
@@ -129,7 +128,7 @@ public class KempSmallMeanPoissonSampler
/** {@inheritDoc} */
@Override
- public KempSmallMeanPoissonSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new KempSmallMeanPoissonSampler(rng, this);
}
}
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/LargeMeanPoissonSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/LargeMeanPoissonSampler.java
index ce8d9ae..2a68e32 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/LargeMeanPoissonSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/LargeMeanPoissonSampler.java
@@ -17,7 +17,6 @@
package org.apache.commons.rng.sampling.distribution;
import org.apache.commons.rng.UniformRandomProvider;
-import org.apache.commons.rng.sampling.SharedStateSampler;
import org.apache.commons.rng.sampling.distribution.InternalUtils.FactorialLog;
/**
@@ -45,13 +44,26 @@ import org.apache.commons.rng.sampling.distribution.InternalUtils.FactorialLog;
* @since 1.1
*/
public class LargeMeanPoissonSampler
- implements DiscreteSampler, SharedStateSampler<LargeMeanPoissonSampler> {
+ implements SharedStateDiscreteSampler {
/** Upper bound to avoid truncation. */
private static final double MAX_MEAN = 0.5 * Integer.MAX_VALUE;
/** Class to compute {@code log(n!)}. This has no cached values. */
private static final InternalUtils.FactorialLog NO_CACHE_FACTORIAL_LOG;
/** Used when there is no requirement for a small mean Poisson sampler. */
- private static final KempSmallMeanPoissonSampler NO_SMALL_MEAN_POISSON_SAMPLER = null;
+ private static final SharedStateDiscreteSampler NO_SMALL_MEAN_POISSON_SAMPLER =
+ new SharedStateDiscreteSampler() {
+ @Override
+ public SharedStateDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ // No requirement for RNG
+ return this;
+ }
+
+ @Override
+ public int sample() {
+ // No Poisson sample
+ return 0;
+ }
+ };
static {
// Create without a cache.
@@ -61,9 +73,9 @@ public class LargeMeanPoissonSampler
/** Underlying source of randomness. */
private final UniformRandomProvider rng;
/** Exponential. */
- private final AhrensDieterExponentialSampler exponential;
+ private final SharedStateContinuousSampler exponential;
/** Gaussian. */
- private final ContinuousSampler gaussian;
+ private final SharedStateContinuousSampler gaussian;
/** Local class to compute {@code log(n!)}. This may have cached values. */
private final InternalUtils.FactorialLog factorialLog;
@@ -101,7 +113,7 @@ public class LargeMeanPoissonSampler
private final double c1;
/** The internal Poisson sampler for the lambda fraction. */
- private final KempSmallMeanPoissonSampler smallMeanPoissonSampler;
+ private final SharedStateDiscreteSampler smallMeanPoissonSampler;
/**
* @param rng Generator of uniformly distributed random numbers.
@@ -195,8 +207,7 @@ public class LargeMeanPoissonSampler
LargeMeanPoissonSampler source) {
this.rng = rng;
- // The Gaussian sampler has no shared state
- gaussian = new ZigguratNormalizedGaussianSampler(rng);
+ gaussian = source.gaussian.withUniformRandomProvider(rng);
exponential = source.exponential.withUniformRandomProvider(rng);
// Reuse the cache
factorialLog = source.factorialLog;
@@ -212,18 +223,14 @@ public class LargeMeanPoissonSampler
c1 = source.c1;
// Share the state of the small sampler
- smallMeanPoissonSampler = source.smallMeanPoissonSampler == null ?
- NO_SMALL_MEAN_POISSON_SAMPLER : // Not used.
- source.smallMeanPoissonSampler.withUniformRandomProvider(rng);
+ smallMeanPoissonSampler = source.smallMeanPoissonSampler.withUniformRandomProvider(rng);
}
/** {@inheritDoc} */
@Override
public int sample() {
-
- final int y2 = (smallMeanPoissonSampler == null) ?
- 0 : // No lambda fraction
- smallMeanPoissonSampler.sample();
+ // This will never be null. It may be a no-op delegate that returns zero.
+ final int y2 = smallMeanPoissonSampler.sample();
double x;
double y;
@@ -295,7 +302,7 @@ public class LargeMeanPoissonSampler
/** {@inheritDoc} */
@Override
- public LargeMeanPoissonSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new LargeMeanPoissonSampler(rng, this);
}
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/LogNormalSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/LogNormalSampler.java
index 55dab9e..9bf9568 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/LogNormalSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/LogNormalSampler.java
@@ -24,7 +24,7 @@ import org.apache.commons.rng.sampling.SharedStateSampler;
*
* @since 1.1
*/
-public class LogNormalSampler implements ContinuousSampler, SharedStateSampler<LogNormalSampler> {
+public class LogNormalSampler implements SharedStateContinuousSampler {
/** Scale. */
private final double scale;
/** Shape. */
@@ -86,7 +86,7 @@ public class LogNormalSampler implements ContinuousSampler, SharedStateSampler<L
* sharing state.
*/
@Override
- public LogNormalSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateContinuousSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new LogNormalSampler(rng, this);
}
}
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/MarsagliaNormalizedGaussianSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/MarsagliaNormalizedGaussianSampler.java
index 421288a..7068052 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/MarsagliaNormalizedGaussianSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/MarsagliaNormalizedGaussianSampler.java
@@ -17,7 +17,6 @@
package org.apache.commons.rng.sampling.distribution;
import org.apache.commons.rng.UniformRandomProvider;
-import org.apache.commons.rng.sampling.SharedStateSampler;
/**
* <a href="https://en.wikipedia.org/wiki/Marsaglia_polar_method">
@@ -31,7 +30,7 @@ import org.apache.commons.rng.sampling.SharedStateSampler;
* @since 1.1
*/
public class MarsagliaNormalizedGaussianSampler
- implements NormalizedGaussianSampler, SharedStateSampler<MarsagliaNormalizedGaussianSampler> {
+ implements NormalizedGaussianSampler, SharedStateContinuousSampler {
/** Next gaussian. */
private double nextGaussian = Double.NaN;
/** Underlying source of randomness. */
@@ -88,7 +87,7 @@ public class MarsagliaNormalizedGaussianSampler
/** {@inheritDoc} */
@Override
- public MarsagliaNormalizedGaussianSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateContinuousSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new MarsagliaNormalizedGaussianSampler(rng);
}
}
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/MarsagliaTsangWangDiscreteSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/MarsagliaTsangWangDiscreteSampler.java
index c7528f4..32bc12e 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/MarsagliaTsangWangDiscreteSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/MarsagliaTsangWangDiscreteSampler.java
@@ -17,7 +17,6 @@
package org.apache.commons.rng.sampling.distribution;
import org.apache.commons.rng.UniformRandomProvider;
-import org.apache.commons.rng.sampling.SharedStateSampler;
/**
* Sampler for a discrete distribution using an optimised look-up table.
@@ -51,7 +50,7 @@ import org.apache.commons.rng.sampling.SharedStateSampler;
* 11, Issue 3</a>
*/
public abstract class MarsagliaTsangWangDiscreteSampler
- implements DiscreteSampler, SharedStateSampler<MarsagliaTsangWangDiscreteSampler> {
+ implements SharedStateDiscreteSampler {
/** The value 2<sup>8</sup> as an {@code int}. */
private static final int INT_8 = 1 << 8;
/** The value 2<sup>16</sup> as an {@code int}. */
@@ -248,7 +247,7 @@ public abstract class MarsagliaTsangWangDiscreteSampler
}
@Override
- public MarsagliaTsangWangDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new MarsagliaTsangWangBase64Int8DiscreteSampler(rng, this);
}
}
@@ -388,7 +387,7 @@ public abstract class MarsagliaTsangWangDiscreteSampler
}
@Override
- public MarsagliaTsangWangDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new MarsagliaTsangWangBase64Int16DiscreteSampler(rng, this);
}
}
@@ -524,7 +523,7 @@ public abstract class MarsagliaTsangWangDiscreteSampler
}
@Override
- public MarsagliaTsangWangDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new MarsagliaTsangWangBase64Int32DiscreteSampler(rng, this);
}
}
@@ -557,7 +556,7 @@ public abstract class MarsagliaTsangWangDiscreteSampler
}
@Override
- public MarsagliaTsangWangDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
// No shared state
return this;
}
@@ -576,14 +575,14 @@ public abstract class MarsagliaTsangWangDiscreteSampler
/** The number of trials. */
private final int trials;
/** The Binomial distribution sampler. */
- private final MarsagliaTsangWangDiscreteSampler sampler;
+ private final SharedStateDiscreteSampler sampler;
/**
* @param trials Number of trials.
* @param sampler Binomial distribution sampler.
*/
MarsagliaTsangWangInversionBinomialSampler(int trials,
- MarsagliaTsangWangDiscreteSampler sampler) {
+ SharedStateDiscreteSampler sampler) {
super(null, BINOMIAL_NAME);
this.trials = trials;
this.sampler = sampler;
@@ -600,7 +599,7 @@ public abstract class MarsagliaTsangWangDiscreteSampler
}
@Override
- public MarsagliaTsangWangDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new MarsagliaTsangWangInversionBinomialSampler(this.trials,
this.sampler.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 804a9e3..36cc04b 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
@@ -17,7 +17,6 @@
package org.apache.commons.rng.sampling.distribution;
import org.apache.commons.rng.UniformRandomProvider;
-import org.apache.commons.rng.sampling.SharedStateSampler;
/**
* Sampler for the <a href="http://mathworld.wolfram.com/PoissonDistribution.html">Poisson distribution</a>.
@@ -52,7 +51,7 @@ import org.apache.commons.rng.sampling.SharedStateSampler;
*/
public class PoissonSampler
extends SamplerBase
- implements DiscreteSampler, SharedStateSampler<PoissonSampler> {
+ implements SharedStateDiscreteSampler {
/**
* Value for switching sampling algorithm.
@@ -61,7 +60,7 @@ public class PoissonSampler
*/
static final double PIVOT = 40;
/** The internal Poisson sampler. */
- private final DiscreteSampler poissonSamplerDelegate;
+ private final SharedStateDiscreteSampler poissonSamplerDelegate;
/**
* @param rng Generator of uniformly distributed random numbers.
@@ -85,16 +84,9 @@ public class PoissonSampler
* @param source Source to copy.
*/
private PoissonSampler(UniformRandomProvider rng,
- PoissonSampler source) {
+ PoissonSampler source) {
super(null);
-
- if (source.poissonSamplerDelegate instanceof SmallMeanPoissonSampler) {
- poissonSamplerDelegate =
- ((SmallMeanPoissonSampler)source.poissonSamplerDelegate).withUniformRandomProvider(rng);
- } else {
- poissonSamplerDelegate =
- ((LargeMeanPoissonSampler)source.poissonSamplerDelegate).withUniformRandomProvider(rng);
- }
+ poissonSamplerDelegate = source.poissonSamplerDelegate.withUniformRandomProvider(rng);
}
/** {@inheritDoc} */
@@ -111,7 +103,7 @@ public class PoissonSampler
/** {@inheritDoc} */
@Override
- public PoissonSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new PoissonSampler(rng, this);
}
}
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/RejectionInversionZipfSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/RejectionInversionZipfSampler.java
index 112f3fe..fb8cb9d 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/RejectionInversionZipfSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/RejectionInversionZipfSampler.java
@@ -18,7 +18,6 @@
package org.apache.commons.rng.sampling.distribution;
import org.apache.commons.rng.UniformRandomProvider;
-import org.apache.commons.rng.sampling.SharedStateSampler;
/**
* Implementation of the <a href="https://en.wikipedia.org/wiki/Zipf's_law">Zipf distribution</a>.
@@ -29,7 +28,7 @@ import org.apache.commons.rng.sampling.SharedStateSampler;
*/
public class RejectionInversionZipfSampler
extends SamplerBase
- implements DiscreteSampler, SharedStateSampler<RejectionInversionZipfSampler> {
+ implements SharedStateDiscreteSampler {
/** Threshold below which Taylor series will be used. */
private static final double TAYLOR_THRESHOLD = 1e-8;
/** 1/2. */
@@ -195,7 +194,7 @@ public class RejectionInversionZipfSampler
/** {@inheritDoc} */
@Override
- public RejectionInversionZipfSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new RejectionInversionZipfSampler(rng, this);
}
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/SmallMeanPoissonSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/SmallMeanPoissonSampler.java
index e6a9722..331b6b0 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/SmallMeanPoissonSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/SmallMeanPoissonSampler.java
@@ -17,7 +17,6 @@
package org.apache.commons.rng.sampling.distribution;
import org.apache.commons.rng.UniformRandomProvider;
-import org.apache.commons.rng.sampling.SharedStateSampler;
/**
* Sampler for the <a href="http://mathworld.wolfram.com/PoissonDistribution.html">Poisson distribution</a>.
@@ -43,7 +42,7 @@ import org.apache.commons.rng.sampling.SharedStateSampler;
* @since 1.1
*/
public class SmallMeanPoissonSampler
- implements DiscreteSampler, SharedStateSampler<SmallMeanPoissonSampler> {
+ implements SharedStateDiscreteSampler {
/**
* Pre-compute {@code Math.exp(-mean)}.
* Note: This is the probability of the Poisson sample {@code P(n=0)}.
@@ -111,7 +110,7 @@ public class SmallMeanPoissonSampler
/** {@inheritDoc} */
@Override
- public SmallMeanPoissonSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateDiscreteSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new SmallMeanPoissonSampler(rng, this);
}
}
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/ZigguratNormalizedGaussianSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/ZigguratNormalizedGaussianSampler.java
index a1ba383..6b8588a 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/ZigguratNormalizedGaussianSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/ZigguratNormalizedGaussianSampler.java
@@ -18,7 +18,6 @@
package org.apache.commons.rng.sampling.distribution;
import org.apache.commons.rng.UniformRandomProvider;
-import org.apache.commons.rng.sampling.SharedStateSampler;
/**
* <a href="https://en.wikipedia.org/wiki/Ziggurat_algorithm">
@@ -39,7 +38,7 @@ import org.apache.commons.rng.sampling.SharedStateSampler;
* @since 1.1
*/
public class ZigguratNormalizedGaussianSampler
- implements NormalizedGaussianSampler, SharedStateSampler<ZigguratNormalizedGaussianSampler> {
+ implements NormalizedGaussianSampler, SharedStateContinuousSampler {
/** Start of tail. */
private static final double R = 3.442619855899;
/** Inverse of R. */
@@ -164,7 +163,7 @@ public class ZigguratNormalizedGaussianSampler
/** {@inheritDoc} */
@Override
- public ZigguratNormalizedGaussianSampler withUniformRandomProvider(UniformRandomProvider rng) {
+ public SharedStateContinuousSampler withUniformRandomProvider(UniformRandomProvider rng) {
return new ZigguratNormalizedGaussianSampler(rng);
}
}
diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/AhrensDieterExponentialSamplerTest.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/AhrensDieterExponentialSamplerTest.java
index 739a178..6fe5139 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/AhrensDieterExponentialSamplerTest.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/AhrensDieterExponentialSamplerTest.java
@@ -49,7 +49,7 @@ public class AhrensDieterExponentialSamplerTest {
final double mean = 1.23;
final AhrensDieterExponentialSampler sampler1 =
new AhrensDieterExponentialSampler(rng1, mean);
- final AhrensDieterExponentialSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
+ final SharedStateContinuousSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
RandomAssert.assertProduceSameSequence(sampler1, sampler2);
}
}
diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/AhrensDieterMarsagliaTsangGammaSamplerTest.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/AhrensDieterMarsagliaTsangGammaSamplerTest.java
index 11ba878..27a4198 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/AhrensDieterMarsagliaTsangGammaSamplerTest.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/AhrensDieterMarsagliaTsangGammaSamplerTest.java
@@ -81,7 +81,7 @@ public class AhrensDieterMarsagliaTsangGammaSamplerTest {
final UniformRandomProvider rng2 = RandomSource.create(RandomSource.SPLIT_MIX_64, 0L);
final AhrensDieterMarsagliaTsangGammaSampler sampler1 =
new AhrensDieterMarsagliaTsangGammaSampler(rng1, alpha, theta);
- final AhrensDieterMarsagliaTsangGammaSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
+ final SharedStateContinuousSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
RandomAssert.assertProduceSameSequence(sampler1, sampler2);
}
}
diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/AliasMethodDiscreteSamplerTest.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/AliasMethodDiscreteSamplerTest.java
index e162f19..e5f9108 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/AliasMethodDiscreteSamplerTest.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/AliasMethodDiscreteSamplerTest.java
@@ -277,7 +277,7 @@ public class AliasMethodDiscreteSamplerTest {
// Use negative alpha to disable padding
final AliasMethodDiscreteSampler sampler1 =
AliasMethodDiscreteSampler.create(rng1, probabilities, -1);
- final AliasMethodDiscreteSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
+ final SharedStateDiscreteSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
RandomAssert.assertProduceSameSequence(sampler1, sampler2);
}
}
diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/BoxMullerNormalisedGaussianSamplerTest.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/BoxMullerNormalisedGaussianSamplerTest.java
index 191cbc5..6e21e62 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/BoxMullerNormalisedGaussianSamplerTest.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/BoxMullerNormalisedGaussianSamplerTest.java
@@ -34,7 +34,7 @@ public class BoxMullerNormalisedGaussianSamplerTest {
final UniformRandomProvider rng2 = RandomSource.create(RandomSource.SPLIT_MIX_64, 0L);
final BoxMullerNormalizedGaussianSampler sampler1 =
new BoxMullerNormalizedGaussianSampler(rng1);
- final BoxMullerNormalizedGaussianSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
+ final SharedStateContinuousSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
RandomAssert.assertProduceSameSequence(sampler1, sampler2);
}
}
diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/ChengBetaSamplerTest.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/ChengBetaSamplerTest.java
index 24325b0..cb630aa 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/ChengBetaSamplerTest.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/ChengBetaSamplerTest.java
@@ -65,7 +65,7 @@ public class ChengBetaSamplerTest {
final double beta = 4.56;
final ChengBetaSampler sampler1 =
new ChengBetaSampler(rng1, alpha, beta);
- final ChengBetaSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
+ final SharedStateContinuousSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
RandomAssert.assertProduceSameSequence(sampler1, sampler2);
}
}
diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/ContinuousUniformSamplerTest.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/ContinuousUniformSamplerTest.java
index 06bf53f..36b9eba 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/ContinuousUniformSamplerTest.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/ContinuousUniformSamplerTest.java
@@ -60,7 +60,7 @@ public class ContinuousUniformSamplerTest {
final double high = 4.56;
final ContinuousUniformSampler sampler1 =
new ContinuousUniformSampler(rng1, low, high);
- final ContinuousUniformSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
+ final SharedStateContinuousSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
RandomAssert.assertProduceSameSequence(sampler1, sampler2);
}
}
diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/DiscreteUniformSamplerTest.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/DiscreteUniformSamplerTest.java
index 3a0a34c..9b76e7a 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/DiscreteUniformSamplerTest.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/DiscreteUniformSamplerTest.java
@@ -64,7 +64,7 @@ public class DiscreteUniformSamplerTest {
final UniformRandomProvider rng2 = RandomSource.create(RandomSource.SPLIT_MIX_64, 0L);
final DiscreteUniformSampler sampler1 =
new DiscreteUniformSampler(rng1, lower, upper);
- final DiscreteUniformSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
+ final SharedStateDiscreteSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
RandomAssert.assertProduceSameSequence(sampler1, sampler2);
}
}
diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/GaussianSamplerTest.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/GaussianSamplerTest.java
index f4afb63..28ca3c0 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/GaussianSamplerTest.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/GaussianSamplerTest.java
@@ -54,7 +54,7 @@ public class GaussianSamplerTest {
final double standardDeviation = 4.56;
final GaussianSampler sampler1 =
new GaussianSampler(gauss, mean, standardDeviation);
- final GaussianSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
+ final SharedStateContinuousSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
RandomAssert.assertProduceSameSequence(sampler1, sampler2);
}
diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/GeometricSamplerTest.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/GeometricSamplerTest.java
index 66eaee4..f384485 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/GeometricSamplerTest.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/GeometricSamplerTest.java
@@ -140,7 +140,7 @@ public class GeometricSamplerTest {
final UniformRandomProvider rng2 = RandomSource.create(RandomSource.SPLIT_MIX_64, 0L);
final GeometricSampler sampler1 =
new GeometricSampler(rng1, probabilityOfSuccess);
- final GeometricSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
+ final SharedStateDiscreteSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
RandomAssert.assertProduceSameSequence(sampler1, sampler2);
}
}
diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/GuideTableDiscreteSamplerTest.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/GuideTableDiscreteSamplerTest.java
index ec89352..e38b3db 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/GuideTableDiscreteSamplerTest.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/GuideTableDiscreteSamplerTest.java
@@ -246,7 +246,7 @@ public class GuideTableDiscreteSamplerTest {
final double[] probabilities = {0.1, 0, 0.2, 0.3, 0.1, 0.3, 0};
final GuideTableDiscreteSampler sampler1 =
new GuideTableDiscreteSampler(rng1, probabilities);
- final GuideTableDiscreteSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
+ final SharedStateDiscreteSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
RandomAssert.assertProduceSameSequence(sampler1, sampler2);
}
}
diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/InverseTransformContinuousSamplerTest.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/InverseTransformContinuousSamplerTest.java
index 6ddbb07..99938cf 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/InverseTransformContinuousSamplerTest.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/InverseTransformContinuousSamplerTest.java
@@ -41,7 +41,7 @@ public class InverseTransformContinuousSamplerTest {
final UniformRandomProvider rng2 = RandomSource.create(RandomSource.SPLIT_MIX_64, 0L);
final InverseTransformContinuousSampler sampler1 =
new InverseTransformContinuousSampler(rng1, function);
- final InverseTransformContinuousSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
+ final SharedStateContinuousSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
RandomAssert.assertProduceSameSequence(sampler1, sampler2);
}
}
diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/InverseTransformDiscreteSamplerTest.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/InverseTransformDiscreteSamplerTest.java
index b9d3f89..778ffe5 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/InverseTransformDiscreteSamplerTest.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/InverseTransformDiscreteSamplerTest.java
@@ -41,7 +41,7 @@ public class InverseTransformDiscreteSamplerTest {
final UniformRandomProvider rng2 = RandomSource.create(RandomSource.SPLIT_MIX_64, 0L);
final InverseTransformDiscreteSampler sampler1 =
new InverseTransformDiscreteSampler(rng1, function);
- final InverseTransformDiscreteSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
+ final SharedStateDiscreteSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
RandomAssert.assertProduceSameSequence(sampler1, sampler2);
}
}
diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/InverseTransformParetoSamplerTest.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/InverseTransformParetoSamplerTest.java
index b4314c7..3837d1d 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/InverseTransformParetoSamplerTest.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/InverseTransformParetoSamplerTest.java
@@ -65,7 +65,7 @@ public class InverseTransformParetoSamplerTest {
final double shape = 4.56;
final InverseTransformParetoSampler sampler1 =
new InverseTransformParetoSampler(rng1, scale, shape);
- final InverseTransformParetoSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
+ final SharedStateContinuousSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
RandomAssert.assertProduceSameSequence(sampler1, sampler2);
}
}
diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/KempSmallMeanPoissonSamplerTest.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/KempSmallMeanPoissonSamplerTest.java
index 04b8e7e..2796ff0 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/KempSmallMeanPoissonSamplerTest.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/KempSmallMeanPoissonSamplerTest.java
@@ -156,7 +156,7 @@ public class KempSmallMeanPoissonSamplerTest {
final double mean = 1.23;
final KempSmallMeanPoissonSampler sampler1 =
new KempSmallMeanPoissonSampler(rng1, mean);
- final KempSmallMeanPoissonSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
+ final SharedStateDiscreteSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
RandomAssert.assertProduceSameSequence(sampler1, sampler2);
}
diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/LargeMeanPoissonSamplerTest.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/LargeMeanPoissonSamplerTest.java
index 89022d1..9a8c674 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/LargeMeanPoissonSamplerTest.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/LargeMeanPoissonSamplerTest.java
@@ -171,7 +171,7 @@ public class LargeMeanPoissonSamplerTest {
final UniformRandomProvider rng2 = RandomSource.create(RandomSource.SPLIT_MIX_64, 0L);
final LargeMeanPoissonSampler sampler1 =
new LargeMeanPoissonSampler(rng1, mean);
- final LargeMeanPoissonSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
+ final SharedStateDiscreteSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
RandomAssert.assertProduceSameSequence(sampler1, sampler2);
}
}
diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/LogNormalSamplerTest.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/LogNormalSamplerTest.java
index a8ec693..3da6447 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/LogNormalSamplerTest.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/LogNormalSamplerTest.java
@@ -69,7 +69,7 @@ public class LogNormalSamplerTest {
final double shape = 4.56;
final LogNormalSampler sampler1 =
new LogNormalSampler(gauss, scale, shape);
- final LogNormalSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
+ final SharedStateContinuousSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
RandomAssert.assertProduceSameSequence(sampler1, sampler2);
}
diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/MarsagliaNormalisedGaussianSamplerTest.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/MarsagliaNormalisedGaussianSamplerTest.java
index 89b7339..1155ce4 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/MarsagliaNormalisedGaussianSamplerTest.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/MarsagliaNormalisedGaussianSamplerTest.java
@@ -34,7 +34,7 @@ public class MarsagliaNormalisedGaussianSamplerTest {
final UniformRandomProvider rng2 = RandomSource.create(RandomSource.SPLIT_MIX_64, 0L);
final MarsagliaNormalizedGaussianSampler sampler1 =
new MarsagliaNormalizedGaussianSampler(rng1);
- final MarsagliaNormalizedGaussianSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
+ final SharedStateContinuousSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
RandomAssert.assertProduceSameSequence(sampler1, sampler2);
}
}
diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/MarsagliaTsangWangDiscreteSamplerTest.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/MarsagliaTsangWangDiscreteSamplerTest.java
index 37164f7..5f2dd87 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/MarsagliaTsangWangDiscreteSamplerTest.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/MarsagliaTsangWangDiscreteSamplerTest.java
@@ -612,7 +612,7 @@ public class MarsagliaTsangWangDiscreteSamplerTest {
double[] probabilities = createProbabilities(offset, prob);
final MarsagliaTsangWangDiscreteSampler sampler1 =
MarsagliaTsangWangDiscreteSampler.createDiscreteDistribution(rng1, probabilities);
- final MarsagliaTsangWangDiscreteSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
+ final SharedStateDiscreteSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
RandomAssert.assertProduceSameSequence(sampler1, sampler2);
}
@@ -645,7 +645,7 @@ public class MarsagliaTsangWangDiscreteSamplerTest {
final UniformRandomProvider rng2 = RandomSource.create(RandomSource.SPLIT_MIX_64, 0L);
final MarsagliaTsangWangDiscreteSampler sampler1 =
MarsagliaTsangWangDiscreteSampler.createBinomialDistribution(rng1, trials, probabilityOfSuccess);
- final MarsagliaTsangWangDiscreteSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
+ final SharedStateDiscreteSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
RandomAssert.assertProduceSameSequence(sampler1, sampler2);
}
diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/PoissonSamplerTest.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/PoissonSamplerTest.java
index 9899b61..362397d 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/PoissonSamplerTest.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/PoissonSamplerTest.java
@@ -52,7 +52,7 @@ public class PoissonSamplerTest {
final UniformRandomProvider rng2 = RandomSource.create(RandomSource.SPLIT_MIX_64, 0L);
final PoissonSampler sampler1 =
new PoissonSampler(rng1, mean);
- final PoissonSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
+ final SharedStateDiscreteSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
RandomAssert.assertProduceSameSequence(sampler1, sampler2);
}
}
diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/RejectionInversionZipfSamplerTest.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/RejectionInversionZipfSamplerTest.java
index d7e3654..15621da 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/RejectionInversionZipfSamplerTest.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/RejectionInversionZipfSamplerTest.java
@@ -65,7 +65,7 @@ public class RejectionInversionZipfSamplerTest {
final double exponent = 1.23;
final RejectionInversionZipfSampler sampler1 =
new RejectionInversionZipfSampler(rng1, numberOfElements, exponent);
- final RejectionInversionZipfSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
+ final SharedStateDiscreteSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
RandomAssert.assertProduceSameSequence(sampler1, sampler2);
}
}
diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/SmallMeanPoissonSamplerTest.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/SmallMeanPoissonSamplerTest.java
index 8d34fac..f21bf95 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/SmallMeanPoissonSamplerTest.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/SmallMeanPoissonSamplerTest.java
@@ -89,7 +89,7 @@ public class SmallMeanPoissonSamplerTest {
final double mean = 1.23;
final SmallMeanPoissonSampler sampler1 =
new SmallMeanPoissonSampler(rng1, mean);
- final SmallMeanPoissonSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
+ final SharedStateDiscreteSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
RandomAssert.assertProduceSameSequence(sampler1, sampler2);
}
}
diff --git a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/ZigguratNormalizedGaussianSamplerTest.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/ZigguratNormalizedGaussianSamplerTest.java
index d4a2e16..1772de4 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/ZigguratNormalizedGaussianSamplerTest.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/ZigguratNormalizedGaussianSamplerTest.java
@@ -57,7 +57,7 @@ public class ZigguratNormalizedGaussianSamplerTest {
final UniformRandomProvider rng2 = RandomSource.create(RandomSource.SPLIT_MIX_64, 0L);
final ZigguratNormalizedGaussianSampler sampler1 =
new ZigguratNormalizedGaussianSampler(rng1);
- final ZigguratNormalizedGaussianSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
+ final SharedStateContinuousSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
RandomAssert.assertProduceSameSequence(sampler1, sampler2);
}
}