A Discrete-Event Network Simulator
API
anonymous_namespace{rng-stream.cc} Namespace Reference

Classes

struct  Precalculated
 

Typedefs

typedef double Matrix[3][3]
 

Functions

void MatMatModM (const Matrix A, const Matrix B, Matrix C, double m)
 
void MatTwoPowModM (const Matrix src, Matrix dst, double m, int32_t e)
 
void MatVecModM (const Matrix A, const double s[3], double v[3], double m)
 
double MultModM (double a, double s, double c, double m)
 
struct Precalculated PowerOfTwoConstants (void)
 
void PowerOfTwoMatrix (int n, Matrix a1p, Matrix a2p)
 

Variables

const double a12 = 1403580.0
 
const double a13n = 810728.0
 
const Matrix A1p0
 
const double a21 = 527612.0
 
const double a23n = 1370589.0
 
const Matrix A2p0
 
const double m1 = 4294967087.0
 
const double m2 = 4294944443.0
 
const double norm = 1.0 / (m1 + 1.0)
 
const double two17 = 131072.0
 
const double two53 = 9007199254740992.0
 

Typedef Documentation

typedef double anonymous_namespace{rng-stream.cc}::Matrix[3][3]

Definition at line 41 of file rng-stream.cc.

Function Documentation

void anonymous_namespace{rng-stream.cc}::MatMatModM ( const Matrix  A,
const Matrix  B,
Matrix  C,
double  m 
)

Definition at line 126 of file rng-stream.cc.

References MatVecModM().

Referenced by MatTwoPowModM().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void anonymous_namespace{rng-stream.cc}::MatTwoPowModM ( const Matrix  src,
Matrix  dst,
double  m,
int32_t  e 
)

Definition at line 158 of file rng-stream.cc.

References MatMatModM().

Referenced by PowerOfTwoConstants().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void anonymous_namespace{rng-stream.cc}::MatVecModM ( const Matrix  A,
const double  s[3],
double  v[3],
double  m 
)

Definition at line 103 of file rng-stream.cc.

References MultModM(), and sample-rng-plot::x.

Referenced by ns3::RngStream::AdvanceNthBy(), and MatMatModM().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double anonymous_namespace{rng-stream.cc}::MultModM ( double  a,
double  s,
double  c,
double  m 
)

Definition at line 69 of file rng-stream.cc.

References two17.

Referenced by MatVecModM().

+ Here is the caller graph for this function:

struct Precalculated anonymous_namespace{rng-stream.cc}::PowerOfTwoConstants ( void  )

Definition at line 222 of file rng-stream.cc.

References anonymous_namespace{rng-stream.cc}::Precalculated::a1, anonymous_namespace{rng-stream.cc}::Precalculated::a2, and MatTwoPowModM().

Referenced by PowerOfTwoMatrix().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void anonymous_namespace{rng-stream.cc}::PowerOfTwoMatrix ( int  n,
Matrix  a1p,
Matrix  a2p 
)

Definition at line 233 of file rng-stream.cc.

References anonymous_namespace{rng-stream.cc}::Precalculated::a1, anonymous_namespace{rng-stream.cc}::Precalculated::a2, and PowerOfTwoConstants().

Referenced by ns3::RngStream::AdvanceNthBy().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

const double anonymous_namespace{rng-stream.cc}::a12 = 1403580.0

Definition at line 46 of file rng-stream.cc.

Referenced by ns3::RngStream::RandU01().

const double anonymous_namespace{rng-stream.cc}::a13n = 810728.0

Definition at line 47 of file rng-stream.cc.

Referenced by ns3::RngStream::RandU01().

const Matrix anonymous_namespace{rng-stream.cc}::A1p0
Initial value:
= {
{ 0.0, 1.0, 0.0 },
{ 0.0, 0.0, 1.0 },
{ -810728.0, 1403580.0, 0.0 }
}

Definition at line 53 of file rng-stream.cc.

const double anonymous_namespace{rng-stream.cc}::a21 = 527612.0

Definition at line 48 of file rng-stream.cc.

Referenced by ns3::RngStream::RandU01().

const double anonymous_namespace{rng-stream.cc}::a23n = 1370589.0

Definition at line 49 of file rng-stream.cc.

Referenced by ns3::RngStream::RandU01().

const Matrix anonymous_namespace{rng-stream.cc}::A2p0
Initial value:
= {
{ 0.0, 1.0, 0.0 },
{ 0.0, 0.0, 1.0 },
{ -1370589.0, 0.0, 527612.0 }
}

Definition at line 59 of file rng-stream.cc.

const double anonymous_namespace{rng-stream.cc}::m1 = 4294967087.0
const double anonymous_namespace{rng-stream.cc}::m2 = 4294944443.0
const double anonymous_namespace{rng-stream.cc}::norm = 1.0 / (m1 + 1.0)

Definition at line 45 of file rng-stream.cc.

Referenced by ns3::RngStream::RandU01().

const double anonymous_namespace{rng-stream.cc}::two17 = 131072.0

Definition at line 50 of file rng-stream.cc.

Referenced by MultModM().

const double anonymous_namespace{rng-stream.cc}::two53 = 9007199254740992.0

Definition at line 51 of file rng-stream.cc.