Usage examples.

Code updated as a consequence of MATH-1383.


Project: http://git-wip-us.apache.org/repos/asf/commons-math/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-math/commit/a215c3f9
Tree: http://git-wip-us.apache.org/repos/asf/commons-math/tree/a215c3f9
Diff: http://git-wip-us.apache.org/repos/asf/commons-math/diff/a215c3f9

Branch: refs/heads/master
Commit: a215c3f91a5b4baf56e767a4e91b6511cf1544ac
Parents: 55cc560
Author: Gilles <er...@apache.org>
Authored: Sun Sep 4 12:39:00 2016 +0200
Committer: Gilles <er...@apache.org>
Committed: Sun Sep 4 12:39:00 2016 +0200

----------------------------------------------------------------------
 .../math4/userguide/ClusterAlgorithmComparison.java   |  5 +++--
 .../userguide/LowDiscrepancyGeneratorComparison.java  | 13 +++++++------
 .../math4/userguide/filter/CannonballExample.java     | 14 ++++++++------
 .../userguide/filter/ConstantVoltageExample.java      | 14 ++++++++------
 .../commons/math4/userguide/genetics/Polygon.java     |  6 ++++--
 .../math4/userguide/geometry/GeometryExample.java     |  7 ++++---
 .../commons/math4/userguide/sofm/ChineseRings.java    |  5 +++--
 .../math4/userguide/sofm/ChineseRingsClassifier.java  |  8 +++++---
 src/userguide/pom.xml                                 |  5 +++++
 9 files changed, 47 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-math/blob/a215c3f9/src/userguide/java/org/apache/commons/math4/userguide/ClusterAlgorithmComparison.java
----------------------------------------------------------------------
diff --git 
a/src/userguide/java/org/apache/commons/math4/userguide/ClusterAlgorithmComparison.java
 
b/src/userguide/java/org/apache/commons/math4/userguide/ClusterAlgorithmComparison.java
index 9dbd1c2..05d86da 100644
--- 
a/src/userguide/java/org/apache/commons/math4/userguide/ClusterAlgorithmComparison.java
+++ 
b/src/userguide/java/org/apache/commons/math4/userguide/ClusterAlgorithmComparison.java
@@ -34,6 +34,9 @@ import java.util.List;
 import javax.swing.JComponent;
 import javax.swing.JLabel;
 
+import org.apache.commons.rng.UniformRandomProvider;
+import org.apache.commons.rng.RandomSource;
+
 import org.apache.commons.math4.distribution.RealDistribution;
 import org.apache.commons.math4.distribution.UniformRealDistribution;
 import org.apache.commons.math4.distribution.NormalDistribution;
@@ -48,8 +51,6 @@ import 
org.apache.commons.math4.ml.clustering.FuzzyKMeansClusterer;
 import org.apache.commons.math4.ml.clustering.KMeansPlusPlusClusterer;
 import org.apache.commons.math4.random.JDKRandomAdaptor;
 import org.apache.commons.math4.random.SobolSequenceGenerator;
-import org.apache.commons.math4.rng.UniformRandomProvider;
-import org.apache.commons.math4.rng.RandomSource;
 import org.apache.commons.math4.util.FastMath;
 import org.apache.commons.math4.util.Pair;
 import org.apache.commons.math4.userguide.ExampleUtils.ExampleFrame;

http://git-wip-us.apache.org/repos/asf/commons-math/blob/a215c3f9/src/userguide/java/org/apache/commons/math4/userguide/LowDiscrepancyGeneratorComparison.java
----------------------------------------------------------------------
diff --git 
a/src/userguide/java/org/apache/commons/math4/userguide/LowDiscrepancyGeneratorComparison.java
 
b/src/userguide/java/org/apache/commons/math4/userguide/LowDiscrepancyGeneratorComparison.java
index 39b0b32..f1b81d5 100644
--- 
a/src/userguide/java/org/apache/commons/math4/userguide/LowDiscrepancyGeneratorComparison.java
+++ 
b/src/userguide/java/org/apache/commons/math4/userguide/LowDiscrepancyGeneratorComparison.java
@@ -32,10 +32,11 @@ import javax.swing.JComponent;
 import javax.swing.JLabel;
 import javax.swing.JTextArea;
 
+import org.apache.commons.rng.UniformRandomProvider;
+import org.apache.commons.rng.RandomSource;
+
 import org.apache.commons.math4.geometry.euclidean.twod.Vector2D;
 import org.apache.commons.math4.random.HaltonSequenceGenerator;
-import org.apache.commons.math4.random.JDKRandomGenerator;
-import org.apache.commons.math4.random.MersenneTwister;
 import org.apache.commons.math4.random.RandomGenerator;
 import org.apache.commons.math4.random.RandomVectorGenerator;
 import org.apache.commons.math4.random.SobolSequenceGenerator;
@@ -130,12 +131,12 @@ public class LowDiscrepancyGeneratorComparison {
             List<Pair<String, RandomVectorGenerator>> generators = new 
ArrayList<Pair<String, RandomVectorGenerator>>();
 
             generators.add(new Pair<String, 
RandomVectorGenerator>("Uncorrelated\nUniform(JDK)",
-                    new UncorrelatedRandomVectorGenerator(2, new 
UniformRandomGenerator(new JDKRandomGenerator()))));
+                                                                   new 
UncorrelatedRandomVectorGenerator(2, new 
UniformRandomGenerator(RandomSource.create(RandomSource.JDK)))));
             generators.add(new Pair<String, 
RandomVectorGenerator>("Independent\nRandom(MT)", new RandomVectorGenerator() {
 
-                RandomGenerator[] rngs = new RandomGenerator[] {
-                    new MersenneTwister(0),
-                    new MersenneTwister(1)
+                final UniformRandomProvider[] rngs = new 
UniformRandomProvider[] {
+                    RandomSource.create(RandomSource.MT, 123456789),
+                    RandomSource.create(RandomSource.MT, 987654321)
                 };
                 
                 public double[] nextVector() {

http://git-wip-us.apache.org/repos/asf/commons-math/blob/a215c3f9/src/userguide/java/org/apache/commons/math4/userguide/filter/CannonballExample.java
----------------------------------------------------------------------
diff --git 
a/src/userguide/java/org/apache/commons/math4/userguide/filter/CannonballExample.java
 
b/src/userguide/java/org/apache/commons/math4/userguide/filter/CannonballExample.java
index 7211a6b..b26a489 100644
--- 
a/src/userguide/java/org/apache/commons/math4/userguide/filter/CannonballExample.java
+++ 
b/src/userguide/java/org/apache/commons/math4/userguide/filter/CannonballExample.java
@@ -25,6 +25,9 @@ import javax.swing.BoxLayout;
 import javax.swing.JComponent;
 import javax.swing.JPanel;
 
+import org.apache.commons.rng.UniformRandomProvider;
+import org.apache.commons.rng.RandomSource;
+
 import org.apache.commons.math4.filter.DefaultMeasurementModel;
 import org.apache.commons.math4.filter.DefaultProcessModel;
 import org.apache.commons.math4.filter.KalmanFilter;
@@ -33,8 +36,7 @@ import org.apache.commons.math4.filter.ProcessModel;
 import org.apache.commons.math4.linear.MatrixUtils;
 import org.apache.commons.math4.linear.RealMatrix;
 import org.apache.commons.math4.linear.RealVector;
-import org.apache.commons.math4.random.RandomGenerator;
-import org.apache.commons.math4.random.Well19937c;
+import org.apache.commons.math4.random.GaussianRandomGenerator;
 import org.apache.commons.math4.util.FastMath;
 import org.apache.commons.math4.userguide.ExampleUtils;
 import org.apache.commons.math4.userguide.ExampleUtils.ExampleFrame;
@@ -59,7 +61,7 @@ public class CannonballExample {
         private final double timeslice;
         private final double measurementNoise;
         
-        private final RandomGenerator rng;
+        private final GaussianRandomGenerator rng;
         
         public Cannonball(double timeslice, double angle, double 
initialVelocity, double measurementNoise, int seed) {
             this.timeslice = timeslice;
@@ -73,7 +75,7 @@ public class CannonballExample {
             this.location = new double[] { 0, 0 };
             
             this.measurementNoise = measurementNoise;
-            this.rng = new Well19937c(seed);
+            this.rng = new 
GaussianRandomGenerator(RandomSource.create(RandomSource.WELL_19937_C, seed));
         }
         
         public double getX() {
@@ -85,11 +87,11 @@ public class CannonballExample {
         }
 
         public double getMeasuredX() {
-            return location[0] + rng.nextGaussian() * measurementNoise;
+            return location[0] + rng.nextNormalizedDouble() * measurementNoise;
         }
 
         public double getMeasuredY() {
-            return location[1] + rng.nextGaussian() * measurementNoise;
+            return location[1] + rng.nextNormalizedDouble() * measurementNoise;
         }
 
         public double getXVelocity() {

http://git-wip-us.apache.org/repos/asf/commons-math/blob/a215c3f9/src/userguide/java/org/apache/commons/math4/userguide/filter/ConstantVoltageExample.java
----------------------------------------------------------------------
diff --git 
a/src/userguide/java/org/apache/commons/math4/userguide/filter/ConstantVoltageExample.java
 
b/src/userguide/java/org/apache/commons/math4/userguide/filter/ConstantVoltageExample.java
index bf554d5..2dc414f 100644
--- 
a/src/userguide/java/org/apache/commons/math4/userguide/filter/ConstantVoltageExample.java
+++ 
b/src/userguide/java/org/apache/commons/math4/userguide/filter/ConstantVoltageExample.java
@@ -25,6 +25,9 @@ import javax.swing.BoxLayout;
 import javax.swing.JComponent;
 import javax.swing.JPanel;
 
+import org.apache.commons.rng.UniformRandomProvider;
+import org.apache.commons.rng.RandomSource;
+
 import org.apache.commons.math4.filter.DefaultMeasurementModel;
 import org.apache.commons.math4.filter.DefaultProcessModel;
 import org.apache.commons.math4.filter.KalmanFilter;
@@ -34,8 +37,7 @@ import org.apache.commons.math4.linear.Array2DRowRealMatrix;
 import org.apache.commons.math4.linear.ArrayRealVector;
 import org.apache.commons.math4.linear.RealMatrix;
 import org.apache.commons.math4.linear.RealVector;
-import org.apache.commons.math4.random.RandomGenerator;
-import org.apache.commons.math4.random.Well19937c;
+import org.apache.commons.math4.random.GaussianRandomGenerator;
 import org.apache.commons.math4.userguide.ExampleUtils;
 import org.apache.commons.math4.userguide.ExampleUtils.ExampleFrame;
 
@@ -55,7 +57,7 @@ public class ConstantVoltageExample {
         private final double initialVoltage;
         private final double processNoise;
         private final double measurementNoise;
-        private final RandomGenerator rng;
+        private final GaussianRandomGenerator rng;
 
         private double voltage;
 
@@ -64,7 +66,7 @@ public class ConstantVoltageExample {
             this.voltage = voltage;
             this.processNoise = processNoise;
             this.measurementNoise = measurementNoise;
-            rng = new Well19937c(seed);
+            rng = new 
GaussianRandomGenerator(RandomSource.create(RandomSource.WELL_19937_C, seed));
         }
         
         /**
@@ -77,12 +79,12 @@ public class ConstantVoltageExample {
         }
         
         public double getMeasuredVoltage() {
-            return getVoltage() + rng.nextGaussian() * measurementNoise; 
+            return getVoltage() + rng.nextNormalizedDouble() * 
measurementNoise; 
         }
         
         public void step() {
             // we apply only the process noise
-            voltage = initialVoltage + rng.nextGaussian() * processNoise;
+            voltage = initialVoltage + rng.nextNormalizedDouble() * 
processNoise;
         }
     }
 

http://git-wip-us.apache.org/repos/asf/commons-math/blob/a215c3f9/src/userguide/java/org/apache/commons/math4/userguide/genetics/Polygon.java
----------------------------------------------------------------------
diff --git 
a/src/userguide/java/org/apache/commons/math4/userguide/genetics/Polygon.java 
b/src/userguide/java/org/apache/commons/math4/userguide/genetics/Polygon.java
index b6ad577..c9cf278 100644
--- 
a/src/userguide/java/org/apache/commons/math4/userguide/genetics/Polygon.java
+++ 
b/src/userguide/java/org/apache/commons/math4/userguide/genetics/Polygon.java
@@ -20,8 +20,10 @@ import java.awt.Color;
 import java.awt.Graphics2D;
 import java.awt.geom.GeneralPath;
 
+import org.apache.commons.rng.UniformRandomProvider;
+import org.apache.commons.rng.RandomSource;
+
 import org.apache.commons.math4.genetics.GeneticAlgorithm;
-import org.apache.commons.math4.random.RandomGenerator;
 import org.apache.commons.math4.util.FastMath;
 
 /**
@@ -50,7 +52,7 @@ public class Polygon {
     public static Polygon randomPolygon(int length) {
         final int polygonSize = 4 + 2 * length;
 
-        final RandomGenerator random = GeneticAlgorithm.getRandomGenerator();
+        final UniformRandomProvider random = 
GeneticAlgorithm.getRandomGenerator();
         
         Polygon p = new Polygon();
         p.data = new float[polygonSize];

http://git-wip-us.apache.org/repos/asf/commons-math/blob/a215c3f9/src/userguide/java/org/apache/commons/math4/userguide/geometry/GeometryExample.java
----------------------------------------------------------------------
diff --git 
a/src/userguide/java/org/apache/commons/math4/userguide/geometry/GeometryExample.java
 
b/src/userguide/java/org/apache/commons/math4/userguide/geometry/GeometryExample.java
index 941243b..c0aa91c 100644
--- 
a/src/userguide/java/org/apache/commons/math4/userguide/geometry/GeometryExample.java
+++ 
b/src/userguide/java/org/apache/commons/math4/userguide/geometry/GeometryExample.java
@@ -31,6 +31,9 @@ import javax.swing.JComponent;
 import javax.swing.JPanel;
 import javax.swing.JSplitPane;
 
+import org.apache.commons.rng.UniformRandomProvider;
+import org.apache.commons.rng.RandomSource;
+
 import org.apache.commons.math4.geometry.enclosing.Encloser;
 import org.apache.commons.math4.geometry.enclosing.EnclosingBall;
 import org.apache.commons.math4.geometry.enclosing.WelzlEncloser;
@@ -41,8 +44,6 @@ import 
org.apache.commons.math4.geometry.euclidean.twod.Vector2D;
 import org.apache.commons.math4.geometry.euclidean.twod.hull.ConvexHull2D;
 import 
org.apache.commons.math4.geometry.euclidean.twod.hull.ConvexHullGenerator2D;
 import org.apache.commons.math4.geometry.euclidean.twod.hull.MonotoneChain;
-import org.apache.commons.math4.random.MersenneTwister;
-import org.apache.commons.math4.random.RandomGenerator;
 import org.apache.commons.math4.util.FastMath;
 import org.apache.commons.math4.userguide.ExampleUtils;
 import org.apache.commons.math4.userguide.ExampleUtils.ExampleFrame;
@@ -65,7 +66,7 @@ import org.piccolo2d.nodes.PText;
 public class GeometryExample {
 
     public static List<Vector2D> createRandomPoints(int size) {
-        RandomGenerator random = new MersenneTwister();
+        final UniformRandomProvider random = 
RandomSource.create(RandomSource.MT);
 
         // create the cloud container
         List<Vector2D> points = new ArrayList<Vector2D>(size);

http://git-wip-us.apache.org/repos/asf/commons-math/blob/a215c3f9/src/userguide/java/org/apache/commons/math4/userguide/sofm/ChineseRings.java
----------------------------------------------------------------------
diff --git 
a/src/userguide/java/org/apache/commons/math4/userguide/sofm/ChineseRings.java 
b/src/userguide/java/org/apache/commons/math4/userguide/sofm/ChineseRings.java
index 2c942a9..f906ac5 100644
--- 
a/src/userguide/java/org/apache/commons/math4/userguide/sofm/ChineseRings.java
+++ 
b/src/userguide/java/org/apache/commons/math4/userguide/sofm/ChineseRings.java
@@ -17,11 +17,12 @@
 
 package org.apache.commons.math4.userguide.sofm;
 
+import org.apache.commons.rng.UniformRandomProvider;
+import org.apache.commons.rng.RandomSource;
+
 import org.apache.commons.math4.geometry.euclidean.threed.Vector3D;
 import org.apache.commons.math4.geometry.euclidean.threed.Rotation;
 import org.apache.commons.math4.random.UnitSphereRandomVectorGenerator;
-import org.apache.commons.math4.rng.UniformRandomProvider;
-import org.apache.commons.math4.rng.RandomSource;
 import org.apache.commons.math4.distribution.RealDistribution;
 import org.apache.commons.math4.distribution.UniformRealDistribution;
 

http://git-wip-us.apache.org/repos/asf/commons-math/blob/a215c3f9/src/userguide/java/org/apache/commons/math4/userguide/sofm/ChineseRingsClassifier.java
----------------------------------------------------------------------
diff --git 
a/src/userguide/java/org/apache/commons/math4/userguide/sofm/ChineseRingsClassifier.java
 
b/src/userguide/java/org/apache/commons/math4/userguide/sofm/ChineseRingsClassifier.java
index 6dbd36c..7eef617 100644
--- 
a/src/userguide/java/org/apache/commons/math4/userguide/sofm/ChineseRingsClassifier.java
+++ 
b/src/userguide/java/org/apache/commons/math4/userguide/sofm/ChineseRingsClassifier.java
@@ -20,6 +20,10 @@ package org.apache.commons.math4.userguide.sofm;
 import java.util.Iterator;
 import java.io.PrintWriter;
 import java.io.IOException;
+
+import org.apache.commons.rng.UniformRandomProvider;
+import org.apache.commons.rng.RandomSource;
+
 import org.apache.commons.math4.ml.neuralnet.SquareNeighbourhood;
 import org.apache.commons.math4.ml.neuralnet.FeatureInitializer;
 import org.apache.commons.math4.ml.neuralnet.FeatureInitializerFactory;
@@ -33,8 +37,6 @@ import 
org.apache.commons.math4.ml.neuralnet.sofm.KohonenUpdateAction;
 import org.apache.commons.math4.ml.neuralnet.sofm.KohonenTrainingTask;
 import org.apache.commons.math4.ml.distance.DistanceMeasure;
 import org.apache.commons.math4.ml.distance.EuclideanDistance;
-import org.apache.commons.math4.random.RandomGenerator;
-import org.apache.commons.math4.random.Well19937c;
 import org.apache.commons.math4.stat.descriptive.SummaryStatistics;
 import org.apache.commons.math4.geometry.euclidean.threed.Vector3D;
 import org.apache.commons.math4.util.FastMath;
@@ -253,7 +255,7 @@ public class ChineseRingsClassifier {
             /** Data. */
             final Vector3D[] points = rings.getPoints();
             /** RNG. */
-            final RandomGenerator rng = new Well19937c();
+            final UniformRandomProvider rng = 
RandomSource.create(RandomSource.KISS);
             /** Number of samples. */
             private long n = 0;
 

http://git-wip-us.apache.org/repos/asf/commons-math/blob/a215c3f9/src/userguide/pom.xml
----------------------------------------------------------------------
diff --git a/src/userguide/pom.xml b/src/userguide/pom.xml
index 4f3c888..dfcb010 100644
--- a/src/userguide/pom.xml
+++ b/src/userguide/pom.xml
@@ -111,5 +111,10 @@
           <artifactId>commons-lang3</artifactId>
           <version>3.1</version>
       </dependency>
+      <dependency>
+          <groupId>org.apache.commons</groupId>
+          <artifactId>commons-rng</artifactId>
+          <version>1.0-SNAPSHOT</version>
+      </dependency>
   </dependencies>
 </project>

Reply via email to