OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
RNGXDiv Class Reference

#include <RNGXDiv.h>

Collaboration diagram for RNGXDiv:

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.

Referenced by RNGXDiv().

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.

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

Here is the call graph for this function:

◆ ~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()

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, 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, 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(), RNGXDiv(), 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(), RNGXDiv(), and SetSeed().

◆ SeedLower

double RNGXDiv::SeedLower
private

Definition at line 98 of file RNGXDiv.h.

Referenced by AdvanceSeed(), advijk(), GetSeed(), RNGXDiv(), 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(), 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: