Skip to content

Commit

Permalink
Usage examples.
Browse files Browse the repository at this point in the history
Code updated as a consequence of MATH-1383.
  • Loading branch information
Gilles committed Sep 4, 2016
1 parent 55cc560 commit a215c3f
Show file tree
Hide file tree
Showing 9 changed files with 47 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@
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;
Expand All @@ -48,8 +51,6 @@
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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,11 @@
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;
Expand Down Expand Up @@ -130,12 +131,12 @@ public Display() {
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() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@
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;
Expand All @@ -33,8 +36,7 @@
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;
Expand All @@ -59,7 +61,7 @@ public static class Cannonball {
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;
Expand All @@ -73,7 +75,7 @@ public Cannonball(double timeslice, double angle, double initialVelocity, double
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() {
Expand All @@ -85,11 +87,11 @@ public double getY() {
}

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() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@
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;
Expand All @@ -34,8 +37,7 @@
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;

Expand All @@ -55,7 +57,7 @@ public static class VoltMeter {
private final double initialVoltage;
private final double processNoise;
private final double measurementNoise;
private final RandomGenerator rng;
private final GaussianRandomGenerator rng;

private double voltage;

Expand All @@ -64,7 +66,7 @@ public VoltMeter(double voltage, double processNoise, double measurementNoise, i
this.voltage = voltage;
this.processNoise = processNoise;
this.measurementNoise = measurementNoise;
rng = new Well19937c(seed);
rng = new GaussianRandomGenerator(RandomSource.create(RandomSource.WELL_19937_C, seed));
}

/**
Expand All @@ -77,12 +79,12 @@ public double getVoltage() {
}

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;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,10 @@
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;

/**
Expand Down Expand Up @@ -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];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@
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;
Expand All @@ -41,8 +44,6 @@
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;
Expand All @@ -65,7 +66,7 @@
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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@
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;
Expand All @@ -33,8 +37,6 @@
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;
Expand Down Expand Up @@ -253,7 +255,7 @@ private Iterator<double[]> createRandomIterator(final long numSamples) {
/** 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;

Expand Down
5 changes: 5 additions & 0 deletions src/userguide/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -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>

0 comments on commit a215c3f

Please sign in to comment.