A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
random-variable-stream-helper.cc
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2012 University of Washington
3
*
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License version 2 as
6
* published by the Free Software Foundation;
7
*
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU General Public License for more details.
12
*
13
* You should have received a copy of the GNU General Public License
14
* along with this program; if not, write to the Free Software
15
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
*
17
*/
18
#include "
random-variable-stream-helper.h
"
19
20
#include "ns3/assert.h"
21
#include "ns3/config.h"
22
#include "ns3/log.h"
23
#include "ns3/pointer.h"
24
#include "ns3/random-variable-stream.h"
25
33
namespace
ns3
34
{
35
36
NS_LOG_COMPONENT_DEFINE
(
"RandomVariableStreamHelper"
);
37
38
int64_t
39
RandomVariableStreamHelper::AssignStreams
(std::string path, int64_t stream)
40
{
41
NS_LOG_FUNCTION_NOARGS
();
42
NS_ASSERT
(stream >= 0);
43
Config::MatchContainer
mc =
Config::LookupMatches
(path);
44
45
std::size_t i = 0;
46
for
(; i < mc.
GetN
(); ++i)
47
{
48
PointerValue
ptr = mc.
Get
(i);
49
Ptr<RandomVariableStream>
rvs = ptr.
Get
<
RandomVariableStream
>();
50
NS_LOG_DEBUG
(
"RandomVariableStream found: "
<< rvs <<
"; setting stream to "
51
<< (stream + i));
52
rvs->
SetStream
(stream + i);
53
}
54
return
i;
55
}
56
57
}
// namespace ns3
ns3::Config::MatchContainer
hold a set of objects which match a specific search string.
Definition:
config.h:195
ns3::Config::MatchContainer::Get
Ptr< Object > Get(std::size_t i) const
Definition:
config.cc:82
ns3::Config::MatchContainer::GetN
std::size_t GetN() const
Definition:
config.cc:75
ns3::PointerValue
Hold objects of type Ptr<T>.
Definition:
pointer.h:37
ns3::PointerValue::Get
Ptr< T > Get() const
Definition:
pointer.h:202
ns3::Ptr< RandomVariableStream >
ns3::RandomVariableStreamHelper::AssignStreams
static int64_t AssignStreams(std::string path, int64_t stream)
This helper method can be used to configure the stream number for one or more RNG streams.
Definition:
random-variable-stream-helper.cc:39
ns3::RandomVariableStream
The basic uniform Random Number Generator (RNG).
Definition:
random-variable-stream.h:101
ns3::RandomVariableStream::SetStream
void SetStream(int64_t stream)
Specifies the stream number for the RngStream.
Definition:
random-variable-stream.cc:113
NS_ASSERT
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file,...
Definition:
assert.h:66
ns3::Config::LookupMatches
MatchContainer LookupMatches(std::string path)
Definition:
config.cc:998
NS_LOG_COMPONENT_DEFINE
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
Definition:
log.h:202
NS_LOG_DEBUG
#define NS_LOG_DEBUG(msg)
Use NS_LOG to output a message of level LOG_DEBUG.
Definition:
log.h:268
NS_LOG_FUNCTION_NOARGS
#define NS_LOG_FUNCTION_NOARGS()
Output the name of the function.
Definition:
log-macros-enabled.h:206
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
random-variable-stream-helper.h
ns3::RandomVariableStreamHelper declaration.
src
core
helper
random-variable-stream-helper.cc
Generated on Sun Mar 3 2024 17:10:55 for ns-3 by
1.9.1