A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::Histogram Class Reference

Class used to store data and make an histogram of the data frequency. More...

#include <histogram.h>

+ Collaboration diagram for ns3::Histogram:

Public Member Functions

 Histogram (double binWidth)
 Constructor. More...
 
 Histogram ()
 
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, int 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...
 

Detailed Description

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.

Todo:
Add support for negative data.
Todo:
Add method(s) to estimate $N$, $\mu$, and $s^2$ from the histogram, see http://www.dspguide.com/ch2/4.htm

Definition at line 45 of file histogram.h.

Constructor & Destructor Documentation

ns3::Histogram::Histogram ( double  binWidth)

Constructor.

Parameters
binWidthwidth of the histogram "bin".

Definition at line 95 of file histogram.cc.

References m_binWidth.

ns3::Histogram::Histogram ( )

Definition at line 100 of file histogram.cc.

References DEFAULT_BIN_WIDTH, and m_binWidth.

Member Function Documentation

void ns3::Histogram::AddValue ( double  value)

Add a value to the histogram.

Parameters
valuethe value to add

Definition at line 81 of file histogram.cc.

References m_binWidth, m_histogram, and NS_LOG_DEBUG.

Referenced by ns3::HistogramTestCase::DoRun(), and ns3::FlowMonitor::ReportLastRx().

+ Here is the caller graph for this function:

uint32_t ns3::Histogram::GetBinCount ( uint32_t  index)

Get the number of data added to the bin.

Parameters
indexthe bin index
Returns
the number of data added to the bin

Definition at line 74 of file histogram.cc.

References m_histogram, and NS_ASSERT.

Referenced by ns3::HistogramTestCase::DoRun().

+ Here is the caller graph for this function:

double ns3::Histogram::GetBinEnd ( uint32_t  index)

Returns the bin end, i.e., (index+1)*binWidth.

Parameters
indexthe bin index
Returns
the bin start

Definition at line 55 of file histogram.cc.

References m_binWidth.

double ns3::Histogram::GetBinStart ( uint32_t  index)

Returns the bin start, i.e., index*binWidth.

Parameters
indexthe bin index
Returns
the bin start

Definition at line 49 of file histogram.cc.

References m_binWidth.

Referenced by ns3::HistogramTestCase::DoRun().

+ Here is the caller graph for this function:

double ns3::Histogram::GetBinWidth ( uint32_t  index) const

Returns the bin width.

Note that all the bins have the same width.

Parameters
indexthe bin index
Returns
the bin width

Definition at line 61 of file histogram.cc.

References m_binWidth.

Referenced by ns3::HistogramTestCase::DoRun().

+ Here is the caller graph for this function:

uint32_t ns3::Histogram::GetNBins ( ) const

Returns the number of bins in the histogram.

Returns
the number of bins in the histogram

Definition at line 43 of file histogram.cc.

References m_histogram.

Referenced by ns3::HistogramTestCase::DoRun().

+ Here is the caller graph for this function:

void ns3::Histogram::SerializeToXmlStream ( std::ostream &  os,
int  indent,
std::string  elementName 
) const

Serializes the results to an std::ostream in XML format.

Parameters
osthe output stream
indentnumber of spaces to use as base indentation level
elementNamename of the element to serialize.

Definition at line 107 of file histogram.cc.

References 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.

Parameters
binWidththe bin width

Definition at line 67 of file histogram.cc.

References m_binWidth, m_histogram, and NS_ASSERT.

Referenced by ns3::FlowMonitor::GetStatsForFlow().

+ Here is the caller graph for this function:

Member Data Documentation

double ns3::Histogram::m_binWidth
private
std::vector<uint32_t> ns3::Histogram::m_histogram
private

Histogram data.

Definition at line 116 of file histogram.h.

Referenced by AddValue(), GetBinCount(), GetNBins(), SerializeToXmlStream(), and SetDefaultBinWidth().


The documentation for this class was generated from the following files: