

PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 
java.lang.Object org.apache.commons.math3.random.AbstractRandomGenerator
public abstract class AbstractRandomGenerator
Abstract class implementing the RandomGenerator
interface.
Default implementations for all methods other than nextDouble()
and
setSeed(long)
are provided.
All data generation methods are based on code nextDouble()
.
Concrete implementations must override
this method and should provide better / more
performant implementations of the other methods if the underlying PRNG
supplies them.
Constructor Summary  

AbstractRandomGenerator()
Construct a RandomGenerator. 
Method Summary  

void 
clear()
Clears the cache used by the default implementation of nextGaussian() . 
boolean 
nextBoolean()
Returns the next pseudorandom, uniformly distributed boolean value from this random number generator's
sequence. 
void 
nextBytes(byte[] bytes)
Generates random bytes and places them into a usersupplied byte array. 
abstract double 
nextDouble()
Returns the next pseudorandom, uniformly distributed double value between 0.0 and
1.0 from this random number generator's sequence. 
float 
nextFloat()
Returns the next pseudorandom, uniformly distributed float
value between 0.0 and 1.0 from this random
number generator's sequence. 
double 
nextGaussian()
Returns the next pseudorandom, Gaussian ("normally") distributed double value with mean 0.0 and standard
deviation 1.0 from this random number generator's sequence. 
int 
nextInt()
Returns the next pseudorandom, uniformly distributed int
value from this random number generator's sequence. 
int 
nextInt(int n)
Returns a pseudorandom, uniformly distributed int value
between 0 (inclusive) and the specified value (exclusive), drawn from
this random number generator's sequence. 
long 
nextLong()
Returns the next pseudorandom, uniformly distributed long
value from this random number generator's sequence. 
void 
setSeed(int seed)
Sets the seed of the underlying random number generator using an int seed. 
void 
setSeed(int[] seed)
Sets the seed of the underlying random number generator using an int array seed. 
abstract void 
setSeed(long seed)
Sets the seed of the underlying random number generator using a long seed. 
Methods inherited from class java.lang.Object 

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 
Constructor Detail 

public AbstractRandomGenerator()
Method Detail 

public void clear()
nextGaussian()
. Implementations that do not override the
default implementation of nextGaussian
should call this
method in the implementation of setSeed(long)
public void setSeed(int seed)
int
seed.
Sequences of values generated starting with the same seeds should be identical.
setSeed
in interface RandomGenerator
seed
 the seed valuepublic void setSeed(int[] seed)
int
array seed.
Sequences of values generated starting with the same seeds should be identical.
setSeed
in interface RandomGenerator
seed
 the seed valuepublic abstract void setSeed(long seed)
long
seed. Sequences of values generated starting with the
same seeds should be identical.
Implementations that do not override the default implementation of
nextGaussian
should include a call to clear()
in the
implementation of this method.
setSeed
in interface RandomGenerator
seed
 the seed valuepublic void nextBytes(byte[] bytes)
The default implementation fills the array with bytes extracted from
random integers generated using nextInt()
.
nextBytes
in interface RandomGenerator
bytes
 the nonnull byte array in which to put the
random bytespublic int nextInt()
int
value from this random number generator's sequence.
All 2^{32} possible int
values
should be produced with (approximately) equal probability.
The default implementation provided here returns
(int) (nextDouble() * Integer.MAX_VALUE)
nextInt
in interface RandomGenerator
int
value from this random number generator's sequencepublic int nextInt(int n)
int
value
between 0 (inclusive) and the specified value (exclusive), drawn from
this random number generator's sequence.
The default implementation returns
(int) (nextDouble() * n
nextInt
in interface RandomGenerator
n
 the bound on the random number to be returned. Must be
positive.
int
value between 0 (inclusive) and n (exclusive).
NotStrictlyPositiveException
 if n <= 0
.public long nextLong()
long
value from this random number generator's sequence. All
2^{64} possible long
values
should be produced with (approximately) equal probability.
The default implementation returns
(long) (nextDouble() * Long.MAX_VALUE)
nextLong
in interface RandomGenerator
long
value from this random number generator's sequencepublic boolean nextBoolean()
boolean
value from this random number generator's
sequence.
The default implementation returns
nextDouble() <= 0.5
nextBoolean
in interface RandomGenerator
boolean
value from this random number generator's
sequencepublic float nextFloat()
float
value between 0.0
and 1.0
from this random
number generator's sequence.
The default implementation returns
(float) nextDouble()
nextFloat
in interface RandomGenerator
float
value between 0.0
and 1.0
from this
random number generator's sequencepublic abstract double nextDouble()
double
value between 0.0
and
1.0
from this random number generator's sequence.
This method provides the underlying source of random data used by the other methods.
nextDouble
in interface RandomGenerator
double
value between 0.0
and
1.0
from this random number generator's sequencepublic double nextGaussian()
double
value with mean 0.0
and standard
deviation 1.0
from this random number generator's sequence.
The default implementation uses the Polar Method due to G.E.P. Box, M.E. Muller and G. Marsaglia, as described in D. Knuth, The Art of Computer Programming, 3.4.1C.
The algorithm generates a pair of independent random values. One of
these is cached for reuse, so the full algorithm is not executed on each
activation. Implementations that do not override this method should
make sure to call clear()
to clear the cached value in the
implementation of setSeed(long)
.
nextGaussian
in interface RandomGenerator
double
value with mean 0.0
and
standard deviation 1.0
from this random number
generator's sequence


PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 