Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## sim.util.distribution
Class AbstractDistribution

    java.lang.Object
      sim.util.distribution.AbstractDistribution

All Implemented Interfaces:
  java.io.Serializable

Direct Known Subclasses:
  AbstractContinousDistribution, AbstractDiscreteDistribution

    public abstract class AbstractDistribution

extends java.lang.Object
implements java.io.Serializable

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.

`cern.jet.random.engine.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 `cern.jet.random.engine.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.

See Also:
  `cern.jet.random.engine`, `cern.jet.random.engine.Benchmark`, `cern.jet.random.Benchmark`, Serialized Form

Field Summary
`protected MersenneTwisterFast` | `randomGenerator`

Constructor Summary
`protected` | `AbstractDistribution()` Makes this class non instantiable, but still let's others inherit from it.

Method Summary
`double` | `apply(double dummy)` Equivalent to `nextDouble()`.
`int` | `apply(int dummy)` Equivalent to `nextInt()`.
`protected MersenneTwisterFast` | `getRandomGenerator()` Returns the used uniform random number generator;
`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(MersenneTwisterFast randomGenerator)` Sets the uniform random generator internally used.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### randomGenerator

    protected MersenneTwisterFast randomGenerator

Constructor Detail

### AbstractDistribution

    protected AbstractDistribution()

  Makes this class non instantiable, but still let's others inherit from it.

Method Detail

### 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.

### 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.

### getRandomGenerator

    protected MersenneTwisterFast getRandomGenerator()

  Returns the used uniform random number generator;

### 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(MersenneTwisterFast randomGenerator)

  Sets the uniform random generator internally used.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD