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
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
99
double
Error90
()
const
{
return
1.645 * std::sqrt (
Var
() /
Count
()); }
110
double
Error95
()
const
{
return
1.960 * std::sqrt (
Var
() /
Count
()); }
122
double
Error99
()
const
{
return
2.576 * std::sqrt (
Var
() /
Count
()); }
125
private
:
126
uint32_t
m_size
;
127
T
m_min
;
128
T
m_max
;
129
MinMaxAvgTotalCalculator<double>
m_varianceCalculator
;
130
};
131
133
template
<
typename
T>
134
std::ostream & operator<< (std::ostream & os, Average<T>
const
&
x
)
135
{
136
if
(
x
.Count () != 0)
137
os <<
x
.Avg () <<
" ("
<<
x
.Stddev () <<
") ["
<<
x
.Min () <<
", "
<<
x
.Max () <<
"]"
;
138
else
139
os <<
"NA"
;
// not available
140
return
os;
141
}
142
}
143
#endif
/* AVERAGE_H */
ns3::Average::Max
T Max() const
Maximum.
Definition:
average.h:74
min
#define min(a, b)
Definition:
80211b.c:44
ns3::Average::m_min
T m_min
Minimum value observed.
Definition:
average.h:127
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
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:101
ns3::Average::m_size
uint32_t m_size
Number of sampled data.
Definition:
average.h:126
max
#define max(a, b)
Definition:
80211b.c:45
ns3::MinMaxAvgTotalCalculator::Reset
void Reset()
Reinitializes all variables of MinMaxAvgTotalCalculator.
Definition:
basic-data-calculators.h:241
ns3::Average::m_max
T m_max
Maximum value observed.
Definition:
average.h:128
ns3::Average::Error95
double Error95() const
Margin of error of the mean for 95% confidence level.
Definition:
average.h:110
ns3::Average::Min
T Min() const
Minimum.
Definition:
average.h:72
ns3::MinMaxAvgTotalCalculator< double >
ns3::Average::Error99
double Error99() const
Margin of error of the mean for 99% confidence level.
Definition:
average.h:122
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:175
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:99
ns3::Average::m_varianceCalculator
MinMaxAvgTotalCalculator< double > m_varianceCalculator
Variance calculator.
Definition:
average.h:129
ns3::MinMaxAvgTotalCalculator::getMean
double getMean() const
Returns the mean value.
Definition:
basic-data-calculators.h:91
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 Wed Jul 6 2016 17:11:39 for ns-3 by
1.8.6