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. | |
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. | |
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. | |
double | GetMax (void) const |
Returns the upper bound on values that can be returned by this RNG stream. | |
double | GetMin (void) const |
Returns the lower bound on values that can be returned by this RNG stream. | |
double | GetValue (double min, double max) |
Returns a random double from the uniform distribution with the specified range. | |
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. | |
![]() | |
RandomVariableStream () | |
virtual | ~RandomVariableStream () |
int64_t | GetStream (void) const |
Returns the stream number for this RNG stream. | |
bool | IsAntithetic (void) const |
Returns true if antithetic values should be generated. | |
void | SetAntithetic (bool isAntithetic) |
Specifies whether antithetic values should be generated. | |
void | SetStream (int64_t stream) |
Specifies the stream number for this RNG stream. | |
![]() | |
Object () | |
virtual | ~Object () |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
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) |
![]() | |
SimpleRefCount () | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
![]() | |
virtual | ~ObjectBase () |
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) |
Private Attributes | |
double | m_max |
The upper bound on values that can be returned by this RNG stream. | |
double | m_min |
The lower bound on values that can be returned by this RNG stream. |
Additional Inherited Members | |
![]() | |
RngStream * | Peek (void) const |
Returns a pointer to the underlying RNG stream. |
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 153 of file random-variable-stream.h.
ns3::UniformRandomVariable::UniformRandomVariable | ( | ) |
Creates a uniform distribution RNG with the default range.
Definition at line 152 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 183 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::aodv::RoutingProtocol::HelloTimerExpire(), 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(), ns3::dsr::DsrRouting::Send(), ns3::dsr::DsrRouting::SendPacketFromBuffer(), ns3::dsdv::RoutingProtocol::SendPacketFromQueue(), ns3::dsdv::RoutingProtocol::SendPeriodicUpdate(), ns3::aodv::RoutingProtocol::SendRequest(), 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 197 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 165 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 159 of file random-variable-stream.cc.
References m_min, and NS_LOG_FUNCTION.
|
static |
Reimplemented from ns3::RandomVariableStream.
Definition at line 136 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 172 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(), ns3::JakesProcess::ConstructOscillators(), FemtocellBlockAllocator::Create(), ns3::MeshWifiInterfaceMac::DoInitialize(), ns3::RandomDirection2dMobilityModel::DoInitializePrivate(), ns3::SteadyStateRandomWaypointMobilityModel::DoInitializePrivate(), BufferTest::DoRun(), OneUniformRandomVariableManyGetValueCallsTestCase::DoRun(), ns3::LteX2HandoverTestCase::DoRun(), RandomVariableStreamUniformTestCase::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::UniformDiscPositionAllocator::GetNext(), ns3::Radvd::HandleRead(), DsdvManetExample::InstallApplications(), main(), ns3::RandomDirection2dMobilityModel::ResetDirectionAndSpeed(), Experiment::Run(), NetAnimExperiment::Run(), ns3::UanPhyGen::RxEndEvent(), ns3::dsr::DsrRouting::ScheduleCachedReply(), ns3::Radvd::Send(), 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 191 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 264 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 261 of file random-variable-stream.h.
Referenced by GetInteger(), GetMin(), GetTypeId(), and GetValue().