Package cern.jet.random
Class AbstractDistribution
- java.lang.Object
-
- cern.colt.PersistentObject
-
- cern.jet.random.AbstractDistribution
-
- All Implemented Interfaces:
DoubleFunction
,IntFunction
,Serializable
,Cloneable
- Direct Known Subclasses:
AbstractContinousDistribution
public abstract class AbstractDistribution extends PersistentObject implements DoubleFunction, IntFunction
Abstract base class for all random distributions. A subclass of this class need to override methodnextDouble()
and, in rare cases, alsonextInt()
.Currently all subclasses use a uniform pseudo-random number generation engine and transform its results to the target distribution. Thus, they expect such a uniform engine upon instance construction.
MersenneTwister
is recommended as uniform pseudo-random number generation engine, since it is very strong and at the same time quick.makeDefaultGenerator()
will conveniently construct and return such a magic thing. You can also, for example, useDRand
, a quicker (but much weaker) uniform random number generation engine. Of course, you can also use other strong uniform random number generation engines.Ressources on the Web:
- Check the Web version of the CERN Data Analysis Briefbook . This will clarify the definitions of most distributions.
- Also consult the StatSoft Electronic Textbook - the definite web book.
Other useful ressources:
- Another site and yet another site describing the definitions of several distributions.
- You may want to check out a Glossary of Statistical Terms.
- The GNU Scientific Library contains an extensive (but hardly readable) list of definition of distributions.
- Use this Web interface to plot all sort of distributions.
- Even more ressources: Internet glossary of Statistical Terms, a text book, another text book.
- Finally, a good link list Statistics on the Web.
- Version:
- 1.0, 09/24/99
- Author:
- wolfgang.hoschek@cern.ch
- See Also:
cern.jet.random.engine
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected RandomEngine
randomGenerator
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractDistribution()
Makes this class non instantiable, but still let's others inherit from it.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description double
apply(double dummy)
Equivalent tonextDouble()
.int
apply(int dummy)
Equivalent tonextInt()
.Object
clone()
Returns a deep copy of the receiver; the copy will produce identical sequences.protected RandomEngine
getRandomGenerator()
Returns the used uniform random number generator;static RandomEngine
makeDefaultGenerator()
Constructs and returns a new uniform random number generation engine seeded with the current time.abstract double
nextDouble()
Returns a random number from the distribution.int
nextInt()
Returns a random number from the distribution; returns(int) Math.round(nextDouble())
.protected void
setRandomGenerator(RandomEngine randomGenerator)
Sets the uniform random generator internally used.
-
-
-
Field Detail
-
randomGenerator
protected RandomEngine randomGenerator
-
-
Method Detail
-
apply
public double apply(double dummy)
Equivalent tonextDouble()
. This has the effect that distributions can now be used as function objects, returning a random number upon function evaluation.- Specified by:
apply
in interfaceDoubleFunction
- Parameters:
dummy
- argument passed to the function.- Returns:
- the result of the function.
-
apply
public int apply(int dummy)
Equivalent tonextInt()
. This has the effect that distributions can now be used as function objects, returning a random number upon function evaluation.- Specified by:
apply
in interfaceIntFunction
- Parameters:
dummy
- argument passed to the function.- Returns:
- the result of the function.
-
clone
public Object clone()
Returns a deep copy of the receiver; the copy will produce identical sequences. After this call has returned, the copy and the receiver have equal but separate state.- Overrides:
clone
in classPersistentObject
- Returns:
- a copy of the receiver.
-
getRandomGenerator
protected RandomEngine getRandomGenerator()
Returns the used uniform random number generator;
-
makeDefaultGenerator
public static RandomEngine makeDefaultGenerator()
Constructs and returns a new uniform random number generation engine seeded with the current time. Currently this isMersenneTwister
.
-
nextDouble
public abstract double nextDouble()
Returns a random number from the distribution.
-
nextInt
public int nextInt()
Returns a random number from the distribution; returns(int) Math.round(nextDouble())
. Override this method if necessary.
-
setRandomGenerator
protected void setRandomGenerator(RandomEngine randomGenerator)
Sets the uniform random generator internally used.
-
-