public class Benchmark extends Object
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.
Name | Period |
Speed |
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(); ... }
cern.jet.random
Modifier | Constructor and Description |
---|---|
protected |
Benchmark()
Makes this class non instantiable, but still let's others inherit from it.
|
Modifier and Type | Method and Description |
---|---|
static void |
benchmark(int times)
Benchmarks raw() for various uniform generation engines.
|
static void |
main(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.
|
protected Benchmark()
public static void benchmark(int times)
public static void main(String[] args)
public static void test(int size, RandomEngine randomEngine)
Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.