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
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
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
69
//\{
71
uint32_t
Count
()
const
{
return
m_size
; }
73
T
Min
()
const
{
return
m_min
; }
75
T
Max
()
const
{
return
m_max
; }
77
double
Avg
()
const
{
return
m_varianceCalculator
.
getMean
();}
79
double
Mean
()
const
{
return
Avg
(); }
81
double
Var
()
const
{
return
m_varianceCalculator
.
getVariance
();}
83
double
Stddev
()
const
{
return
std::sqrt (
Var
()); }
84
//\}
85
94
//\{
96
double
Error90
()
const
{
return
1.645 * std::sqrt (
Var
() /
Count
()); }
98
double
Error95
()
const
{
return
1.960 * std::sqrt (
Var
() /
Count
()); }
100
double
Error99
()
const
{
return
2.576 * std::sqrt (
Var
() /
Count
()); }
101
//\}
102
103
private
:
104
uint32_t
m_size
;
105
T
m_min
;
106
T
m_max
;
107
MinMaxAvgTotalCalculator<double>
m_varianceCalculator
;
108
};
109
111
template
<
typename
T>
112
std::ostream & operator<< (std::ostream & os, Average<T>
const
&
x
)
113
{
114
if
(
x
.Count () != 0)
115
os <<
x
.Avg () <<
" ("
<<
x
.Stddev () <<
") ["
<<
x
.Min () <<
", "
<<
x
.Max () <<
"]"
;
116
else
117
os <<
"NA"
;
// not available
118
return
os;
119
}
120
}
121
#endif
/* AVERAGE_H */
ns3::Average::Max
T Max() const
Maximum.
Definition:
average.h:75
ns3::Average::m_min
T m_min
Minimum value observed.
Definition:
average.h:105
ns3::Average::Stddev
double Stddev() const
Standard deviation.
Definition:
average.h:83
ns3::Average::Mean
double Mean() const
Estimate of mean, alias to Avg.
Definition:
average.h:79
ns3::Average::Average
Average()
Definition:
average.h:43
ns3::Average::Avg
double Avg() const
Sample average.
Definition:
average.h:77
ns3::MinMaxAvgTotalCalculator::getVariance
double getVariance() const
Returns the current variance.
Definition:
basic-data-calculators.h:90
ns3::Average::m_size
uint32_t m_size
Number of sampled data.
Definition:
average.h:104
ns3::MinMaxAvgTotalCalculator::Reset
void Reset()
Reinitializes all variables of MinMaxAvgTotalCalculator.
Definition:
basic-data-calculators.h:214
ns3::Average::m_max
T m_max
Maximum value observed.
Definition:
average.h:106
ns3::Average::Error95
double Error95() const
Margin of error of the mean for 95% confidence level.
Definition:
average.h:98
ns3::Average::Min
T Min() const
Minimum.
Definition:
average.h:73
ns3::MinMaxAvgTotalCalculator< double >
ns3::Average::Error99
double Error99() const
Margin of error of the mean for 99% confidence level.
Definition:
average.h:100
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:148
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:96
ns3::Average::m_varianceCalculator
MinMaxAvgTotalCalculator< double > m_varianceCalculator
Variance calculator.
Definition:
average.h:107
ns3::MinMaxAvgTotalCalculator::getMean
double getMean() const
Returns the mean value.
Definition:
basic-data-calculators.h:80
ns3::Average::Count
uint32_t Count() const
Sample size.
Definition:
average.h:71
ns3::Average::Var
double Var() const
Unbiased estimate of variance.
Definition:
average.h:81
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 Sat Apr 19 2014 14:07:08 for ns-3 by
1.8.6