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 23:40:24 UTC
[commons-rng] 06/07: Use constructor for NormalisedGaussianSamplers.
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 3189b3b5a6a6b577e076756910e22169f8a25d51
Author: Alex Herbert <ah...@apache.org>
AuthorDate: Thu Aug 1 00:39:55 2019 +0100
Use constructor for NormalisedGaussianSamplers.
This is a workaround for a JDK 1.6 bug where generic type inference
fails for type variable return constraint.
See: https://bugs.java.com/bugdatabase/view_bug.do?bug_id=6302954
---
.../org/apache/commons/rng/sampling/UnitSphereSampler.java | 4 ++--
.../distribution/AhrensDieterMarsagliaTsangGammaSampler.java | 4 ++--
.../rng/sampling/distribution/BoxMullerLogNormalSampler.java | 2 +-
.../rng/sampling/distribution/LargeMeanPoissonSampler.java | 4 ++--
.../distribution/BoxMullerNormalisedGaussianSamplerTest.java | 2 +-
.../rng/sampling/distribution/ContinuousSamplersList.java | 12 ++++++------
.../rng/sampling/distribution/GaussianSamplerTest.java | 4 ++--
.../rng/sampling/distribution/LogNormalSamplerTest.java | 6 +++---
.../distribution/MarsagliaNormalisedGaussianSamplerTest.java | 2 +-
.../distribution/ZigguratNormalizedGaussianSamplerTest.java | 4 ++--
10 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/UnitSphereSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/UnitSphereSampler.java
index 10c1702..67cecd1 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/UnitSphereSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/UnitSphereSampler.java
@@ -53,7 +53,7 @@ public class UnitSphereSampler implements SharedStateSampler<UnitSphereSampler>
}
this.dimension = dimension;
- sampler = ZigguratNormalizedGaussianSampler.of(rng);
+ sampler = new ZigguratNormalizedGaussianSampler(rng);
}
/**
@@ -63,7 +63,7 @@ public class UnitSphereSampler implements SharedStateSampler<UnitSphereSampler>
private UnitSphereSampler(UniformRandomProvider rng,
UnitSphereSampler source) {
// The Gaussian sampler has no shared state so create a new instance
- sampler = ZigguratNormalizedGaussianSampler.of(rng);
+ sampler = new ZigguratNormalizedGaussianSampler(rng);
dimension = source.dimension;
}
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 dc565f0..b5f55d1 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
@@ -219,7 +219,7 @@ public class AhrensDieterMarsagliaTsangGammaSampler
double alpha,
double theta) {
super(rng, alpha, theta);
- gaussian = ZigguratNormalizedGaussianSampler.of(rng);
+ gaussian = new ZigguratNormalizedGaussianSampler(rng);
dOptim = alpha - ONE_THIRD;
cOptim = ONE_THIRD / Math.sqrt(dOptim);
}
@@ -231,7 +231,7 @@ public class AhrensDieterMarsagliaTsangGammaSampler
MarsagliaTsangGammaSampler(UniformRandomProvider rng,
MarsagliaTsangGammaSampler source) {
super(rng, source);
- gaussian = ZigguratNormalizedGaussianSampler.of(rng);
+ gaussian = new ZigguratNormalizedGaussianSampler(rng);
dOptim = source.dOptim;
cOptim = source.cOptim;
}
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/BoxMullerLogNormalSampler.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/BoxMullerLogNormalSampler.java
index dae2155..eadf5f3 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/BoxMullerLogNormalSampler.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/BoxMullerLogNormalSampler.java
@@ -46,7 +46,7 @@ public class BoxMullerLogNormalSampler
double scale,
double shape) {
super(null);
- sampler = LogNormalSampler.of(BoxMullerNormalizedGaussianSampler.of(rng),
+ sampler = LogNormalSampler.of(new BoxMullerNormalizedGaussianSampler(rng),
scale, shape);
}
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 72b3da5..a8e4e54 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
@@ -132,7 +132,7 @@ public class LargeMeanPoissonSampler
}
this.rng = rng;
- gaussian = ZigguratNormalizedGaussianSampler.of(rng);
+ gaussian = new ZigguratNormalizedGaussianSampler(rng);
exponential = AhrensDieterExponentialSampler.of(rng, 1);
// Plain constructor uses the uncached function.
factorialLog = NO_CACHE_FACTORIAL_LOG;
@@ -177,7 +177,7 @@ public class LargeMeanPoissonSampler
}
this.rng = rng;
- gaussian = ZigguratNormalizedGaussianSampler.of(rng);
+ gaussian = new ZigguratNormalizedGaussianSampler(rng);
exponential = AhrensDieterExponentialSampler.of(rng, 1);
// Plain constructor uses the uncached function.
factorialLog = NO_CACHE_FACTORIAL_LOG;
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 e928bec..5cce442 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
@@ -33,7 +33,7 @@ public class BoxMullerNormalisedGaussianSamplerTest {
final UniformRandomProvider rng1 = RandomSource.create(RandomSource.SPLIT_MIX_64, 0L);
final UniformRandomProvider rng2 = RandomSource.create(RandomSource.SPLIT_MIX_64, 0L);
final SharedStateContinuousSampler sampler1 =
- BoxMullerNormalizedGaussianSampler.of(rng1);
+ BoxMullerNormalizedGaussianSampler.<BoxMullerNormalizedGaussianSampler>of(rng1);
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/ContinuousSamplersList.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/ContinuousSamplersList.java
index f4ff9ae..36d57ad 100644
--- a/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/ContinuousSamplersList.java
+++ b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/ContinuousSamplersList.java
@@ -52,15 +52,15 @@ public final class ContinuousSamplersList {
new BoxMullerGaussianSampler(RandomSource.create(RandomSource.MT), meanNormal, sigmaNormal));
// Gaussian ("Box-Muller").
add(LIST, new org.apache.commons.math3.distribution.NormalDistribution(unusedRng, meanNormal, sigmaNormal),
- GaussianSampler.of(BoxMullerNormalizedGaussianSampler.of(RandomSource.create(RandomSource.MT)),
+ GaussianSampler.of(new BoxMullerNormalizedGaussianSampler(RandomSource.create(RandomSource.MT)),
meanNormal, sigmaNormal));
// Gaussian ("Marsaglia").
add(LIST, new org.apache.commons.math3.distribution.NormalDistribution(unusedRng, meanNormal, sigmaNormal),
- GaussianSampler.of(MarsagliaNormalizedGaussianSampler.of(RandomSource.create(RandomSource.MT)),
+ GaussianSampler.of(new MarsagliaNormalizedGaussianSampler(RandomSource.create(RandomSource.MT)),
meanNormal, sigmaNormal));
// Gaussian ("Ziggurat").
add(LIST, new org.apache.commons.math3.distribution.NormalDistribution(unusedRng, meanNormal, sigmaNormal),
- GaussianSampler.of(ZigguratNormalizedGaussianSampler.of(RandomSource.create(RandomSource.MT)),
+ GaussianSampler.of(new ZigguratNormalizedGaussianSampler(RandomSource.create(RandomSource.MT)),
meanNormal, sigmaNormal));
// Beta ("inverse method").
@@ -149,15 +149,15 @@ public final class ContinuousSamplersList {
new BoxMullerLogNormalSampler(RandomSource.create(RandomSource.XOR_SHIFT_1024_S), scaleLogNormal, shapeLogNormal));
// Log-normal ("Box-Muller").
add(LIST, new org.apache.commons.math3.distribution.LogNormalDistribution(unusedRng, scaleLogNormal, shapeLogNormal),
- LogNormalSampler.of(BoxMullerNormalizedGaussianSampler.of(RandomSource.create(RandomSource.XOR_SHIFT_1024_S)),
+ LogNormalSampler.of(new BoxMullerNormalizedGaussianSampler(RandomSource.create(RandomSource.XOR_SHIFT_1024_S)),
scaleLogNormal, shapeLogNormal));
// Log-normal ("Marsaglia").
add(LIST, new org.apache.commons.math3.distribution.LogNormalDistribution(unusedRng, scaleLogNormal, shapeLogNormal),
- LogNormalSampler.of(MarsagliaNormalizedGaussianSampler.of(RandomSource.create(RandomSource.MT_64)),
+ LogNormalSampler.of(new MarsagliaNormalizedGaussianSampler(RandomSource.create(RandomSource.MT_64)),
scaleLogNormal, shapeLogNormal));
// Log-normal ("Ziggurat").
add(LIST, new org.apache.commons.math3.distribution.LogNormalDistribution(unusedRng, scaleLogNormal, shapeLogNormal),
- LogNormalSampler.of(ZigguratNormalizedGaussianSampler.of(RandomSource.create(RandomSource.MWC_256)),
+ LogNormalSampler.of(new ZigguratNormalizedGaussianSampler(RandomSource.create(RandomSource.MWC_256)),
scaleLogNormal, shapeLogNormal));
// Logistic ("inverse method").
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 cbf1606..1f5ba4a 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
@@ -34,7 +34,7 @@ public class GaussianSamplerTest {
public void testConstructorThrowsWithZeroStandardDeviation() {
final RestorableUniformRandomProvider rng =
RandomSource.create(RandomSource.SPLIT_MIX_64);
- final NormalizedGaussianSampler gauss = ZigguratNormalizedGaussianSampler.of(rng);
+ final NormalizedGaussianSampler gauss = new ZigguratNormalizedGaussianSampler(rng);
final double mean = 1;
final double standardDeviation = 0;
GaussianSampler.of(gauss, mean, standardDeviation);
@@ -47,7 +47,7 @@ public class GaussianSamplerTest {
public void testSharedStateSampler() {
final UniformRandomProvider rng1 = RandomSource.create(RandomSource.SPLIT_MIX_64, 0L);
final UniformRandomProvider rng2 = RandomSource.create(RandomSource.SPLIT_MIX_64, 0L);
- final NormalizedGaussianSampler gauss = ZigguratNormalizedGaussianSampler.of(rng1);
+ final NormalizedGaussianSampler gauss = new ZigguratNormalizedGaussianSampler(rng1);
final double mean = 1.23;
final double standardDeviation = 4.56;
final SharedStateContinuousSampler sampler1 =
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 4bc093d..271125d 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
@@ -34,7 +34,7 @@ public class LogNormalSamplerTest {
public void testConstructorThrowsWithNegativeScale() {
final RestorableUniformRandomProvider rng =
RandomSource.create(RandomSource.SPLIT_MIX_64);
- final NormalizedGaussianSampler gauss = ZigguratNormalizedGaussianSampler.of(rng);
+ final NormalizedGaussianSampler gauss = new ZigguratNormalizedGaussianSampler(rng);
final double scale = -1e-6;
final double shape = 1;
LogNormalSampler.of(gauss, scale, shape);
@@ -47,7 +47,7 @@ public class LogNormalSamplerTest {
public void testConstructorThrowsWithZeroShape() {
final RestorableUniformRandomProvider rng =
RandomSource.create(RandomSource.SPLIT_MIX_64);
- final NormalizedGaussianSampler gauss = ZigguratNormalizedGaussianSampler.of(rng);
+ final NormalizedGaussianSampler gauss = new ZigguratNormalizedGaussianSampler(rng);
final double scale = 1;
final double shape = 0;
LogNormalSampler.of(gauss, scale, shape);
@@ -60,7 +60,7 @@ public class LogNormalSamplerTest {
public void testSharedStateSampler() {
final UniformRandomProvider rng1 = RandomSource.create(RandomSource.SPLIT_MIX_64, 0L);
final UniformRandomProvider rng2 = RandomSource.create(RandomSource.SPLIT_MIX_64, 0L);
- final NormalizedGaussianSampler gauss = ZigguratNormalizedGaussianSampler.of(rng1);
+ final NormalizedGaussianSampler gauss = new ZigguratNormalizedGaussianSampler(rng1);
final double scale = 1.23;
final double shape = 4.56;
final SharedStateContinuousSampler sampler1 =
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 ae58bd0..0d1ab3f 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
@@ -33,7 +33,7 @@ public class MarsagliaNormalisedGaussianSamplerTest {
final UniformRandomProvider rng1 = RandomSource.create(RandomSource.SPLIT_MIX_64, 0L);
final UniformRandomProvider rng2 = RandomSource.create(RandomSource.SPLIT_MIX_64, 0L);
final SharedStateContinuousSampler sampler1 =
- MarsagliaNormalizedGaussianSampler.of(rng1);
+ MarsagliaNormalizedGaussianSampler.<MarsagliaNormalizedGaussianSampler>of(rng1);
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/ZigguratNormalizedGaussianSamplerTest.java b/commons-rng-sampling/src/test/java/org/apache/commons/rng/sampling/distribution/ZigguratNormalizedGaussianSamplerTest.java
index a223ebe..81a822d 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
@@ -45,7 +45,7 @@ public class ZigguratNormalizedGaussianSamplerTest {
};
// Infinite loop (in v1.1).
- ZigguratNormalizedGaussianSampler.of(bad).sample();
+ new ZigguratNormalizedGaussianSampler(bad).sample();
}
/**
@@ -56,7 +56,7 @@ public class ZigguratNormalizedGaussianSamplerTest {
final UniformRandomProvider rng1 = RandomSource.create(RandomSource.SPLIT_MIX_64, 0L);
final UniformRandomProvider rng2 = RandomSource.create(RandomSource.SPLIT_MIX_64, 0L);
final SharedStateContinuousSampler sampler1 =
- ZigguratNormalizedGaussianSampler.of(rng1);
+ ZigguratNormalizedGaussianSampler.<ZigguratNormalizedGaussianSampler>of(rng1);
final SharedStateContinuousSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
RandomAssert.assertProduceSameSequence(sampler1, sampler2);
}