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... | |
Public Member Functions inherited from ns3::RandomVariableStream | |
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... | |
Public Member Functions inherited from ns3::Object | |
Object () | |
virtual | ~Object () |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
Run the DoDispose methods of this object and all the objects aggregated to it. More... | |
AggregateIterator | GetAggregateIterator (void) const |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Initialize (void) |
This method calls the virtual DoInitialize method on all the objects aggregated to this object. More... | |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
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... | |
Public Member Functions inherited from ns3::ObjectBase | |
virtual | ~ObjectBase () |
Virtual destructor. More... | |
void | GetAttribute (std::string name, AttributeValue &value) const |
bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
void | SetAttribute (std::string name, const AttributeValue &value) |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::RandomVariableStream | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId (void) |
Register this type. More... | |
Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
static void | Cleanup (void) |
Noop. More... | |
Static Public Member Functions inherited from ns3::ObjectBase | |
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 | |
Protected Member Functions inherited from ns3::RandomVariableStream | |
RngStream * | Peek (void) const |
Returns a pointer to the underlying RNG stream. More... | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
virtual void | DoDispose (void) |
This method is called by Object::Dispose or by the object's destructor, whichever comes first. More... | |
virtual void | DoInitialize (void) |
This method is called only once by Object::Initialize. More... | |
virtual void | NotifyNewAggregate (void) |
This method is invoked whenever two sets of objects are aggregated together. More... | |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
This method is invoked once all member attributes have been initialized. 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.
Definition at line 183 of file random-variable-stream.h.
ns3::UniformRandomVariable::UniformRandomVariable | ( | ) |
Creates a uniform distribution RNG with the default range.
Definition at line 154 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 185 of file random-variable-stream.cc.
References GetValue(), NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by ns3::dsr::DsrRouting::CancelPacketTimerNextHop(), ns3::MinstrelWifiManager::FindRate(), ns3::BriteTopologyHelper::GenerateBriteTopology(), ns3::RandomBuildingPositionAllocator::GetNext(), ns3::RealRandomStream::GetNext(), ns3::RandomRoomPositionAllocator::GetNext(), ns3::MinstrelWifiManager::InitSampleTable(), ns3::Ipv4GlobalRouting::LookupGlobal(), main(), 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::dsr::DsrRouting::SendRerrWhenBreaksLinkToNextHop(), ns3::aodv::RoutingProtocol::SetIpv4(), and ns3::dsdv::RoutingProtocol::Start().
|
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 199 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 167 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 161 of file random-variable-stream.cc.
References m_min, and NS_LOG_FUNCTION.
|
static |
Definition at line 138 of file random-variable-stream.cc.
References m_max, m_min, 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 174 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(), RandomVariableStreamUniformTestCase::ChiSquaredTest(), RandomVariableStreamUniformAntitheticTestCase::ChiSquaredTest(), FemtocellBlockAllocator::Create(), ns3::SixLowPanNetDevice::DoFragmentation(), ns3::MeshWifiInterfaceMac::DoInitialize(), ns3::ApWifiMac::DoInitialize(), ns3::RandomDirection2dMobilityModel::DoInitializePrivate(), ns3::SteadyStateRandomWaypointMobilityModel::DoInitializePrivate(), BufferTest::DoRun(), OneUniformRandomVariableManyGetValueCallsTestCase::DoRun(), ns3::LteX2HandoverTestCase::DoRun(), RandomVariableStreamUniformTestCase::DoRun(), ns3::LteX2HandoverMeasuresTestCase::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(), main(), ns3::RandomDirection2dMobilityModel::ResetDirectionAndSpeed(), NetAnimExperiment::Run(), Experiment::Run(), RoutingExperiment::Run(), ns3::UanPhyGen::RxEndEvent(), ns3::dsr::DsrRouting::ScheduleCachedReply(), ns3::Radvd::Send(), Experiment::SendMultiDestinations(), ns3::dot11s::HwmpProtocol::SetRoot(), ns3::dot11s::PeerManagementProtocol::ShiftOwnBeacon(), ns3::SteadyStateRandomWaypointMobilityModel::Start(), ns3::SimpleOfdmWimaxPhy::StartReceive(), ns3::SteadyStateRandomWaypointMobilityModel::SteadyStateBeginWalk(), ns3::AnimationInterface::UpdatePosition(), 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 193 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 294 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 291 of file random-variable-stream.h.
Referenced by GetInteger(), GetMin(), GetTypeId(), and GetValue().