casacore
Public Member Functions | Private Member Functions | Private Attributes | List of all members
casacore::StatAcc< T > Class Template Reference


A statistics accumulator More...

#include <StatAcc.h>

Public Member Functions

 StatAcc ()
 constructors and destructor. More...
 
 StatAcc (const StatAcc &)
 
 ~StatAcc ()
 
void reset ()
 Reset or copy the accumulator attributes. More...
 
void copy (const StatAcc &)
 
StatAccoperator= (const StatAcc &)
 Operators for adding and copying accumulators. More...
 
StatAcc operator+ (const StatAcc &)
 
StatAccoperator+= (const StatAcc &)
 
void put (const T v)
 Accumulate input value(s) v with weight w. More...
 
void put (const T v, const Float w)
 
void put (const Array< T > &v)
 
void put (const Array< T > &v, const Array< Float > &w)
 
void put (const Block< T > &v)
 
void put (const Block< T > &v, const Block< Float > &w)
 
Double getWtot () const
 Get statistics results one at a time. More...
 
uInt getCount () const
 
Fallible< DoublegetMin () const
 
Fallible< DoublegetMax () const
 
Fallible< DoublegetMean () const
 
Fallible< DoublegetRms () const
 
Fallible< DoublegetVariance () const
 
Fallible< DoublegetRmsAbs () const
 
void printSummaryList (std::ostream &, const String &caption) const
 Print summary of accumulated statistics. More...
 
void printSummaryLine (std::ostream &, const String &caption) const
 
void printSummaryLineHeader (std::ostream &, const String &caption) const
 

Private Member Functions

void put1 (const T, const Float)
 Accumulate a single weighted value. More...
 

Private Attributes

Double itsWtot
 
Double itsWsum
 
Double itsWssum
 
Double itsMin
 
Double itsMax
 
uInt itsCount
 

Detailed Description

template<class T>
class casacore::StatAcc< T >


A statistics accumulator

Review Status

Test programs:
tStatAcc

Prerequisite

Etymology

StatAcc stands for ‘Statistics Accumulator’.

Template Type Argument Requirements (T)

Synopsis

The (weighted) values are fed to StatAcc via the member function ‘put’. They can be fed individually, or in the form of an Array. The weights are optional (default = 1) and always have type Float.

Asking for a result does not change the internal state. The type of the returned results is always Fallible<Double>. A result is invalid if no input values with non-zero weight have been accumulated yet.

The accumulator can be re-initialised with the function ‘reset’. Accumulators can be added to each other, which is as if their combined values had been accumulated in the same accumulator.

Some functions have been provided to display a summary of the statistics results. One may choose between a one-line format (with an optional associated header line), and a list.

Example

