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
44
template
<
typename
T =
double
>
45
class
Average
46
{
47
public
:
48
Average
()
49
:
m_size
(0),
m_min
(std::numeric_limits<T>::max ()),
m_max
(0)
50
{
51
}
52
54
void
Update
(T
const
&
x
)
55
{
56
// Give the variance calculator the next value.
57
m_varianceCalculator
.
Update
(x);
58
59
m_min
= std::min (x,
m_min
);
60
m_max
= std::max (x,
m_max
);
61
m_size
++;
62
}
64
void
Reset
()
65
{
66
m_varianceCalculator
.
Reset
();
67
68
m_size
= 0;
69
m_min
= std::numeric_limits<T>::max ();
70
m_max
= 0;
71
}
72
74
//\{
76
uint32_t
Count
()
const
{
return
m_size
; }
78
T
Min
()
const
{
return
m_min
; }
80
T
Max
()
const
{
return
m_max
; }
82
double
Avg
()
const
{
return
m_varianceCalculator
.
getMean
();}
84
double
Mean
()
const
{
return
Avg
(); }
86
double
Var
()
const
{
return
m_varianceCalculator
.
getVariance
();}
88
double
Stddev
()
const
{
return
std::sqrt (
Var
()); }
89
//\}
90
99
//\{
101
double
Error90
()
const
{
return
1.645 * std::sqrt (
Var
() /
Count
()); }
103
double
Error95
()
const
{
return
1.960 * std::sqrt (
Var
() /
Count
()); }
105
double
Error99
()
const
{
return
2.576 * std::sqrt (
Var
() /
Count
()); }
106
//\}
107
108
private
:
109
uint32_t
m_size
;
110
T
m_min
,
m_max
;
111
MinMaxAvgTotalCalculator<double>
m_varianceCalculator
;
112
};
113
115
template
<
typename
T>
116
std::ostream & operator<< (std::ostream & os, Average<T>
const
&
x
)
117
{
118
if
(
x
.Count () != 0)
119
os <<
x
.Avg () <<
" ("
<<
x
.Stddev () <<
") ["
<<
x
.Min () <<
", "
<<
x
.Max () <<
"]"
;
120
else
121
os <<
"NA"
;
// not available
122
return
os;
123
}
124
}
125
#endif
/* AVERAGE_H */
ns3::Average::Max
T Max() const
Maximum.
Definition:
average.h:80
ns3::Average::m_min
T m_min
Definition:
average.h:110
ns3::Average::Stddev
double Stddev() const
Standard deviation.
Definition:
average.h:88
ns3::Average::Mean
double Mean() const
Estimate of mean, alias to Avg.
Definition:
average.h:84
ns3::Average::Average
Average()
Definition:
average.h:48
ns3::Average::Avg
double Avg() const
Sample average.
Definition:
average.h:82
ns3::MinMaxAvgTotalCalculator::getVariance
double getVariance() const
Definition:
basic-data-calculators.h:54
ns3::Average::m_size
uint32_t m_size
Definition:
average.h:109
ns3::MinMaxAvgTotalCalculator::Reset
void Reset()
Definition:
basic-data-calculators.h:174
ns3::Average::m_max
T m_max
Definition:
average.h:110
ns3::Average::Error95
double Error95() const
Margin of error of the mean for 95% confidence level.
Definition:
average.h:103
ns3::Average::Min
T Min() const
Minimum.
Definition:
average.h:78
ns3::MinMaxAvgTotalCalculator< double >
ns3::Average::Error99
double Error99() const
Margin of error of the mean for 99% confidence level.
Definition:
average.h:105
ns3::Average::Reset
void Reset()
Reset statistics.
Definition:
average.h:64
ns3::MinMaxAvgTotalCalculator::Update
void Update(const T i)
Definition:
basic-data-calculators.h:108
ns3::Average
Definition:
average.h:45
ns3::Average::Error90
double Error90() const
Margin of error of the mean for 90% confidence level.
Definition:
average.h:101
ns3::Average::m_varianceCalculator
MinMaxAvgTotalCalculator< double > m_varianceCalculator
Definition:
average.h:111
ns3::MinMaxAvgTotalCalculator::getMean
double getMean() const
Definition:
basic-data-calculators.h:52
ns3::Average::Count
uint32_t Count() const
Sample size.
Definition:
average.h:76
ns3::Average::Var
double Var() const
Unbiased estimate of variance.
Definition:
average.h:86
ns3::Average::Update
void Update(T const &x)
Add new sample.
Definition:
average.h:54
sample-rng-plot.x
list x
Definition:
sample-rng-plot.py:26
src
stats
model
average.h
Generated on Sat Nov 16 2013 12:55:38 for ns-3 by
1.8.5