ImageScience 3.0.0

imagescience.random
Class GaussianGenerator

java.lang.Object
  extended by imagescience.random.GaussianGenerator
All Implemented Interfaces:
RandomGenerator

public class GaussianGenerator
extends java.lang.Object
implements RandomGenerator

Gaussian random number generator. This implementation is based on the Box-Muller transformation applied to uniform random numbers, the latter of which are obtained from class UniformGenerator. For more details, see for example W. H. Press, S. A. Teukolsky, W. T. Vetterling, B. P. Flannery, Numerical Recipes in C: The Art of Scientific Computing (2nd edition), Cambridge University Press, Cambridge, 1992, Section 7.2.


Constructor Summary
GaussianGenerator()
          Constructs a generator of random numbers from the Gaussian distribution with zero mean and unit standard deviation and initialized with a random seed.
GaussianGenerator(double mean, double stdev)
          Constructs a generator of random numbers from the Gaussian distribution with given mean and standard deviation stdev and initialized with a random seed.
GaussianGenerator(double mean, double stdev, int seed)
          Constructs a generator of random numbers from the Gaussian distribution with given mean and standard deviation stdev and initialized with the given seed.
GaussianGenerator(int seed)
          Constructs a generator of random numbers from the Gaussian distribution with zero mean and unit standard deviation and initialized with the given seed.
 
Method Summary
 double next()
          Returns a random number from the Gaussian distribution with mean and standard deviation specified at construction.
 double next(double mean, double stdev)
          Returns a random number from the Gaussian distribution with given mean and standard deviation stdev.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GaussianGenerator

public GaussianGenerator()
Constructs a generator of random numbers from the Gaussian distribution with zero mean and unit standard deviation and initialized with a random seed.


GaussianGenerator

public GaussianGenerator(int seed)
Constructs a generator of random numbers from the Gaussian distribution with zero mean and unit standard deviation and initialized with the given seed.

Parameters:
seed - The seed used for initialization of the generator.

GaussianGenerator

public GaussianGenerator(double mean,
                         double stdev)
Constructs a generator of random numbers from the Gaussian distribution with given mean and standard deviation stdev and initialized with a random seed.

Parameters:
mean - The mean of the distribution.
stdev - The standard deviation from the mean of the distribution. Must be larger than or equal to 0.
Throws:
java.lang.IllegalArgumentException - If stdev is less than 0.

GaussianGenerator

public GaussianGenerator(double mean,
                         double stdev,
                         int seed)
Constructs a generator of random numbers from the Gaussian distribution with given mean and standard deviation stdev and initialized with the given seed.

Parameters:
mean - The mean of the distribution.
stdev - The standard deviation from the mean of the distribution. Must be larger than or equal to 0.
seed - The seed used for initialization of the generator.
Throws:
java.lang.IllegalArgumentException - If stdev is less than 0.
Method Detail

next

public double next()
Returns a random number from the Gaussian distribution with mean and standard deviation specified at construction.

Specified by:
next in interface RandomGenerator
Returns:
A random number from the Gaussian distribution with mean and standard deviation specified at construction.

next

public double next(double mean,
                   double stdev)
Returns a random number from the Gaussian distribution with given mean and standard deviation stdev.

Returns:
A random number from the Gaussian distribution with given mean and standard deviation stdev.

ImageScience 3.0.0

Copyright (C) Erik Meijering. Permission to use this software and corresponding documentation for educational, research, and not-for-profit purposes, without a fee and without a signed licensing agreement, is granted, subject to the following terms and conditions.

IT IS NOT ALLOWED TO REDISTRIBUTE, SELL, OR LEASE THIS SOFTWARE, OR DERIVATIVE WORKS THEREOF, WITHOUT PERMISSION IN WRITING FROM THE COPYRIGHT HOLDER. THE COPYRIGHT HOLDER IS FREE TO MAKE VERSIONS OF THE SOFTWARE AVAILABLE FOR A FEE OR COMMERCIALLY ONLY.

IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OF ANY KIND WHATSOEVER, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.

THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE EXPRESS OR IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE AND CORRESPONDING DOCUMENTATION IS PROVIDED "AS IS". THE COPYRIGHT HOLDER HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.