StatAcc<T> s; // T is Float, Double, Int etc
Matrix<T> vv(2,5); // a matrix (array) of input values
Matrix<Float> wgt(2,5); // an associated matrix of weights
.... fill vv and wgt with values and individual weights..\.
s.put(vv,wgt); // accumulate the weighted values
Fallible<Double> min = s.getMin(); // return the minimum value
s.reset(); // re-initialise
s.put(vv); // if wgt omitted, default = 1.0
if (s.getRms().isValid() { // check validity of rms
... use it..\.
}
LatticeExprNode min(const LatticeExprNode &left, const LatticeExprNode &right)

Motivation

One often needs simple statistics of a series of values, which may occur by themselves or in arrays at various points in a program.
Sincs it is a pain to have to assign accumulation variables, and to write statistics evaluation code (including exceptions), this helper class is provided.

Definition at line 125 of file StatAcc.h.

Constructor & Destructor Documentation

◆ StatAcc() [1/2]

template<class T >
casacore::StatAcc< T >::StatAcc ( )

constructors and destructor.

◆ StatAcc() [2/2]

template<class T >
casacore::StatAcc< T >::StatAcc ( const StatAcc< T > &  )

◆ ~StatAcc()

template<class T >
casacore::StatAcc< T >::~StatAcc ( )
inline

Definition at line 131 of file StatAcc.h.

Member Function Documentation

◆ copy()

template<class T >
void casacore::StatAcc< T >::copy ( const StatAcc< T > &  )

◆ getCount()

template<class T >
uInt casacore::StatAcc< T >::getCount ( ) const

◆ getMax()

template<class T >
Fallible<Double> casacore::StatAcc< T >::getMax ( ) const

◆ getMean()

template<class T >
Fallible<Double> casacore::StatAcc< T >::getMean ( ) const

◆ getMin()

template<class T >
Fallible<Double> casacore::StatAcc< T >::getMin ( ) const

◆ getRms()

template<class T >
Fallible<Double> casacore::StatAcc< T >::getRms ( ) const

◆ getRmsAbs()

template<class T >
Fallible<Double> casacore::StatAcc< T >::getRmsAbs ( ) const

◆ getVariance()

template<class T >
Fallible<Double> casacore::StatAcc< T >::getVariance ( ) const

◆ getWtot()

template<class T >
Double casacore::StatAcc< T >::getWtot ( ) const

Get statistics results one at a time.

Count is the nr of values accumulated. Wtot is the sum of the weights. Rms is defined w.r.t. the mean, and is the square of Variance. RmsAbs is the root-mean-square of the absolute input values.

◆ operator+()

template<class T >
StatAcc casacore::StatAcc< T >::operator+ ( const StatAcc< T > &  )

◆ operator+=()

template<class T >
StatAcc& casacore::StatAcc< T >::operator+= ( const StatAcc< T > &  )

◆ operator=()

template<class T >
StatAcc& casacore::StatAcc< T >::operator= ( const StatAcc< T > &  )

Operators for adding and copying accumulators.

◆ printSummaryLine()

template<class T >
void casacore::StatAcc< T >::printSummaryLine ( std::ostream &  ,
const String caption 
) const

◆ printSummaryLineHeader()

template<class T >
void casacore::StatAcc< T >::printSummaryLineHeader ( std::ostream &  ,
const String caption 
) const

◆ printSummaryList()

template<class T >
void casacore::StatAcc< T >::printSummaryList ( std::ostream &  ,
const String caption 
) const

Print summary of accumulated statistics.

Line is a one-line summary, including the (short) caption. LineHeader gives a one-line explanation of the numbers. List uses a separate line for each result (mean, max etc).

◆ put() [1/6]

template<class T >
void casacore::StatAcc< T >::put ( const Array< T > &  v)

◆ put() [2/6]

template<class T >
void casacore::StatAcc< T >::put ( const Array< T > &  v,
const Array< Float > &  w 
)

◆ put() [3/6]

template<class T >
void casacore::StatAcc< T >::put ( const Block< T > &  v)

◆ put() [4/6]

template<class T >
void casacore::StatAcc< T >::put ( const Block< T > &  v,
const Block< Float > &  w 
)

◆ put() [5/6]

template<class T >
void casacore::StatAcc< T >::put ( const T  v)
inline

Accumulate input value(s) v with weight w.

If weight is omitted, the default=1.

Definition at line 205 of file StatAcc.h.

◆ put() [6/6]

template<class T >
void casacore::StatAcc< T >::put ( const T  v,
const Float  w 
)
inline

Definition at line 210 of file StatAcc.h.

◆ put1()

template<class T >
void casacore::StatAcc< T >::put1 ( const  T,
const  Float 
)
private

Accumulate a single weighted value.

◆ reset()

template<class T >
void casacore::StatAcc< T >::reset ( )

Reset or copy the accumulator attributes.

Member Data Documentation

◆ itsCount

template<class T >
uInt casacore::StatAcc< T >::itsCount
private

Definition at line 190 of file StatAcc.h.

◆ itsMax

template<class T >
Double casacore::StatAcc< T >::itsMax
private

Definition at line 189 of file StatAcc.h.

◆ itsMin

template<class T >
Double casacore::StatAcc< T >::itsMin
private

Definition at line 188 of file StatAcc.h.

◆ itsWssum

template<class T >
Double casacore::StatAcc< T >::itsWssum
private

Definition at line 187 of file StatAcc.h.

◆ itsWsum

template<class T >
Double casacore::StatAcc< T >::itsWsum
private

Definition at line 186 of file StatAcc.h.

◆ itsWtot

template<class T >
Double casacore::StatAcc< T >::itsWtot
private

Definition at line 185 of file StatAcc.h.


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