Class edu.cornell.lassp.houle.RngPack.Ranmar
All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class edu.cornell.lassp.houle.RngPack.Ranmar

java.lang.Object
   |
   +----edu.cornell.lassp.houle.RngPack.RandomElement
           |
           +----edu.cornell.lassp.houle.RngPack.RandomSeedable
                   |
                   +----edu.cornell.lassp.houle.RngPack.Ranmar

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.

Source code is available.

Version:
1.0
Author:
Paul Houle (E-mail: houle@msc.cornell.edu)

Variable Index

 o BIG_PRIME
The 46,009,220nd prime number, he largest prime less than 9*108.
 o DEFSEED
Default seed.

Constructor Index

 o Ranmar(int)
Initialize Ranmar with a specified integer seed
 o Ranmar(long)
Initialize Ranmar with a specified long seed
 o Ranmar()
Initialize Ranmar with a default seed taken from Marsaglia and Zaman's paper.
 o Ranmar(Date)
Seed RANMAR from the clock.

Method Index

 o raw()
The generator
 o raw(double[], int)
A version of the generator for filling arrays, inlined for speed

Variables

 o DEFSEED
  public static int DEFSEED
Default seed. DEFSEED=54217137
 o 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

Constructors

 o 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.
 o 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.
 o Ranmar
  public Ranmar()
Initialize Ranmar with a default seed taken from Marsaglia and Zaman's paper. Equivalent to Ranmar(54217137).
 o 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()

Methods

 o raw
  public final double raw()
The generator
Returns:
a pseudo random number
Overrides:
raw in class RandomElement
 o raw
  public final void raw(double d[],
                        int n)
A version of the generator for filling arrays, inlined for speed
Parameters:
d - an array of doubles to be filled
n - size of the array
Overrides:
raw in class RandomElement

All Packages  Class Hierarchy  This Package  Previous  Next  Index