OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
RNGXDiv Class Reference

#include <RNGXDiv.h>

Public Types

typedef double Return_t
 

Public Member Functions

 RNGXDiv (int advance=0)
 
 RNGXDiv (const RNGXDiv &rng)
 
 ~RNGXDiv (void)
 
void AdvanceSeed (int advance=0)
 
void SetSeed (unsigned long seed)
 
unsigned long GetSeed (void) const
 
Return_t GetRandom (void) const
 
Return_t operator() (void) const
 
 operator Return_t () const
 

Static Public Member Functions

static Return_t GetRandMax (void)
 

Private Member Functions

void advijk (void)
 

Private Attributes

double SeedLower
 
double SeedUpper
 
double RandLower
 
double RandUpper
 

Static Private Attributes

static const double RANDOM_MAX = 16777216.0*16777216.0
 
static const double SQR_RANMAX = 16777216.0
 
static const double INV_SQR_RANMAX = 1.0/RNGXDiv::SQR_RANMAX
 
static const double INV_RANMAX = 1.0/RNGXDiv::RANDOM_MAX
 
static const double SeedMultUpper = 13008944.0
 
static const double SeedMultLower = 170125.0
 
static const double RandMultUpper = 1136868.0
 
static const double RandMultLower = 6328637.0
 
static const double FirstSeed = 1953125.0*9765625.0
 

Detailed Description

Definition at line 28 of file RNGXDiv.h.

Member Typedef Documentation

◆ Return_t

typedef double RNGXDiv::Return_t

Definition at line 31 of file RNGXDiv.h.

Constructor & Destructor Documentation

◆ RNGXDiv() [1/2]

RNGXDiv::RNGXDiv ( int  advance = 0)
inline

Definition at line 35 of file RNGXDiv.h.

References AdvanceSeed(), FirstSeed, INV_SQR_RANMAX, SeedLower, SeedUpper, and SQR_RANMAX.

Here is the call graph for this function:

◆ RNGXDiv() [2/2]

RNGXDiv::RNGXDiv ( const RNGXDiv rng)
inline

Definition at line 44 of file RNGXDiv.h.

◆ ~RNGXDiv()

RNGXDiv::~RNGXDiv ( void  )
inline

Definition at line 49 of file RNGXDiv.h.

Member Function Documentation

◆ AdvanceSeed()

void RNGXDiv::AdvanceSeed ( int  advance = 0)
inline

Definition at line 52 of file RNGXDiv.h.

References advijk(), RandLower, RandUpper, SeedLower, and SeedUpper.

Referenced by RNGXDiv().

Here is the call graph for this function:

◆ advijk()

void RNGXDiv::advijk ( void  )
inlineprivate

Definition at line 102 of file RNGXDiv.h.

References a, INV_SQR_RANMAX, SeedLower, SeedMultLower, SeedMultUpper, SeedUpper, and SQR_RANMAX.

Referenced by AdvanceSeed().

◆ GetRandMax()

static Return_t RNGXDiv::GetRandMax ( void  )
inlinestatic

Definition at line 95 of file RNGXDiv.h.

References RANDOM_MAX.

Referenced by RNGXDivSequence::GetRandMax().

◆ GetRandom()

Return_t RNGXDiv::GetRandom ( void  ) const
inline

Definition at line 79 of file RNGXDiv.h.

References a, INV_RANMAX, INV_SQR_RANMAX, RandLower, RandMultLower, RandMultUpper, RandUpper, and SQR_RANMAX.

Referenced by operator Return_t(), and operator()().

◆ GetSeed()

unsigned long RNGXDiv::GetSeed ( void  ) const
inline

Definition at line 71 of file RNGXDiv.h.

References FirstSeed, Options::seed, SeedLower, SeedUpper, and SQR_RANMAX.

◆ operator Return_t()

RNGXDiv::operator Return_t ( ) const
inline

Definition at line 92 of file RNGXDiv.h.

References GetRandom().

Here is the call graph for this function:

◆ operator()()

Return_t RNGXDiv::operator() ( void  ) const
inline

Definition at line 89 of file RNGXDiv.h.

References GetRandom().

Here is the call graph for this function:

◆ SetSeed()

void RNGXDiv::SetSeed ( unsigned long  seed)
inline

Definition at line 61 of file RNGXDiv.h.

References FirstSeed, INV_SQR_RANMAX, RandLower, RandUpper, Options::seed, SeedLower, SeedUpper, and SQR_RANMAX.

Member Data Documentation

◆ FirstSeed

const double RNGXDiv::FirstSeed = 1953125.0*9765625.0
staticprivate

Definition at line 121 of file RNGXDiv.h.

Referenced by GetSeed(), RNGXDiv(), and SetSeed().

◆ INV_RANMAX

const double RNGXDiv::INV_RANMAX = 1.0/RNGXDiv::RANDOM_MAX
staticprivate

Definition at line 116 of file RNGXDiv.h.

Referenced by GetRandom().

◆ INV_SQR_RANMAX

const double RNGXDiv::INV_SQR_RANMAX = 1.0/RNGXDiv::SQR_RANMAX
staticprivate

Definition at line 115 of file RNGXDiv.h.

Referenced by advijk(), GetRandom(), RNGXDiv(), and SetSeed().

◆ RandLower

double RNGXDiv::RandLower
mutableprivate

Definition at line 99 of file RNGXDiv.h.

Referenced by AdvanceSeed(), GetRandom(), and SetSeed().

◆ RandMultLower

const double RNGXDiv::RandMultLower = 6328637.0
staticprivate

Definition at line 120 of file RNGXDiv.h.

Referenced by GetRandom().

◆ RandMultUpper

const double RNGXDiv::RandMultUpper = 1136868.0
staticprivate

Definition at line 119 of file RNGXDiv.h.

Referenced by GetRandom().

◆ RANDOM_MAX

const double RNGXDiv::RANDOM_MAX = 16777216.0*16777216.0
staticprivate

Definition at line 113 of file RNGXDiv.h.

Referenced by GetRandMax().

◆ RandUpper

double RNGXDiv::RandUpper
private

Definition at line 99 of file RNGXDiv.h.

Referenced by AdvanceSeed(), GetRandom(), and SetSeed().

◆ SeedLower

double RNGXDiv::SeedLower
private

Definition at line 98 of file RNGXDiv.h.

Referenced by AdvanceSeed(), advijk(), GetSeed(), RNGXDiv(), and SetSeed().

◆ SeedMultLower

const double RNGXDiv::SeedMultLower = 170125.0
staticprivate

Definition at line 118 of file RNGXDiv.h.

Referenced by advijk().

◆ SeedMultUpper

const double RNGXDiv::SeedMultUpper = 13008944.0
staticprivate

Definition at line 117 of file RNGXDiv.h.

Referenced by advijk().

◆ SeedUpper

double RNGXDiv::SeedUpper
private

Definition at line 98 of file RNGXDiv.h.

Referenced by AdvanceSeed(), advijk(), GetSeed(), RNGXDiv(), and SetSeed().

◆ SQR_RANMAX

const double RNGXDiv::SQR_RANMAX = 16777216.0
staticprivate

Definition at line 114 of file RNGXDiv.h.

Referenced by advijk(), GetRandom(), GetSeed(), RNGXDiv(), and SetSeed().


The documentation for this class was generated from the following files: