Combined Multiple-Recursive Generator MRG32k3a. More...
#include <rng-stream.h>
Public Member Functions | |
RngStream (uint32_t seed, uint64_t stream, uint64_t substream) | |
RngStream (const RngStream &) | |
double | RandU01 (void) |
Generate the next random number for this stream. More... | |
Private Member Functions | |
void | AdvanceNthBy (uint64_t nth, int by, double state[6]) |
Private Attributes | |
double | m_currentState [6] |
Combined Multiple-Recursive Generator MRG32k3a.
This class is the combined multiple-recursive random number generator called MRG32k3a. The ns3::RandomVariableBase class holds a static instance of this class. The details of this class are explained in: http://www.iro.umontreal.ca/~lecuyer/myftp/papers/streams00.pdf
Definition at line 38 of file rng-stream.h.
ns3::RngStream::RngStream | ( | uint32_t | seed, |
uint64_t | stream, | ||
uint64_t | substream | ||
) |
Definition at line 280 of file rng-stream.cc.
References AdvanceNthBy(), anonymous_namespace{rng-stream.cc}::m1, anonymous_namespace{rng-stream.cc}::m2, m_currentState, and NS_FATAL_ERROR.
ns3::RngStream::RngStream | ( | const RngStream & | r | ) |
Definition at line 294 of file rng-stream.cc.
References m_currentState.
|
private |
Definition at line 303 of file rng-stream.cc.
References anonymous_namespace{rng-stream.cc}::m1, anonymous_namespace{rng-stream.cc}::m2, anonymous_namespace{rng-stream.cc}::MatVecModM(), and anonymous_namespace{rng-stream.cc}::PowerOfTwoMatrix().
Referenced by RngStream().
double ns3::RngStream::RandU01 | ( | void | ) |
Generate the next random number for this stream.
Uniformly distributed between 0 and 1.
Definition at line 249 of file rng-stream.cc.
References anonymous_namespace{rng-stream.cc}::a12, anonymous_namespace{rng-stream.cc}::a13n, anonymous_namespace{rng-stream.cc}::a21, anonymous_namespace{rng-stream.cc}::a23n, anonymous_namespace{rng-stream.cc}::m1, anonymous_namespace{rng-stream.cc}::m2, m_currentState, and anonymous_namespace{rng-stream.cc}::norm.
Referenced by ns3::ErlangRandomVariable::GetExponentialValue(), ns3::GammaRandomVariable::GetNormalValue(), ns3::UniformVariableImpl::GetValue(), ns3::UniformRandomVariable::GetValue(), ns3::ExponentialRandomVariable::GetValue(), ns3::ExponentialVariableImpl::GetValue(), ns3::ParetoVariableImpl::GetValue(), ns3::ParetoRandomVariable::GetValue(), ns3::WeibullVariableImpl::GetValue(), ns3::WeibullRandomVariable::GetValue(), ns3::NormalVariableImpl::GetValue(), ns3::NormalRandomVariable::GetValue(), ns3::EmpiricalVariableImpl::GetValue(), ns3::LogNormalRandomVariable::GetValue(), ns3::LogNormalVariableImpl::GetValue(), ns3::GammaRandomVariable::GetValue(), ns3::GammaVariableImpl::GetValue(), ns3::TriangularVariableImpl::GetValue(), ns3::ZipfVariableImpl::GetValue(), ns3::TriangularRandomVariable::GetValue(), ns3::ZetaVariableImpl::GetValue(), ns3::ZipfRandomVariable::GetValue(), ns3::ZetaRandomVariable::GetValue(), and ns3::EmpiricalRandomVariable::GetValue().
|
private |
Definition at line 52 of file rng-stream.h.
Referenced by RandU01(), and RngStream().