A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 MatPowModM (const double A[3][3], double B[3][3], double m, int32_t n)
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 fact = 5.9604644775390625e-8
const Matrix InvA1
const Matrix InvA2
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 30 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 128 of file rng-stream.cc.

References MatVecModM(), and V.

Referenced by MatPowModM(), and MatTwoPowModM().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void anonymous_namespace{rng-stream.cc}::MatPowModM ( const double  A[3][3],
double  B[3][3],
double  m,
int32_t  n 
)

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

References MatMatModM().

+ Here is the call graph for this function:

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

Definition at line 160 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 105 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 71 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  )
read

Definition at line 221 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 232 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 35 of file rng-stream.cc.

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

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

Definition at line 36 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 55 of file rng-stream.cc.

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

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

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

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

Definition at line 38 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 61 of file rng-stream.cc.

const double anonymous_namespace{rng-stream.cc}::fact = 5.9604644775390625e-8

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

Referenced by ns3::YansErrorRateModel::Factorial().

const Matrix anonymous_namespace{rng-stream.cc}::InvA1
Initial value:
{
{ 184888585.0, 0.0, 1945170933.0 },
{ 1.0, 0.0, 0.0 },
{ 0.0, 1.0, 0.0 }
}

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

const Matrix anonymous_namespace{rng-stream.cc}::InvA2
Initial value:
{
{ 0.0, 360363334.0, 4225571728.0 },
{ 1.0, 0.0, 0.0 },
{ 0.0, 1.0, 0.0 }
}

Definition at line 49 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 34 of file rng-stream.cc.

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

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

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

Referenced by MultModM().

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

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