Class FloatRandomEngine
- java.lang.Object
-
- cern.colt.PersistentObject
-
- cern.jet.random.tfloat.engine.FloatRandomEngine
-
- All Implemented Interfaces:
- FloatFunction, IntFunction, java.io.Serializable, java.lang.Cloneable
- Direct Known Subclasses:
- FloatMersenneTwister, FRand
public abstract class FloatRandomEngine extends PersistentObject implements FloatFunction, IntFunction
Abstract base class for uniform pseudo-random number generating engines.Most probability distributions are obtained by using a uniform pseudo-random number generation engine followed by a transformation to the desired distribution. Thus, subclasses of this class are at the core of computational statistics, simulations, Monte Carlo methods, etc.
Subclasses produce uniformly distributed int's and long's in the closed intervals [Integer.MIN_VALUE,Integer.MAX_VALUE] and [Long.MIN_VALUE,Long.MAX_VALUE], respectively, as well as float's and float's in the open unit intervals (0.0f,1.0f) and (0.0,1.0), respectively.
Subclasses need to override one single method only: nextInt(). All other methods generating different data types or ranges are usually layered upon nextInt(). long's are formed by concatenating two 32 bit int's. float's are formed by dividing the interval [0.0f,1.0f] into 232 sub intervals, then randomly choosing one subinterval. float's are formed by dividing the interval [0.0,1.0] into 264 sub intervals, then randomly choosing one subinterval.
Note that this implementation is not synchronized.
- See Also:
FloatMersenneTwister,MersenneTwister64,Random, Serialized Form
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method and Description floatapply(float dummy)Equivalent to raw().intapply(int dummy)Equivalent to nextInt().static FloatRandomEnginemakeDefault()Constructs and returns a new uniform random number engine seeded with the current time.floatnextFloat()Returns a 32 bit uniformly distributed random number in the open unit interval(0.0f,1.0f)(excluding 0.0f and 1.0f).abstract intnextInt()Returns a 32 bit uniformly distributed random number in the closed interval [Integer.MIN_VALUE,Integer.MAX_VALUE] (including Integer.MIN_VALUE and Integer.MAX_VALUE);longnextLong()Returns a 64 bit uniformly distributed random number in the closed interval [Long.MIN_VALUE,Long.MAX_VALUE] (including Long.MIN_VALUE and Long.MAX_VALUE).floatraw()Returns a 32 bit uniformly distributed random number in the open unit interval(0.0,1.0)(excluding 0.0 and 1.0).-
Methods inherited from class cern.colt.PersistentObject
clone
-
-
-
-
Method Detail
-
apply
public float apply(float dummy)
Equivalent to raw(). This has the effect that random engines can now be used as function objects, returning a random number upon function evaluation.- Specified by:
applyin interfaceFloatFunction- Parameters:
dummy- argument passed to the function.- Returns:
- the result of the function.
-
apply
public int apply(int dummy)
Equivalent to nextInt(). This has the effect that random engines can now be used as function objects, returning a random number upon function evaluation.- Specified by:
applyin interfaceIntFunction- Parameters:
dummy- argument passed to the function.- Returns:
- the result of the function.
-
makeDefault
public static FloatRandomEngine makeDefault()
Constructs and returns a new uniform random number engine seeded with the current time. Currently this isFloatMersenneTwister.
-
nextFloat
public float nextFloat()
Returns a 32 bit uniformly distributed random number in the open unit interval(0.0f,1.0f)(excluding 0.0f and 1.0f).
-
nextInt
public abstract int nextInt()
Returns a 32 bit uniformly distributed random number in the closed interval [Integer.MIN_VALUE,Integer.MAX_VALUE] (including Integer.MIN_VALUE and Integer.MAX_VALUE);
-
nextLong
public long nextLong()
Returns a 64 bit uniformly distributed random number in the closed interval [Long.MIN_VALUE,Long.MAX_VALUE] (including Long.MIN_VALUE and Long.MAX_VALUE).
-
raw
public float raw()
Returns a 32 bit uniformly distributed random number in the open unit interval(0.0,1.0)(excluding 0.0 and 1.0).
-
-
DMelt 3.0 © DataMelt by jWork.ORG