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 | Start (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) |
This method returns the TypeId associated to ns3::UniformRandomVariable. |
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:
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 145 of file random-variable-stream.cc.
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 172 of file random-variable-stream.cc.
References GetValue(), and NS_ASSERT.
Referenced by ns3::dsr::DsrRouting::CancelPacketTimerNextHop(), ns3::MinstrelWifiManager::FindRate(), 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::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 184 of file random-variable-stream.cc.
References GetValue(), m_max, and m_min.
double ns3::UniformRandomVariable::GetMax | ( | void | ) | const |
Returns the upper bound on values that can be returned by this RNG stream.
Definition at line 156 of file random-variable-stream.cc.
References m_max.
double ns3::UniformRandomVariable::GetMin | ( | void | ) | const |
Returns the lower bound on values that can be returned by this RNG stream.
Definition at line 151 of file random-variable-stream.cc.
References m_min.
|
static |
This method returns the TypeId associated to ns3::UniformRandomVariable.
This object is accessible through the following paths with Config::Set and Config::Connect:
Attributes defined for this type:
Attributes defined in parent class ns3::RandomVariableStream:
No TraceSources defined for this type.
Reimplemented from ns3::RandomVariableStream.
Definition at line 129 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 162 of file random-variable-stream.cc.
References ns3::RandomVariableStream::IsAntithetic(), ns3::RandomVariableStream::Peek(), and ns3::RngStream::RandU01().
Referenced by ns3::SteadyStateRandomWaypointMobilityModel::BeginWalk(), RandomVariableStreamUniformTestCase::ChiSquaredTest(), RandomVariableStreamUniformAntitheticTestCase::ChiSquaredTest(), ns3::JakesProcess::ConstructOscillators(), FemtocellBlockAllocator::Create(), ns3::BufferTest::DoRun(), RandomVariableStreamUniformTestCase::DoRun(), RandomVariableStreamUniformAntitheticTestCase::DoRun(), ns3::MeshWifiInterfaceMac::DoStart(), ns3::RandomDirection2dMobilityModel::DoStartPrivate(), ns3::RedQueue::DropEarly(), ns3::YansWifiPhy::EndReceive(), ns3::LteSpectrumPhy::EndRx(), 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(), NetAnimExperiment::Run(), Experiment::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::SteadyStateRandomWaypointMobilityModel::SteadyStateStart(), 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 179 of file random-variable-stream.cc.
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().