You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by er...@apache.org on 2016/05/17 15:49:35 UTC
[02/25] [math] MATH-1335
MATH-1335
Use new RNG API.
Project: http://git-wip-us.apache.org/repos/asf/commons-math/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-math/commit/0caba084
Tree: http://git-wip-us.apache.org/repos/asf/commons-math/tree/0caba084
Diff: http://git-wip-us.apache.org/repos/asf/commons-math/diff/0caba084
Branch: refs/heads/develop
Commit: 0caba0845d4363025e619eb3db6f3138b2c3d394
Parents: 1b5aef8
Author: Gilles <er...@apache.org>
Authored: Thu May 12 16:43:09 2016 +0200
Committer: Gilles <er...@apache.org>
Committed: Tue May 17 15:30:23 2016 +0200
----------------------------------------------------------------------
.../math4/random/UniformRandomGenerator.java | 36 +++++++++++---------
.../random/UniformRandomGeneratorTest.java | 8 ++---
2 files changed, 22 insertions(+), 22 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/commons-math/blob/0caba084/src/main/java/org/apache/commons/math4/random/UniformRandomGenerator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/math4/random/UniformRandomGenerator.java b/src/main/java/org/apache/commons/math4/random/UniformRandomGenerator.java
index aac8295..1a07ba4 100644
--- a/src/main/java/org/apache/commons/math4/random/UniformRandomGenerator.java
+++ b/src/main/java/org/apache/commons/math4/random/UniformRandomGenerator.java
@@ -18,39 +18,41 @@
package org.apache.commons.math4.random;
import org.apache.commons.math4.util.FastMath;
+import org.apache.commons.math4.rng.UniformRandomProvider;
/**
* This class implements a normalized uniform random generator.
- * <p>Since it is a normalized random generator, it generates values
- * from a uniform distribution with mean equal to 0 and standard
- * deviation equal to 1. Generated values fall in the range
- * [-√3, +√3].</p>
+ *
+ * <p>
+ * It generates values from a uniform distribution with mean
+ * equal to 0 and standard deviation equal to 1.
+ * Generated values fall in the range \( [-\sqrt{3}, +\sqrt{3}] \).
+ * </p>
*
* @since 1.2
*/
public class UniformRandomGenerator implements NormalizedRandomGenerator {
-
/** Square root of three. */
- private static final double SQRT3 = FastMath.sqrt(3.0);
-
+ private static final double SQRT3 = FastMath.sqrt(3);
/** Underlying generator. */
- private final RandomGenerator generator;
+ private final UniformRandomProvider generator;
- /** Create a new generator.
- * @param generator underlying random generator to use
+ /**
+ * Creates a new generator.
+ *
+ * @param generator Underlying random generator.
*/
- public UniformRandomGenerator(RandomGenerator generator) {
+ public UniformRandomGenerator(UniformRandomProvider generator) {
this.generator = generator;
}
- /** Generate a random scalar with null mean and unit standard deviation.
- * <p>The number generated is uniformly distributed between -&sqrt;(3)
- * and +&sqrt;(3).</p>
- * @return a random scalar with null mean and unit standard deviation
+ /**
+ * Generates a random scalar with zero mean and unit standard deviation.
+ *
+ * @return a random scalar in the range \( [-\sqrt{3}, +\sqrt{3}] \).
*/
@Override
public double nextNormalizedDouble() {
- return SQRT3 * (2 * generator.nextDouble() - 1.0);
+ return SQRT3 * (2 * generator.nextDouble() - 1);
}
-
}
http://git-wip-us.apache.org/repos/asf/commons-math/blob/0caba084/src/test/java/org/apache/commons/math4/random/UniformRandomGeneratorTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math4/random/UniformRandomGeneratorTest.java b/src/test/java/org/apache/commons/math4/random/UniformRandomGeneratorTest.java
index fbe9271..68b133e 100644
--- a/src/test/java/org/apache/commons/math4/random/UniformRandomGeneratorTest.java
+++ b/src/test/java/org/apache/commons/math4/random/UniformRandomGeneratorTest.java
@@ -18,8 +18,8 @@
package org.apache.commons.math4.random;
import org.apache.commons.math4.random.JDKRandomGenerator;
-import org.apache.commons.math4.random.RandomGenerator;
-import org.apache.commons.math4.random.UniformRandomGenerator;
+import org.apache.commons.math4.rng.UniformRandomProvider;
+import org.apache.commons.math4.rng.RandomSource;
import org.apache.commons.math4.stat.StatUtils;
import org.junit.Assert;
import org.junit.Test;
@@ -29,8 +29,7 @@ public class UniformRandomGeneratorTest {
@Test
public void testMeanAndStandardDeviation() {
- RandomGenerator rg = new JDKRandomGenerator();
- rg.setSeed(17399225432l);
+ final UniformRandomProvider rg = RandomSource.create(RandomSource.ISAAC, 17399225432L);
UniformRandomGenerator generator = new UniformRandomGenerator(rg);
double[] sample = new double[10000];
for (int i = 0; i < sample.length; ++i) {
@@ -39,5 +38,4 @@ public class UniformRandomGeneratorTest {
Assert.assertEquals(0.0, StatUtils.mean(sample), 0.07);
Assert.assertEquals(1.0, StatUtils.variance(sample), 0.02);
}
-
}