The uniform distribution Random Number Generator (RNG) that allows stream numbers to be set deterministically. More...
#include <random-variable-stream.h>
Public Member Functions | |
UniformRandomVariable () | |
Creates a uniform distribution RNG with the default range. More... | |
uint32_t | GetInteger (uint32_t min, uint32_t max) |
Returns a random unsigned integer from a uniform distribution over the interval [min,max] including both ends. More... | |
virtual uint32_t | GetInteger (void) |
Returns a random unsigned integer from a uniform distribution over the interval [min,max] including both ends, where min and max are the current lower and upper bounds. More... | |
double | GetMax (void) const |
Returns the upper bound on values that can be returned by this RNG stream. More... | |
double | GetMin (void) const |
Returns the lower bound on values that can be returned by this RNG stream. More... | |
double | GetValue (double min, double max) |
Returns a random double from the uniform distribution with the specified range. More... | |
virtual double | GetValue (void) |
Returns a random double from the uniform distribution with the range [min,max), where min and max are the current lower and upper bounds. More... | |
![]() | |
RandomVariableStream () | |
virtual | ~RandomVariableStream () |
int64_t | GetStream (void) const |
Returns the stream number for this RNG stream. More... | |
bool | IsAntithetic (void) const |
Returns true if antithetic values should be generated. More... | |
void | SetAntithetic (bool isAntithetic) |
Specifies whether antithetic values should be generated. More... | |
void | SetStream (int64_t stream) |
Specifies the stream number for this RNG stream. More... | |
![]() | |
Object () | |
Constructor. More... | |
virtual | ~Object () |
Destructor. More... | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. More... | |
void | Dispose (void) |
Dispose of this Object. More... | |
AggregateIterator | GetAggregateIterator (void) const |
Get an iterator to the Objects aggregated to this one. More... | |
virtual TypeId | GetInstanceTypeId (void) const |
Implement the GetInstanceTypeId method defined in ObjectBase. More... | |
template<typename T > | |
Ptr< T > | GetObject (void) const |
Get a pointer to the requested aggregated Object. More... | |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object. More... | |
void | Initialize (void) |
Invoke DoInitialize on all Objects aggregated to this one. More... | |
![]() | |
SimpleRefCount () | |
Constructor. More... | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. More... | |
uint32_t | GetReferenceCount (void) const |
Get the reference count of the object. More... | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment. More... | |
void | Ref (void) const |
Increment the reference count. More... | |
void | Unref (void) const |
Decrement the reference count. More... | |
![]() | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
void | GetAttribute (std::string name, AttributeValue &value) const |
Get the value of an attribute, raising fatal errors if unsuccessful. More... | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising erros. More... | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. More... | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. More... | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. More... | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. More... | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. More... | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. More... | |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
![]() | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
![]() | |
static void | Cleanup (void) |
Noop. More... | |
![]() | |
static TypeId | GetTypeId (void) |
Get the type ID. More... | |
Private Attributes | |
double | m_max |
The upper bound on values that can be returned by this RNG stream. More... | |
double | m_min |
The lower bound on values that can be returned by this RNG stream. More... | |
Additional Inherited Members | |
![]() | |
RngStream * | Peek (void) const |
Returns a pointer to the underlying RNG stream. More... | |
![]() | |
Object (const Object &o) | |
Copy an Object. More... | |
virtual void | DoDispose (void) |
Destructor implementation. More... | |
virtual void | DoInitialize (void) |
Initialize() implementation. More... | |
virtual void | NotifyNewAggregate (void) |
Notify all Objects aggregated to this one of a new Object being aggregated. More... | |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. More... | |
virtual void | NotifyConstructionCompleted (void) |
Notifier called once the ObjectBase is fully constructed. More... | |
![]() | |
static TypeId | GetObjectIid (void) |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. More... | |
The uniform distribution Random Number Generator (RNG) that allows stream numbers to be set deterministically.
This class supports the creation of objects that return random numbers from a fixed uniform distribution. It also supports the generation of single random numbers from various uniform distributions.
The low end of the range is always included and the high end of the range is always excluded.
Here is an example of how to use this class:
ns3::UniformRandomVariable is accessible through the following paths with Config::Set and Config::Connect:
No TraceSources are defined for this type.
Size of this type is 72 bytes (on a 64-bit architecture).
Definition at line 187 of file random-variable-stream.h.
ns3::UniformRandomVariable::UniformRandomVariable | ( | ) |
Creates a uniform distribution RNG with the default range.
Definition at line 160 of file random-variable-stream.cc.
References NS_LOG_FUNCTION.
uint32_t ns3::UniformRandomVariable::GetInteger | ( | uint32_t | min, |
uint32_t | max | ||
) |
Returns a random unsigned integer from a uniform distribution over the interval [min,max] including both ends.
min | Low end of the range. |
max | High end of the range. |
Note that antithetic values are being generated if m_isAntithetic is equal to true. If is a value that would be returned normally, then
) is the distance that
would be from
. The value returned in the antithetic case,
, is calculated as
which is the lower bound plus the distance is from the upper bound.
Definition at line 191 of file random-variable-stream.cc.
References GetValue(), NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by ns3::dsr::DsrRouting::CancelPacketTimerNextHop(), ns3::aodv::RoutingProtocol::DoInitialize(), RandomVariableStreamUniformTestCase::DoRun(), ns3::TcpOptionTSTestCase::DoRun(), ns3::MinstrelWifiManager::FindRate(), ns3::BriteTopologyHelper::GenerateBriteTopology(), ns3::TvSpectrumTransmitterHelper::GenerateRegionalTransmitterIndices(), ns3::BsmApplication::GenerateWaveTraffic(), ns3::RandomBuildingPositionAllocator::GetNext(), ns3::RealRandomStream::GetNext(), ns3::RandomRoomPositionAllocator::GetNext(), ns3::TvSpectrumTransmitterHelper::GetRandomNumTransmitters(), ns3::MinstrelWifiManager::InitSampleTable(), ns3::Ipv4GlobalRouting::LookupGlobal(), ns3::dsr::DsrRouting::PriorityScheduler(), ns3::LteUeMac::RandomlySelectAndSendRaPreamble(), ns3::dsdv::RoutingProtocol::RecvDsdv(), ns3::aodv::RoutingProtocol::RecvRequest(), ns3::dsdv::RoutingProtocol::RouteOutput(), ns3::dsr::DsrRouting::ScheduleInterRequest(), Experiment::SelectSrcDest(), ns3::dsr::DsrRouting::Send(), ns3::aodv::RoutingProtocol::SendHello(), ns3::dsr::DsrRouting::SendPacketFromBuffer(), ns3::dsdv::RoutingProtocol::SendPacketFromQueue(), ns3::dsdv::RoutingProtocol::SendPeriodicUpdate(), ns3::aodv::RoutingProtocol::SendRequest(), ns3::aodv::RoutingProtocol::SendRerrMessage(), ns3::dsdv::RoutingProtocol::Start(), and ns3::BsmApplication::StartApplication().
|
virtual |
Returns a random unsigned integer from a uniform distribution over the interval [min,max] including both ends, where min and max are the current lower and upper bounds.
Note that antithetic values are being generated if m_isAntithetic is equal to true. If is a value that would be returned normally, then
) is the distance that
would be from
. The value returned in the antithetic case,
, is calculated as
which is the lower bound plus the distance is from the upper bound.
Implements ns3::RandomVariableStream.
Definition at line 205 of file random-variable-stream.cc.
References GetValue(), m_max, m_min, and NS_LOG_FUNCTION.
double ns3::UniformRandomVariable::GetMax | ( | void | ) | const |
Returns the upper bound on values that can be returned by this RNG stream.
Definition at line 173 of file random-variable-stream.cc.
References m_max, and NS_LOG_FUNCTION.
double ns3::UniformRandomVariable::GetMin | ( | void | ) | const |
Returns the lower bound on values that can be returned by this RNG stream.
Definition at line 167 of file random-variable-stream.cc.
References m_min, and NS_LOG_FUNCTION.
|
static |
Definition at line 143 of file random-variable-stream.cc.
References m_max, m_min, ns3::MakeDoubleAccessor(), and ns3::TypeId::SetParent().
double ns3::UniformRandomVariable::GetValue | ( | double | min, |
double | max | ||
) |
Returns a random double from the uniform distribution with the specified range.
min | Low end of the range. |
max | High end of the range. |
Note that antithetic values are being generated if m_isAntithetic is equal to true. If is a value that would be returned normally, then
) is the distance that
would be from
. The value returned in the antithetic case,
, is calculated as
which is the lower bound plus the distance is from the upper bound.
Definition at line 180 of file random-variable-stream.cc.
References ns3::RandomVariableStream::IsAntithetic(), NS_LOG_FUNCTION, ns3::RandomVariableStream::Peek(), and ns3::RngStream::RandU01().
Referenced by ns3::SteadyStateRandomWaypointMobilityModel::BeginWalk(), ns3::LrWpanPhy::CheckInterference(), RngUniformTestCase::ChiSquaredTest(), RandomVariableStreamUniformTestCase::ChiSquaredTest(), RandomVariableStreamUniformAntitheticTestCase::ChiSquaredTest(), FemtocellBlockAllocator::Create(), ns3::SixLowPanNetDevice::DoFragmentation(), ns3::dot11s::HwmpProtocol::DoInitialize(), ns3::MeshWifiInterfaceMac::DoInitialize(), ns3::ApWifiMac::DoInitialize(), ns3::RipNg::DoInitialize(), ns3::RandomDirection2dMobilityModel::DoInitializePrivate(), ns3::SteadyStateRandomWaypointMobilityModel::DoInitializePrivate(), BufferTest::DoRun(), OneUniformRandomVariableManyGetValueCallsTestCase::DoRun(), LteX2HandoverTestCase::DoRun(), RandomVariableStreamUniformTestCase::DoRun(), LteX2HandoverMeasuresTestCase::DoRun(), LteDistributedFfrAreaTestCase::DoRun(), RandomVariableStreamUniformAntitheticTestCase::DoRun(), ns3::RedQueue::DropEarly(), ns3::YansWifiPhy::EndReceive(), ns3::LteSpectrumPhy::EndRxData(), ns3::LteSpectrumPhy::EndRxDlCtrl(), ns3::UanMacCw::Enqueue(), ns3::Backoff::GetBackoffTime(), ns3::Ipv6ExtensionFragment::GetFragments(), ns3::RandomBuildingPositionAllocator::GetNext(), ns3::RandomRoomPositionAllocator::GetNext(), ns3::SameRoomPositionAllocator::GetNext(), ns3::FixedRoomPositionAllocator::GetNext(), ns3::UniformDiscPositionAllocator::GetNext(), ns3::Radvd::HandleRead(), DsdvManetExample::InstallApplications(), ns3::LrWpanMac::LrWpanMac(), modify(), Tunnel::N3VirtualSend(), ns3::GeographicPositions::RandCartesianPointsAroundGeographicPoint(), ns3::LrWpanCsmaCa::RandomBackoffDelay(), ns3::RandomDirection2dMobilityModel::ResetDirectionAndSpeed(), NetAnimExperiment::Run(), Experiment::Run(), RoutingExperiment::Run(), ns3::UanPhyGen::RxEndEvent(), ns3::dsr::DsrRouting::ScheduleCachedReply(), ns3::Radvd::Send(), Experiment::SendMultiDestinations(), ns3::RipNg::SendTriggeredRouteUpdate(), ns3::RipNg::SendUnsolicitedRouteUpdate(), RoutingHelper::SetupRoutingMessages(), ns3::dot11s::PeerManagementProtocol::ShiftOwnBeacon(), ns3::SteadyStateRandomWaypointMobilityModel::Start(), ns3::SimpleOfdmWimaxPhy::StartReceive(), ns3::YansWifiPhy::StartReceivePacket(), ns3::SteadyStateRandomWaypointMobilityModel::SteadyStateBeginWalk(), NetAnimExperiment::UpdatePositions(), and Experiment::UpdatePositions().
|
virtual |
Returns a random double from the uniform distribution with the range [min,max), where min and max are the current lower and upper bounds.
Note that antithetic values are being generated if m_isAntithetic is equal to true. If is a value that would be returned normally, then
) is the distance that
would be from
. The value returned in the antithetic case,
, is calculated as
which is the lower bound plus the distance is from the upper bound.
Note that we have to re-implement this method here because the method is overloaded above for the two-argument variant and the c++ name resolution rules don't work well with overloads split between parent and child classes.
Implements ns3::RandomVariableStream.
Definition at line 199 of file random-variable-stream.cc.
References m_max, m_min, and NS_LOG_FUNCTION.
Referenced by GetInteger().
|
private |
The upper bound on values that can be returned by this RNG stream.
Definition at line 298 of file random-variable-stream.h.
Referenced by GetInteger(), GetMax(), GetTypeId(), and GetValue().
|
private |
The lower bound on values that can be returned by this RNG stream.
Definition at line 295 of file random-variable-stream.h.
Referenced by GetInteger(), GetMin(), GetTypeId(), and GetValue().