A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Portuguese
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
average.h
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2009 IITP RAS
4
*
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License version 2 as
7
* published by the Free Software Foundation;
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License
15
* along with this program; if not, write to the Free Software
16
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
*
18
* Authors: Pavel Boyko <boyko@iitp.ru>
19
* Corrections and extensions: Timo Bingmann <tbns@idlebox.net>
20
*/
21
22
#ifndef AVERAGE_H
23
#define AVERAGE_H
24
#include <cmath>
25
#include <ostream>
26
#include <limits>
27
#include <stdint.h>
28
#include "ns3/basic-data-calculators.h"
29
30
namespace
ns3
{
31
39
template
<
typename
T =
double
>
40
class
Average
41
{
42
public
:
43
Average
()
44
:
m_size
(0),
m_min
(
std
::numeric_limits<T>::max ()),
m_max
(0)
45
{
46
}
47
49
void
Update
(T
const
&
x
)
50
{
51
// Give the variance calculator the next value.
52
m_varianceCalculator
.
Update
(x);
53
54
m_min
= std::min (x,
m_min
);
55
m_max
= std::max (x,
m_max
);
56
m_size
++;
57
}
59
void
Reset
()
60
{
61
m_varianceCalculator
.
Reset
();
62
63
m_size
= 0;
64
m_min
= std::numeric_limits<T>::max ();
65
m_max
= 0;
66
}
67
68
// Sample statistics
70
uint32_t
Count
()
const
{
return
m_size
; }
72
T
Min
()
const
{
return
m_min
; }
74
T
Max
()
const
{
return
m_max
; }
76
double
Avg
()
const
{
return
m_varianceCalculator
.
getMean
();}
78
double
Mean
()
const
{
return
Avg
(); }
80
double
Var
()
const
{
return
m_varianceCalculator
.
getVariance
();}
82
double
Stddev
()
const
{
return
std::sqrt (
Var
()); }
83
97
double
Error90
()
const
{
return
1.645 * std::sqrt (
Var
() /
Count
()); }
106
double
Error95
()
const
{
return
1.960 * std::sqrt (
Var
() /
Count
()); }
115
double
Error99
()
const
{
return
2.576 * std::sqrt (
Var
() /
Count
()); }
118
private
:
119
uint32_t
m_size
;
120
T
m_min
;
121
T
m_max
;
122
MinMaxAvgTotalCalculator<double>
m_varianceCalculator
;
123
};
124
126
template
<
typename
T>
127
std::ostream & operator<< (std::ostream & os, Average<T>
const
&
x
)
128
{
129
if
(
x
.Count () != 0)
130
os <<
x
.Avg () <<
" ("
<<
x
.Stddev () <<
") ["
<<
x
.Min () <<
", "
<<
x
.Max () <<
"]"
;
131
else
132
os <<
"NA"
;
// not available
133
return
os;
134
}
135
}
136
#endif
/* AVERAGE_H */
ns3::Average::Max
T Max() const
Maximum.
Definition:
average.h:74
ns3::Average::m_min
T m_min
Minimum value observed.
Definition:
average.h:120
ns3::Average::Stddev
double Stddev() const
Standard deviation.
Definition:
average.h:82
ns3::Average::Mean
double Mean() const
Estimate of mean, alias to Avg.
Definition:
average.h:78
ns3::Average::Average
Average()
Definition:
average.h:43
std
STL namespace.
ns3::Average::Avg
double Avg() const
Sample average.
Definition:
average.h:76
ns3::MinMaxAvgTotalCalculator::getVariance
double getVariance() const
Returns the current variance.
Definition:
basic-data-calculators.h:94
ns3::Average::m_size
uint32_t m_size
Number of sampled data.
Definition:
average.h:119
ns3::MinMaxAvgTotalCalculator::Reset
void Reset()
Reinitializes all variables of MinMaxAvgTotalCalculator.
Definition:
basic-data-calculators.h:218
ns3::Average::m_max
T m_max
Maximum value observed.
Definition:
average.h:121
ns3::Average::Error95
double Error95() const
Margin of error of the mean for 95% confidence level.
Definition:
average.h:106
ns3::Average::Min
T Min() const
Minimum.
Definition:
average.h:72
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::MinMaxAvgTotalCalculator< double >
ns3::Average::Error99
double Error99() const
Margin of error of the mean for 99% confidence level.
Definition:
average.h:115
ns3::Average::Reset
void Reset()
Reset statistics.
Definition:
average.h:59
ns3::MinMaxAvgTotalCalculator::Update
void Update(const T i)
Updates all variables of MinMaxAvgTotalCalculator.
Definition:
basic-data-calculators.h:152
ns3::Average
Simple average, min, max and std.
Definition:
average.h:40
ns3::Average::Error90
double Error90() const
Margin of error of the mean for 90% confidence level.
Definition:
average.h:97
ns3::Average::m_varianceCalculator
MinMaxAvgTotalCalculator< double > m_varianceCalculator
Variance calculator.
Definition:
average.h:122
ns3::MinMaxAvgTotalCalculator::getMean
double getMean() const
Returns the mean value.
Definition:
basic-data-calculators.h:84
ns3::Average::Count
uint32_t Count() const
Sample size.
Definition:
average.h:70
ns3::Average::Var
double Var() const
Unbiased estimate of variance.
Definition:
average.h:80
ns3::Average::Update
void Update(T const &x)
Add new sample.
Definition:
average.h:49
sample-rng-plot.x
list x
Definition:
sample-rng-plot.py:26
src
stats
model
average.h
Generated on Thu Feb 5 2015 18:33:53 for ns-3 by
1.8.9.1