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
,AbstractDiscreteDistribution
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().
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.
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.
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:
Other useful ressources:
- Version:
- 1.0, 09/24/99
- See Also:
-
Field Summary
FieldsFields inherited from class cern.colt.PersistentObject
serialVersionUID
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
Makes this class non instantiable, but still let's others inherit from it. -
Method Summary
Modifier and TypeMethodDescriptiondouble
apply
(double dummy) Equivalent to nextDouble().int
apply
(int dummy) Equivalent to nextInt().clone()
Returns a deep copy of the receiver; the copy will produce identical sequences.protected RandomEngine
Returns the used uniform random number generator;static RandomEngine
Constructs and returns a new uniform random number generation engine seeded with the current time.abstract double
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 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 to nextDouble(). 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 to nextInt(). 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
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
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.
-