The Random Number Generator (RNG) that returns a pattern of sequential values. More...
#include "random-variable-stream.h"
Inheritance diagram for ns3::SequentialRandomVariable:
Collaboration diagram for ns3::SequentialRandomVariable:Public Member Functions | |
| SequentialRandomVariable () | |
| Creates a sequential RNG with the default values for the sequence parameters. | |
| uint32_t | GetConsecutive () const |
| Get the number of times each distinct value of the sequence is repeated before incrementing to the next value. | |
| Ptr< RandomVariableStream > | GetIncrement () const |
| Get the increment for the sequence. | |
| virtual uint32_t | GetInteger () |
| Get the next random value drawn from the distribution. | |
| double | GetMax () const |
| Get the limit of the sequence, which is (at least) one more than the last value of the sequence. | |
| double | GetMin () const |
| Get the first value of the sequence. | |
| double | GetValue () override |
| Get the next random value drawn from the distribution. | |
Public Member Functions inherited from ns3::RandomVariableStream | |
| RandomVariableStream () | |
| Default constructor. | |
| RandomVariableStream (const RandomVariableStream &)=delete | |
| ~RandomVariableStream () override | |
| Destructor. | |
| int64_t | GetStream () const |
| Returns the stream number for the RngStream. | |
| bool | IsAntithetic () const |
| Check if antithetic values will be generated. | |
| RandomVariableStream & | operator= (const RandomVariableStream &)=delete |
| void | SetAntithetic (bool isAntithetic) |
| Specify whether antithetic values should be generated. | |
| void | SetStream (int64_t stream) |
| Specifies the stream number for the RngStream. | |
Public Member Functions inherited from ns3::Object | |
| Object () | |
| Constructor. | |
| ~Object () override | |
| Destructor. | |
| void | AggregateObject (Ptr< Object > other) |
| Aggregate two Objects together. | |
| void | Dispose () |
| Dispose of this Object. | |
| AggregateIterator | GetAggregateIterator () const |
| Get an iterator to the Objects aggregated to this one. | |
| TypeId | GetInstanceTypeId () const final |
| Get the most derived TypeId for this Object. | |
| template<typename T> | |
| Ptr< T > | GetObject () const |
| Get a pointer to the requested aggregated Object. | |
| template<> | |
| Ptr< Object > | GetObject () const |
| Specialization of () for objects of type ns3::Object. | |
| template<typename T> | |
| Ptr< T > | GetObject (TypeId tid) const |
| Get a pointer to the requested aggregated Object by TypeId. | |
| template<> | |
| Ptr< Object > | GetObject (TypeId tid) const |
| Specialization of (TypeId tid) for objects of type ns3::Object. | |
| void | Initialize () |
| Invoke DoInitialize on all Objects aggregated to this one. | |
| bool | IsInitialized () const |
| Check if the object has been initialized. | |
| void | UnidirectionalAggregateObject (Ptr< Object > other) |
| Aggregate an Object to another Object. | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
| SimpleRefCount () | |
| Default constructor. | |
| SimpleRefCount (const SimpleRefCount &o) | |
| Copy constructor. | |
| uint32_t | GetReferenceCount () const |
| Get the reference count of the object. | |
| SimpleRefCount & | operator= (const SimpleRefCount &o) |
| Assignment operator. | |
| void | Ref () const |
| Increment the reference count. | |
| void | Unref () const |
| Decrement the reference count. | |
Public Member Functions inherited from ns3::ObjectBase | |
| virtual | ~ObjectBase () |
| Virtual destructor. | |
| void | GetAttribute (std::string name, AttributeValue &value, bool permissive=false) const |
| Get the value of an attribute, raising fatal errors if unsuccessful. | |
| bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
| Get the value of an attribute without raising errors. | |
| void | SetAttribute (std::string name, const AttributeValue &value) |
| Set a single attribute, raising fatal errors if unsuccessful. | |
| bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
| Set a single attribute without raising errors. | |
| bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
| Connect a TraceSource to a Callback with a context. | |
| bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
| Connect a TraceSource to a Callback without a context. | |
| bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
| Disconnect from a TraceSource a Callback previously connected with a context. | |
| bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
| Disconnect from a TraceSource a Callback previously connected without a context. | |
Static Public Member Functions | |
| static TypeId | GetTypeId () |
| Register this type. | |
Static Public Member Functions inherited from ns3::RandomVariableStream | |
| static TypeId | GetTypeId () |
| Register this type. | |
Static Public Member Functions inherited from ns3::Object | |
| static TypeId | GetTypeId () |
| Register this type. | |
Static Public Member Functions inherited from ns3::ObjectBase | |
| static TypeId | GetTypeId () |
| Get the type ID. | |
Private Attributes | |
| uint32_t | m_consecutive |
| The number of times each distinct value is repeated. | |
| double | m_current |
| The current sequence value. | |
| uint32_t | m_currentConsecutive |
| The number of times the current distinct value has been repeated. | |
| Ptr< RandomVariableStream > | m_increment |
| Increment between distinct values. | |
| bool | m_isCurrentSet |
| Indicates if the current sequence value has been properly initialized. | |
| double | m_max |
| Strict upper bound on the sequence. | |
| double | m_min |
| The first value of the sequence. | |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::RandomVariableStream | |
| RngStream * | Peek () const |
| Get the pointer to the underlying RngStream. | |
Protected Member Functions inherited from ns3::Object | |
| Object (const Object &o) | |
| Copy an Object. | |
| virtual void | DoDispose () |
| Destructor implementation. | |
| virtual void | DoInitialize () |
| Initialize() implementation. | |
| virtual void | NotifyNewAggregate () |
| Notify all Objects aggregated to this one of a new Object being aggregated. | |
Protected Member Functions inherited from ns3::ObjectBase | |
| void | ConstructSelf (const AttributeConstructionList &attributes) |
| Complete construction of ObjectBase; invoked by derived classes. | |
| virtual void | NotifyConstructionCompleted () |
| Notifier called once the ObjectBase is fully constructed. | |
Related Symbols inherited from ns3::ObjectBase | |
| static TypeId | GetObjectIid () |
| Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. | |
The Random Number Generator (RNG) that returns a pattern of sequential values.
This RNG has four configuration attributes:
Increment.Consecutive.Min.Max.The RNG starts at the Min value. Each return value is repeated Consecutive times, before advancing by the Increment, modulo the Max. In other words when the Increment would cause the value to equal or exceed Max it is reset to Min plus the remainder:
This RNG returns values in the range 
Note the Increment attribute is itself a RandomVariableStream, which enables more varied patterns than in the example given here.
For example, if an instance is configured with:
| Attribute | Value |
|---|---|
| Min | 2 |
| Max | 13 |
| Increment | 4 |
| Consecutive | 3 |
The sequence will return this pattern:
![\[ x \in \\
\underbrace{ 2, 2, 2, }_{\times 3} \\
\underbrace{ 6, 6, 6, }_{\times 3} \\
\underbrace{10, 10, 10, }_{\times 3} \\
\underbrace{ 3, 3, 3, }_{\times 3} \\
\dots
\]](../../form_15.png)
The last value (3) is the result of the update rule in the code snippet above, 2 + (14 - 13).
This RNG ignores the antithetic setting.
ns3::SequentialRandomVariable is accessible through the following paths with Config::Set and Config::Connect:
No TraceSources are defined for this type
Group: Core
Size of this type is 128 bytes (on a 64-bit architecture).
Definition at line 405 of file random-variable-stream.h.
| ns3::SequentialRandomVariable::SequentialRandomVariable | ( | ) |
Creates a sequential RNG with the default values for the sequence parameters.
Definition at line 304 of file random-variable-stream.cc.
References m_current, m_currentConsecutive, m_isCurrentSet, and NS_LOG_FUNCTION.
Referenced by GetTypeId().
Here is the caller graph for this function:| uint32_t ns3::SequentialRandomVariable::GetConsecutive | ( | ) | const |
Get the number of times each distinct value of the sequence is repeated before incrementing to the next value.
Definition at line 333 of file random-variable-stream.cc.
References m_consecutive.
| Ptr< RandomVariableStream > ns3::SequentialRandomVariable::GetIncrement | ( | ) | const |
Get the increment for the sequence.
Definition at line 327 of file random-variable-stream.cc.
References m_increment.
|
virtual |
Get the next random value drawn from the distribution.
Reimplemented from ns3::RandomVariableStream.
Definition at line 145 of file random-variable-stream.cc.
| double ns3::SequentialRandomVariable::GetMax | ( | ) | const |
Get the limit of the sequence, which is (at least) one more than the last value of the sequence.
Definition at line 321 of file random-variable-stream.cc.
References m_max.
| double ns3::SequentialRandomVariable::GetMin | ( | ) | const |
Get the first value of the sequence.
Definition at line 315 of file random-variable-stream.cc.
References m_min.
|
static |
Register this type.
Definition at line 274 of file random-variable-stream.cc.
References ns3::RandomVariableStream::RandomVariableStream(), SequentialRandomVariable(), m_consecutive, m_increment, m_max, m_min, ns3::MakeDoubleAccessor(), ns3::MakeDoubleChecker(), ns3::MakeIntegerAccessor(), ns3::MakeIntegerChecker(), ns3::MakePointerAccessor(), ns3::MakePointerChecker(), and ns3::TypeId::SetParent().
Here is the call graph for this function:
|
overridevirtual |
Get the next random value drawn from the distribution.
Implements ns3::RandomVariableStream.
Definition at line 339 of file random-variable-stream.cc.
References ns3::RandomVariableStream::GetStream(), m_consecutive, m_current, m_currentConsecutive, m_increment, m_isCurrentSet, m_max, m_min, and NS_LOG_DEBUG.
Here is the call graph for this function:
|
private |
The number of times each distinct value is repeated.
Definition at line 461 of file random-variable-stream.h.
Referenced by GetConsecutive(), GetTypeId(), and GetValue().
|
private |
The current sequence value.
Definition at line 464 of file random-variable-stream.h.
Referenced by SequentialRandomVariable(), and GetValue().
|
private |
The number of times the current distinct value has been repeated.
Definition at line 467 of file random-variable-stream.h.
Referenced by SequentialRandomVariable(), and GetValue().
|
private |
Increment between distinct values.
Definition at line 458 of file random-variable-stream.h.
Referenced by GetIncrement(), GetTypeId(), and GetValue().
|
private |
Indicates if the current sequence value has been properly initialized.
Definition at line 470 of file random-variable-stream.h.
Referenced by SequentialRandomVariable(), and GetValue().
|
private |
Strict upper bound on the sequence.
Definition at line 455 of file random-variable-stream.h.
Referenced by GetMax(), GetTypeId(), and GetValue().
|
private |
The first value of the sequence.
Definition at line 452 of file random-variable-stream.h.
Referenced by GetMin(), GetTypeId(), and GetValue().