You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ch...@apache.org on 2016/09/20 18:20:23 UTC
[38/57] [abbrv] [math] Usage examples.
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>