Class used to store data and make an histogram of the data frequency. More...
#include "histogram.h"
Public Member Functions | |
Histogram () | |
Histogram (double binWidth) | |
Constructor. More... | |
void | AddValue (double value) |
Add a value to the histogram. More... | |
uint32_t | GetBinCount (uint32_t index) |
Get the number of data added to the bin. More... | |
double | GetBinEnd (uint32_t index) |
Returns the bin end, i.e., (index+1)*binWidth. More... | |
double | GetBinStart (uint32_t index) |
Returns the bin start, i.e., index*binWidth. More... | |
double | GetBinWidth (uint32_t index) const |
Returns the bin width. More... | |
uint32_t | GetNBins () const |
Returns the number of bins in the histogram. More... | |
void | SerializeToXmlStream (std::ostream &os, uint16_t indent, std::string elementName) const |
Serializes the results to an std::ostream in XML format. More... | |
void | SetDefaultBinWidth (double binWidth) |
Set the bin width. More... | |
Private Attributes | |
double | m_binWidth |
Bin width. More... | |
std::vector< uint32_t > | m_histogram |
Histogram data. More... | |
Class used to store data and make an histogram of the data frequency.
Data are grouped in "bins", i.e., intervals. Each value is assigned to the bin according to the following formula: floor(value/binWidth). Hence, bin i groups the data from [i*binWidth, (i+1)binWidth).
This class only handles positive bins, i.e., it does not handles negative data.
Definition at line 45 of file histogram.h.
ns3::Histogram::Histogram | ( | double | binWidth | ) |
Constructor.
binWidth | width of the histogram "bin". |
Definition at line 94 of file histogram.cc.
References m_binWidth.
ns3::Histogram::Histogram | ( | ) |
Definition at line 99 of file histogram.cc.
References DEFAULT_BIN_WIDTH, and m_binWidth.
void ns3::Histogram::AddValue | ( | double | value | ) |
Add a value to the histogram.
value | the value to add |
Definition at line 80 of file histogram.cc.
References m_binWidth, m_histogram, and NS_LOG_DEBUG.
Referenced by HistogramTestCase::DoRun(), ns3::FlowMonitor::ReportLastRx(), and RunBothModes().
uint32_t ns3::Histogram::GetBinCount | ( | uint32_t | index | ) |
Get the number of data added to the bin.
index | the bin index |
Definition at line 73 of file histogram.cc.
References m_histogram, and NS_ASSERT.
Referenced by HistogramTestCase::DoRun(), and RunBothModes().
double ns3::Histogram::GetBinEnd | ( | uint32_t | index | ) |
Returns the bin end, i.e., (index+1)*binWidth.
index | the bin index |
Definition at line 54 of file histogram.cc.
References m_binWidth.
double ns3::Histogram::GetBinStart | ( | uint32_t | index | ) |
Returns the bin start, i.e., index*binWidth.
index | the bin index |
Definition at line 48 of file histogram.cc.
References m_binWidth.
Referenced by HistogramTestCase::DoRun(), and RunBothModes().
double ns3::Histogram::GetBinWidth | ( | uint32_t | index | ) | const |
Returns the bin width.
Note that all the bins have the same width.
index | the bin index |
Definition at line 60 of file histogram.cc.
References m_binWidth.
Referenced by HistogramTestCase::DoRun(), and RunBothModes().
uint32_t ns3::Histogram::GetNBins | ( | ) | const |
Returns the number of bins in the histogram.
Definition at line 42 of file histogram.cc.
References m_histogram.
Referenced by HistogramTestCase::DoRun(), and RunBothModes().
void ns3::Histogram::SerializeToXmlStream | ( | std::ostream & | os, |
uint16_t | indent, | ||
std::string | elementName | ||
) | const |
Serializes the results to an std::ostream in XML format.
os | the output stream |
indent | number of spaces to use as base indentation level |
elementName | name of the element to serialize. |
Definition at line 105 of file histogram.cc.
References check-style::indent(), m_binWidth, and m_histogram.
void ns3::Histogram::SetDefaultBinWidth | ( | double | binWidth | ) |
Set the bin width.
Note that you can change the bin width only if the histogram is empty.
binWidth | the bin width |
Definition at line 66 of file histogram.cc.
References m_binWidth, m_histogram, and NS_ASSERT.
Referenced by ns3::FlowMonitor::GetStatsForFlow().
|
private |
Bin width.
Definition at line 117 of file histogram.h.
Referenced by Histogram(), AddValue(), GetBinEnd(), GetBinStart(), GetBinWidth(), SerializeToXmlStream(), and SetDefaultBinWidth().
|
private |
Histogram data.
Definition at line 116 of file histogram.h.
Referenced by AddValue(), GetBinCount(), GetNBins(), SerializeToXmlStream(), and SetDefaultBinWidth().