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 method
nextDouble() and,
in rare cases, also nextInt().
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, use
DRand, 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:
-
Field Summary
Fields -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedMakes this class non instantiable, but still let's others inherit from it. -
Method Summary
Modifier and TypeMethodDescriptiondoubleapply(double dummy) Equivalent tonextDouble().intapply(int dummy) Equivalent tonextInt().clone()Returns a deep copy of the receiver; the copy will produce identical sequences.protected RandomEngineReturns the used uniform random number generator;static RandomEngineConstructs and returns a new uniform random number generation engine seeded with the current time.abstract doubleReturns a random number from the distribution.intnextInt()Returns a random number from the distribution; returns(int) Math.round(nextDouble()).protected voidsetRandomGenerator(RandomEngine randomGenerator) Sets the uniform random generator internally used.
-
Field Details
-
randomGenerator
-
-
Constructor Details
-
AbstractDistribution
protected AbstractDistribution()Makes this class non instantiable, but still let's others inherit from it.
-
-
Method Details
-
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:
applyin 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:
applyin interfaceIntFunction- Parameters:
dummy- argument passed to the function.- Returns:
- the result of the function.
-
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:
clonein classPersistentObject- Returns:
- a copy of the receiver.
-
getRandomGenerator
Returns the used uniform random number generator; -
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
Sets the uniform random generator internally used.
-