ANNA Suite  2020b
Multipurpose development suite for Telco applications
Public Member Functions | List of all members
anna::Average< T > Class Template Reference

#include <Average.hpp>

Public Member Functions

 Average (const char *name, const char *measure=NULL)
 
bool isEmpty () const
 
bool isZero () const
 
int size () const
 
getAccumulator () const
 
value () const
 
void clear ()
 
void setValue (const T &value, const unsigned int _n)
 
 operator T () const
 
Average< T > & operator= (const T value)
 
Average< T > & operator= (const Average< T > &other)
 
Average< T > & operator+= (const T &v)
 
Average< T > & operator-= (const T v)
 
std::string asString () const
 

Detailed Description

template<class T>
class anna::Average< T >

Template para calcular la media de una sucesion de valores numericos.

Internamente trabaja con Microsegundos porque los métodos que los proporcionan son más eficientes.

Constructor & Destructor Documentation

◆ Average()

template<class T>
anna::Average< T >::Average ( const char *  name,
const char *  measure = NULL 
)
inline

Constructor.

Parameters
nameNombre logico de esta instancia.
measureUnidad de medida. Solo se usa a efecto de salida de datos.
31  :
32  a_name(name), a_accumulator(0), a_n(0), a_measure(measure) {;}

Member Function Documentation

◆ asString()

template<class T>
std::string anna::Average< T >::asString ( void  ) const
inline

Devuelve una cadena con la informacion referente a esta clase.

Returns
Una cadena con la informacion referente a esta clase.
153  {
154  std::string msg(a_name);
155  msg += " { Accumulate: ";
156  msg += functions::asString(a_accumulator);
157 
158  if(a_measure != NULL)
159  msg += " " + std::string(a_measure);
160 
161  msg += functions::asString(" | N: %u | avg: ", a_n);
162  msg += functions::asString(value());
163 
164  if(a_measure != NULL)
165  msg += " " + std::string(a_measure);
166 
167  return msg += " }";
168  }
T value() const
Definition: Average.hpp:64
static std::string asString(const int number)

◆ clear()

template<class T>
void anna::Average< T >::clear ( )
inline

Inicializa el valor de la media.

69 { a_accumulator = 0; a_n = 0; }

◆ getAccumulator()

template<class T>
T anna::Average< T >::getAccumulator ( ) const
inline

Devuelve el valor acumulado.

Returns
el valor acumulado.
57 { return a_accumulator; }

◆ isEmpty()

template<class T>
bool anna::Average< T >::isEmpty ( ) const
inline

Devuelve el indicador de validez de esta media.

Returns
true Si la media no tiene ningun valor o false en caso contrario.
38 { return (a_n == 0); }

◆ isZero()

template<class T>
bool anna::Average< T >::isZero ( ) const
inline

Devuelve true si el valor de la media es cero, bien por no tener valores o bien porque todos ellos eran cero.

Returns
true el valor de la media es cero o false en otro caso.
45 { return a_n == 0 || a_accumulator == 0; }

◆ operator T()

template<class T>
anna::Average< T >::operator T ( ) const
inline

Devuelve la media de la sucesion de valores numericos asociados a esta.

Returns
La media de la sucesion de valores numericos asociados a esta.
Warning
Antes de invocar a este operador hay que verificar que isEmpty devuelve false.
86 { return value(); }
T value() const
Definition: Average.hpp:64

◆ operator+=()

template<class T>
Average<T>& anna::Average< T >::operator+= ( const T &  v)
inline

Incrementa la media con el valor recibido.

Parameters
vValor con el que incrementar la media.
Returns
La referencia a esta instancia.
118  {
119  const T backup(a_accumulator);
120 
121  if((a_accumulator += v) < backup) {
122  a_accumulator = v;
123  a_n = 1;
124  } else
125  a_n ++;
126 
127  return *this;
128  }

◆ operator-=()

template<class T>
Average<T>& anna::Average< T >::operator-= ( const T  v)
inline

Decrementa la media con el valor recibido.

Parameters
vValor con el que incrementar la media.
Returns
La referencia a esta instancia.
136  {
137  if(a_accumulator > v && a_n > 1) {
138  a_accumulator -= v;
139  a_n --;
140  } else {
141  a_accumulator = 0;
142  a_n = 0;
143  }
144 
145  return *this;
146  }

◆ operator=() [1/2]

template<class T>
Average<T>& anna::Average< T >::operator= ( const T  value)
inline

Inicializa el valor de esta media.

Parameters
valueValor con el que iniciar la media.
Returns
La referencia a esta instancia.
94  {
95  a_accumulator = value;
96  a_n = 1;
97  return *this;
98  }
T value() const
Definition: Average.hpp:64

◆ operator=() [2/2]

template<class T>
Average<T>& anna::Average< T >::operator= ( const Average< T > &  other)
inline

Contructor copia.

Parameters
otherObjeto del que obtener los valores.
Returns
La referencia a esta instancia.
106  {
107  a_accumulator = other.a_accumulator;
108  a_n = other.a_n;
109  return *this;
110  }

◆ setValue()

template<class T>
void anna::Average< T >::setValue ( const T &  value,
const unsigned int  _n 
)
inline

Establece manualmente el valor de la estadística.

Parameters
valueValor que tomará el acumulador de este instancia.
_nvalor que tomará el conteador de esta instancia.
76  {
77  a_accumulator = value;
78  a_n = _n;
79  }
T value() const
Definition: Average.hpp:64

◆ size()

template<class T>
int anna::Average< T >::size ( ) const
inline

Devuelve el numero de elementos de contiene la media.

Returns
el numero de elementos de contiene la media.
51 { return a_n; }

◆ value()

template<class T>
T anna::Average< T >::value ( ) const
inline

Devuelve la media de la sucesion de valores numericos asociados a esta.

Returns
La media de la sucesion de valores numericos asociados a esta.
Warning
Antes de invocar a este operador hay que verificar que isEmpty devuelve false.
64 { return (isEmpty() == true) ? T(0) : (a_accumulator / a_n); }
bool isEmpty() const
Definition: Average.hpp:38

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