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 <aherb...@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); }