package org.spaceroots.mantissa.random;
/** This class is a gaussian normalized random generator
* for scalars.
* This class is a simple interface adaptor around the {@link
* MersenneTwister MersenneTwister} generator, which calls its {@link
* java.util.Random#nextGaussian nextGaussian} method.
* @see MersenneTwister
* @version $Id: GaussianRandomGenerator.java 1709 2006-12-03 21:16:50Z luc $
* @author L. Maisonobe
*/
public class GaussianRandomGenerator
implements NormalizedRandomGenerator {
/** Create a new generator.
* The seed of the generator is related to the current time.
*/
public GaussianRandomGenerator() {
generator = new MersenneTwister();
}
/** Creates a new random number generator using a single int seed.
* @param seed the initial seed (32 bits integer)
*/
public GaussianRandomGenerator(int seed) {
generator = new MersenneTwister(seed);
}
/** Creates a new random number generator using an int array seed.
* @param seed the initial seed (32 bits integers array), if null
* the seed of the generator will be related to the current time
*/
public GaussianRandomGenerator(int[] seed) {
generator = new MersenneTwister(seed);
}
/** Create a new generator initialized with a single long seed.
* @param seed seed for the generator (64 bits integer)
*/
public GaussianRandomGenerator(long seed) {
generator = new MersenneTwister(seed);
}
/** Generate a random scalar with null mean and unit standard deviation.
* @return a random scalar with null mean and unit standard deviation
*/
public double nextDouble() {
return generator.nextGaussian();
}
/** Underlying generator. */
MersenneTwister generator;
private static final long serialVersionUID = 5504568059866195697L;
}
Ads help maintain this website.