cern.jet.random.engine
Class Benchmark

java.lang.Object
  extended by cern.jet.random.engine.Benchmark

public class Benchmark
extends java.lang.Object

Benchmarks the performance of the currently provided uniform pseudo-random number generation engines.

All distributions are obtained by using a uniform pseudo-random number generation engine. followed by a transformation to the desired distribution. Therefore, the performance of the uniform engines is crucial.

Comparison of uniform generation engines

Name Period

Speed
[# million uniform random numbers generated/sec]
Pentium Pro 200 Mhz, JDK 1.2, NT

MersenneTwister 219937-1 (=106001) 2.5
Ranlux (default luxury level 3) 10171 0.4
Ranmar 1043 1.6
Ranecu 1018 1.5
java.util.Random.nextFloat() ? 2.4

Note: Methods working on the default uniform random generator are synchronized and therefore in current VM's slow (as of June '99). Methods taking as argument a uniform random generator are not synchronized and therefore much quicker. Thus, if you need a lot of random numbers, you should use the unsynchronized approach:

Example usage:

 edu.cornell.lassp.houle.RngPack.RandomElement generator;
 generator = new cern.jet.random.engine.MersenneTwister(new java.util.Date());
 //generator = new edu.cornell.lassp.houle.RngPack.Ranecu(new java.util.Date());
 //generator = new edu.cornell.lassp.houle.RngPack.Ranmar(new java.util.Date());
 //generator = new edu.cornell.lassp.houle.RngPack.Ranlux(new java.util.Date());
 //generator = makeDefaultGenerator();
 for (int i=1000000; --i >=0; ) {
    double uniform = generator.raw();
    ...
 }
 

Author:
wolfgang.hoschek@cern.ch
See Also:
cern.jet.random

Constructor Summary
protected Benchmark()
          Makes this class non instantiable, but still let's others inherit from it.
 
Method Summary
static void benchmark(int times)
          Benchmarks raw() for various uniform generation engines.
static void main(java.lang.String[] args)
          Tests various methods of this class.
static void test(int size, RandomEngine randomEngine)
          Prints the first size random numbers generated by the given engine.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Benchmark

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

Method Detail

benchmark

public static void benchmark(int times)
Benchmarks raw() for various uniform generation engines.


main

public static void main(java.lang.String[] args)
Tests various methods of this class.


test

public static void test(int size,
                        RandomEngine randomEngine)
Prints the first size random numbers generated by the given engine.