edu.cornell.lassp.houle.RngPack
Class Ranmar
java.lang.Object
|
+--cern.colt.PersistentObject
|
+--edu.cornell.lassp.houle.RngPack.RandomElement
|
+--edu.cornell.lassp.houle.RngPack.RandomSeedable
|
+--edu.cornell.lassp.houle.RngPack.Ranmar
- All Implemented Interfaces:
- Cloneable, Serializable
- public class Ranmar
- extends RandomSeedable
RANMAR is a lagged Fibonacci generator proposed by Marsaglia and
Zaman and is a good research grade generator. This version of
RANMAR is based on the paper by James, which is a good
reference for the properties of RANMAR and several other
generators.
REFERENCES:
F. James, Comp. Phys. Comm. 60 (1990) p 329-344
and was originally described in
G. Marsaglia, A. Zaman and W.-W Tsang, Stat. Prob. Lett 9 (1990) p 35.
More info .
Source code is available.
- See Also:
- Serialized Form
Field Summary |
static int |
BIG_PRIME
The 46,009,220nd prime number,
he largest prime less than 9*108. |
static int |
DEFSEED
Default seed. |
Constructor Summary |
Ranmar()
Initialize Ranmar with a default seed taken from Marsaglia and
Zaman's paper. |
Ranmar(Date d)
Seed RANMAR from the clock. |
Ranmar(int ijkl)
Initialize Ranmar with a specified integer seed |
Ranmar(long ijkl)
Initialize Ranmar with a specified long seed |
Method Summary |
Object |
clone()
Returns a copy of the receiver; the copy will produce identical sequences. |
double |
raw()
Returns a uniformly distributed pseudo-random double in the range (0,1). |
void |
raw(double[] d,
int n)
A version of the generator for filling arrays, inlined for speed |
DEFSEED
public static int DEFSEED
- Default seed.
DEFSEED=54217137
BIG_PRIME
public static int BIG_PRIME
- The 46,009,220nd prime number,
he largest prime less than 9*108. Used as a modulus
because this version of RANMAR needs a seed between 0
and 9*108 and
BIG_PRIME
isn't commensurate
with any regular period.
BIG_PRIME= 899999963
Ranmar
public Ranmar()
- Initialize Ranmar with a default seed taken from Marsaglia and
Zaman's paper. Equivalent to
Ranmar(54217137).
Ranmar
public Ranmar(int ijkl)
- Initialize Ranmar with a specified integer seed
- Parameters:
ijkl
- seed integer; Ranmar(int ijkl) takes uses
ijkl modulus BIG_PRIME as a seed for RANMAR.
Ranmar
public Ranmar(long ijkl)
- Initialize Ranmar with a specified long seed
- Parameters:
ijkl
- seed long; Ranmar(long ijkl) takes uses
ijkl modulus BIG_PRIME as a seed for RANMAR.
Ranmar
public Ranmar(Date d)
- Seed RANMAR from the clock.
RandomElement e=new Ranmar(new Date());
- Parameters:
d
- a Date object to seed Ranmar with, typically new Date()
clone
public Object clone()
- Returns a 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 class PersistentObject
- Returns:
- a copy of the receiver.
raw
public final double raw()
- Returns a uniformly distributed pseudo-random double in the range (0,1).
- Overrides:
raw
in class RandomElement
- Returns:
- a pseudo random number in the range (0,1).
raw
public final void raw(double[] d,
int n)
- A version of the generator for filling arrays, inlined for speed
- Overrides:
raw
in class RandomElement
- Parameters:
d
- an array of doubles to be filledn
- size of the array
Submit a bug or feature. Check the Colt home page for the latest news.