Manage the seed number and run number of the underlying random number generator, and automatic assignment of stream numbers. More...
#include "rngseedmanager.h"
Static Public Member Functions  
static uint64_t  GetNextStreamIndex (void) 
Get the next automatically assigned stream index. More...  
static uint64_t  GetRun (void) 
Get the current run number. More...  
static uint32_t  GetSeed (void) 
Get the current seed value which will be used by all subsequently instantiated RandomVariableStream objects. More...  
static void  SetRun (uint64_t run) 
Set the run number of simulation. More...  
static void  SetSeed (uint32_t seed) 
Set the seed. More...  
Related Functions  
(Note that these are not member functions.)  
static uint64_t  g_nextStreamIndex = 0 
static ns3::GlobalValue  g_rngRun ("RngRun", "The substream index used for all streams", ns3::UintegerValue(1), ns3::MakeUintegerChecker< uint64_t >()) 
static ns3::GlobalValue  g_rngSeed ("RngSeed", "The global seed of all rng streams", ns3::UintegerValue(1), ns3::MakeUintegerChecker< uint32_t >()) 
Manage the seed number and run number of the underlying random number generator, and automatic assignment of stream numbers.
Definition at line 39 of file rngseedmanager.h.

static 
Get the next automatically assigned stream index.
Definition at line 102 of file rngseedmanager.cc.
References g_nextStreamIndex, and NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::RandomVariableStream::SetStream().

static 
Get the current run number.
Definition at line 93 of file rngseedmanager.cc.
References g_rngRun, ns3::UintegerValue::Get(), ns3::GlobalValue::GetValue(), and NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::RandomVariableStream::SetStream(), and ns3::test::RandomVariable::TestCaseBase::SetTestSuiteSeed().

static 
Get the current seed value which will be used by all subsequently instantiated RandomVariableStream objects.
This returns the current seed value.
Definition at line 73 of file rngseedmanager.cc.
References g_rngSeed, ns3::UintegerValue::Get(), ns3::GlobalValue::GetValue(), and NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::RandomVariableStream::SetStream(), and ns3::test::RandomVariable::TestCaseBase::SetTestSuiteSeed().

static 
Set the run number of simulation.
In this example, N
could successively be equal to 1,2,3, etc. and the user would continue to get independent runs out of the single simulation. For this simple example, the following might work:
[in]  run  The run number. 
Definition at line 87 of file rngseedmanager.cc.
References NS_LOG_FUNCTION, and ns3::Config::SetGlobal().
Referenced by ns3::olsr::Bug780Test::DoRun(), ns3::olsr::HelloRegressionTest::DoRun(), and ns3::olsr::TcRegressionTest::DoRun().

static 
Set the seed.
This sets the global initial seed which will be used all subsequently instantiated RandomVariableStream objects.
[in]  seed  The seed value to use. 
Definition at line 81 of file rngseedmanager.cc.
References NS_LOG_FUNCTION, and ns3::Config::SetGlobal().
Referenced by ns3::olsr::Bug780Test::DoRun(), SteadyStateRandomWaypointTest::DoRun(), ns3::olsr::HelloRegressionTest::DoRun(), ns3::olsr::TcRegressionTest::DoRun(), and ns3::test::RandomVariable::TestCaseBase::SetTestSuiteSeed().

related 
The next random number generator stream number to use for automatic assignment.
Definition at line 42 of file rngseedmanager.cc.
Referenced by GetNextStreamIndex().

related 
The random number generator substream index. This is used to generate new PRNG sequences for all streams (random variables) in such a manner that the streams remain uncorrelated. Incrementing this variable can be used for independent replications.
This is accessible as "RngRun" from CommandLine.
Referenced by GetRun().

related 
The random number generator seed number global value. This is used to generate an new master PRNG sequence. It is typically not modified by user programs; the variable RngRun is preferred for independent replications.
This is accessible as "RngSeed" from CommandLine.
Referenced by GetSeed().