HistAcc.h
Classes
- HistAcc -- Makes a histogram from input values. (full description)
template<class T> class HistAcc
Interface
- Public Members
- HistAcc(const uInt nBuff)
- HistAcc(const uInt nBuff, const T width)
- HistAcc(const T low, const T high, const T width)
- HistAcc(const HistAcc&)
- ~HistAcc()
- void copy(const HistAcc&)
- HistAcc& operator= (const HistAcc&)
- inline void put(const T v)
- void put(const Array<T>& vv)
- void put(const Block<T>& vv)
- void reset()
- void emptyBinsWithLessThan(const uInt nmin)
- Fallible<T> getPercentile(const Float p)
- Fallible<T> getMedian()
- Fallible<T> getBinWidth() const
- const StatAcc<T>& getStatistics()
- Fallible<uInt> getHistogram(Block<uInt>& bins, Block<T>& values)
- uInt getSpurious(uInt& tooSmall, uInt& tooLarge)
- void printHistogram(ostream&, const String& caption)
- Private Members
- void put1(const T)
- void defineBins(const T low, const T high, const T width)
- void initBuffer(const uInt size)
- void putBuffer(const T v)
- void clearBuffer()
- void autoDefineBins()
- void init()
- Fallible<T> getBinValue(const uInt index) const
Review Status
- Programs:
- Tests:
Prerequisite
Etymology
HistAcc stands for `Histogram Accumulator'.
Template Type Argument Requirements (T)
The accepted input types are real, i.e. Int, uInt, Float, Double,
but not Complex.
Synopsis
Makes a histogram from input values. The histogram bin parameters
may be defined, or determined from the first n input values.
The input values are fed to HistAcc via the member function `put'.
They can be fed individually, or in the form of an Array.
The histogram `bins' can be defined via the constructor in the
form of loop variables: low bin, high bin, bin-width.
It is also possible to let the bin parameters be determined
automatically from the first n (e.g. n=50) input values.
If the actual nr of input values is less than n when the histogram
is interrogated in some way, the bin parameters will be determined
from what is available.
Example
It is usually convenient to let the bins be defined automatically:
Matrix<T> vv(30,100); // an array of input values
vv = ... // fill the array
HistAcc<T> h(25); // use the first 25 values to define bins
h.put(vv); // accumulate values into histogram
h.printHistogram(cout,"vv"); // print the histogram of vv
Fallible<Double> median = h1.getMedian(); // return the median
In some cases the bin parameters are pre-defined:
Vector<T> vv(100,0); // a vector (array) of values
vv = ... // fill the vector
HistAcc<T> h(-10,20,3); // bins with width 3, between -10 and 20
h.put(vv); // accumulate values into histogram
uInt n = h.getSpurious(l,h);// get the number outside the bins
The internal statistics accumulator can be interrogated explicitly
or implicitly:
StatAcc<T> s = h.getStatistics(); // return the internal StatAcc
Fallible<Double> mean = s.getMean(); // get the mean of the input values
Fallible<Double> mean = h.getStatistics().getMean(); // alternative
Motivation
To Do
***************************************************************************
Member Description
HistAcc(const uInt nBuff, const T width)
Constructors and destructor. If the bin-parameters low, high
and width (for lowest and highest bin, and binwidth) are not
specified, they will be determined automatically from the
first nBuff input values (which are stored in a temporary buffer).
HistAcc(const T low, const T high, const T width)
Constructors and destructor. If the bin-parameters low, high
and width (for lowest and highest bin, and binwidth) are not
specified, they will be determined automatically from the
first nBuff input values (which are stored in a temporary buffer).
HistAcc(const HistAcc&)
Constructors and destructor. If the bin-parameters low, high
and width (for lowest and highest bin, and binwidth) are not
specified, they will be determined automatically from the
first nBuff input values (which are stored in a temporary buffer).
Constructors and destructor. If the bin-parameters low, high
and width (for lowest and highest bin, and binwidth) are not
specified, they will be determined automatically from the
first nBuff input values (which are stored in a temporary buffer).
HistAcc(const uInt nBuff)
Constructors and destructor. If the bin-parameters low, high
and width (for lowest and highest bin, and binwidth) are not
specified, they will be determined automatically from the
first nBuff input values (which are stored in a temporary buffer).
HistAcc& operator= (const HistAcc&)
Copy operations.
void copy(const HistAcc&)
Copy operations.
void put(const Array<T>& vv)
Accumulate (put) value(s) into the histogram.
void put(const Block<T>& vv)
Accumulate (put) value(s) into the histogram.
inline void put(const T v)
Accumulate (put) value(s) into the histogram.
Reset the contents of the bins to zero, but retain the current
bin definition.
Empty all bins whose contents is < nmin (e.g. nmin=2).
This is useful to remove `noise' values from the histogram.
The median is the 50-percentile (getPercentile(50)), i.e. the
value which has 50 percent of the input values below it.
Calculation takes into account the spurious
input values, i.e. values that fell outside the bins.
All bins have the same width.
Get the internal Statistics accumulator (see StatAcc,h).
It can be used to obtain statistics of the input values.
The return value is the nr of histogram bins, and is invalid
if the number is zero. The given blocks/vectors are resized,
and contain the contents and centre values of the bins.
uInt getSpurious(uInt& tooSmall, uInt& tooLarge)
Get the nr of `spurious' values, i.e. the ones that fell
outside the defined bins.
void printHistogram(ostream&, const String& caption)
Print histogram.
void put1(const T)
Accumulate a single value into the histogram.
void defineBins(const T low, const T high, const T width)
Definition of histogram bins with given parameters.
Internal helper functions for the automatic definition of
histogram parameters, using the contents of itsBuffer.
Internal helper functions for the automatic definition of
histogram parameters, using the contents of itsBuffer.
void initBuffer(const uInt size)
void putBuffer(const T v)
Internal helper functions for the automatic definition of
histogram parameters, using the contents of itsBuffer.
Other internal helper function(s).