Class to calculate statistics in a "classical" sense, ie using accumulators with no special filtering beyond optional range filtering etc.
More...
|
| ClassicalStatistics () |
|
| ClassicalStatistics (const ClassicalStatistics &cs) |
| copy semantics More...
|
|
virtual | ~ClassicalStatistics () |
|
ClassicalStatistics & | operator= (const ClassicalStatistics &other) |
| copy semantics More...
|
|
virtual StatisticsAlgorithm
< CASA_STATP > * | clone () const |
| Clone this instance. More...
|
|
virtual StatisticsData::ALGORITHM | algorithm () const |
| get the algorithm that this object uses for computing stats More...
|
|
virtual AccumType | getMedian (CountedPtr< uInt64 > knownNpts=nullptr, CountedPtr< AccumType > knownMin=nullptr, CountedPtr< AccumType > knownMax=nullptr, uInt binningThreshholdSizeBytes=4096 *4096, Bool persistSortedArray=False, uInt nBins=10000) |
| In the following group of methods, if the size of the composite dataset is smaller than binningThreshholdSizeBytes , the composite dataset will be (perhaps partially) sorted and persisted in memory during the call. More...
|
|
virtual AccumType | getMedianAndQuantiles (std::map< Double, AccumType > &quantiles, const std::set< Double > &fractions, CountedPtr< uInt64 > knownNpts=nullptr, CountedPtr< AccumType > knownMin=nullptr, CountedPtr< AccumType > knownMax=nullptr, uInt binningThreshholdSizeBytes=4096 *4096, Bool persistSortedArray=False, uInt nBins=10000) |
| If one needs to compute both the median and quantile values, it is better to call getMedianAndQuantiles() rather than getMedian() and getQuantiles() separately, as the first will scan large data sets fewer times than calling the separate methods. More...
|
|
virtual AccumType | getMedianAbsDevMed (CountedPtr< uInt64 > knownNpts=nullptr, CountedPtr< AccumType > knownMin=nullptr, CountedPtr< AccumType > knownMax=nullptr, uInt binningThreshholdSizeBytes=4096 *4096, Bool persistSortedArray=False, uInt nBins=10000) |
| get the median of the absolute deviation about the median of the data. More...
|
|
virtual std::map< Double,
AccumType > | getQuantiles (const std::set< Double > &fractions, CountedPtr< uInt64 > knownNpts=nullptr, CountedPtr< AccumType > knownMin=nullptr, CountedPtr< AccumType > knownMax=nullptr, uInt binningThreshholdSizeBytes=4096 *4096, Bool persistSortedArray=False, uInt nBins=10000) |
| Get the specified quantiles. More...
|
|
virtual void | getMinMax (AccumType &mymin, AccumType &mymax) |
| scan the dataset(s) that have been added, and find the min and max. More...
|
|
virtual void | getMinMaxNpts (uInt64 &npts, AccumType &mymin, AccumType &mymax) |
|
virtual uInt64 | getNPts () |
| scan the dataset(s) that have been added, and find the number of good points. More...
|
|
virtual std::pair< Int64, Int64 > | getStatisticIndex (StatisticsData::STATS stat) |
| see base class description More...
|
|
virtual void | reset () |
| reset object to initial state. More...
|
|
virtual void | setCalculateAsAdded (Bool c) |
| Should statistics be updated with calls to addData or should they only be calculated upon calls to getStatistics() etc? Beware that calling this will automatically reinitialize the object, so that it will contain no references to data et al. More...
|
|
virtual void | setDataProvider (StatsDataProvider< CASA_STATP > *dataProvider) |
| An exception will be thrown if setCalculateAsAdded(True) has been called. More...
|
|
void | setQuantileComputer (CountedPtr< ClassicalQuantileComputer< CASA_STATP >> qc) |
| Allow derived objects to set the quantile computer object. More...
|
|
virtual void | setStatsToCalculate (std::set< StatisticsData::STATS > &stats) |
| Provide guidance to algorithms by specifying a priori which statistics the caller would like calculated. More...
|
|
virtual | ~StatisticsAlgorithm () |
|
void | addData (const DataIterator &first, uInt nr, uInt dataStride=1, Bool nrAccountsForStride=False) |
| Add a dataset to an existing set of datasets on which statistics are to be calculated. More...
|
|
void | addData (const DataIterator &first, uInt nr, const DataRanges &dataRanges, Bool isInclude=True, uInt dataStride=1, Bool nrAccountsForStride=False) |
|
void | addData (const DataIterator &first, const const Bool *&maskFirst, uInt nr, uInt dataStride=1, Bool nrAccountsForStride=False, uInt maskStride=1) |
|
void | addData (const DataIterator &first, const const Bool *&maskFirst, uInt nr, const DataRanges &dataRanges, Bool isInclude=True, uInt dataStride=1, Bool nrAccountsForStride=False, uInt maskStride=1) |
|
void | addData (const DataIterator &first, const DataIterator &weightFirst, uInt nr, uInt dataStride=1, Bool nrAccountsForStride=False) |
|
void | addData (const DataIterator &first, const DataIterator &weightFirst, uInt nr, const DataRanges &dataRanges, Bool isInclude=True, uInt dataStride=1, Bool nrAccountsForStride=False) |
|
void | addData (const DataIterator &first, const DataIterator &weightFirst, const const Bool *&maskFirst, uInt nr, uInt dataStride=1, Bool nrAccountsForStride=False, uInt maskStride=1) |
|
void | addData (const DataIterator &first, const DataIterator &weightFirst, const const Bool *&maskFirst, uInt nr, const DataRanges &dataRanges, Bool isInclude=True, uInt dataStride=1, Bool nrAccountsForStride=False, uInt maskStride=1) |
|
virtual CASA_STATP | getMedian (CountedPtr< uInt64 > knownNpts=nullptr, CountedPtr< CASA_STATP > knownMin=nullptr, CountedPtr< CASA_STATP > knownMax=nullptr, uInt binningThreshholdSizeBytes=4096 *4096, Bool persistSortedArray=False, uInt nBins=10000)=0 |
|
virtual CASA_STATP | getMedianAndQuantiles (std::map< Double, CASA_STATP > &quantileToValue, const std::set< Double > &quantiles, CountedPtr< uInt64 > knownNpts=nullptr, CountedPtr< CASA_STATP > knownMin=nullptr, CountedPtr< CASA_STATP > knownMax=nullptr, uInt binningThreshholdSizeBytes=4096 *4096, Bool persistSortedArray=False, uInt nBins=10000)=0 |
| The return value is the median; the quantiles are returned in the quantileToValue map. More...
|
|
virtual CASA_STATP | getMedianAbsDevMed (CountedPtr< uInt64 > knownNpts=nullptr, CountedPtr< CASA_STATP > knownMin=nullptr, CountedPtr< CASA_STATP > knownMax=nullptr, uInt binningThreshholdSizeBytes=4096 *4096, Bool persistSortedArray=False, uInt nBins=10000)=0 |
| get the median of the absolute deviation about the median of the data. More...
|
|
CASA_STATP | getQuantile (Double quantile, CountedPtr< uInt64 > knownNpts=nullptr, CountedPtr< CASA_STATP > knownMin=nullptr, CountedPtr< CASA_STATP > knownMax=nullptr, uInt binningThreshholdSizeBytes=4096 *4096, Bool persistSortedArray=False, uInt nBins=10000) |
| Purposefully not virtual. More...
|
|
virtual std::map< Double,
CASA_STATP > | getQuantiles (const std::set< Double > &quantiles, CountedPtr< uInt64 > npts=nullptr, CountedPtr< CASA_STATP > min=nullptr, CountedPtr< CASA_STATP > max=nullptr, uInt binningThreshholdSizeBytes=4096 *4096, Bool persistSortedArray=False, uInt nBins=10000)=0 |
| get a map of quantiles to values. More...
|
|
CASA_STATP | getStatistic (StatisticsData::STATS stat) |
| get the value of the specified statistic. More...
|
|
StatsData< CASA_STATP > | getStatistics () |
| Return statistics. More...
|
|
void | setData (const DataIterator &first, uInt nr, uInt dataStride=1, Bool nrAccountsForStride=False) |
| setdata() clears any current datasets or data provider and then adds the specified data set as the first dataset in the (possibly new) set of data sets for which statistics are to be calculated. More...
|
|
void | setData (const DataIterator &first, uInt nr, const DataRanges &dataRanges, Bool isInclude=True, uInt dataStride=1, Bool nrAccountsForStride=False) |
|
void | setData (const DataIterator &first, const const Bool *&maskFirst, uInt nr, uInt dataStride=1, Bool nrAccountsForStride=False, uInt maskStride=1) |
|
void | setData (const DataIterator &first, const const Bool *&maskFirst, uInt nr, const DataRanges &dataRanges, Bool isInclude=True, uInt dataStride=1, Bool nrAccountsForStride=False, uInt maskStride=1) |
|
void | setData (const DataIterator &first, const DataIterator &weightFirst, uInt nr, uInt dataStride=1, Bool nrAccountsForStride=False) |
|
void | setData (const DataIterator &first, const DataIterator &weightFirst, uInt nr, const DataRanges &dataRanges, Bool isInclude=True, uInt dataStride=1, Bool nrAccountsForStride=False) |
|
void | setData (const DataIterator &first, const DataIterator &weightFirst, const const Bool *&maskFirst, uInt nr, uInt dataStride=1, Bool nrAccountsForStride=False, uInt maskStride=1) |
|
void | setData (const DataIterator &first, const DataIterator &weightFirst, const const Bool *&maskFirst, uInt nr, const DataRanges &dataRanges, Bool isInclude=True, uInt dataStride=1, Bool nrAccountsForStride=False, uInt maskStride=1) |
|
|
| ClassicalStatistics (CountedPtr< ClassicalQuantileComputer< CASA_STATP > > qc) |
| This constructor should be used by derived objects in order to set the proper quantile computer object. More...
|
|
virtual void | _accumNpts (uInt64 &npts, const DataIterator &dataBegin, uInt64 nr, uInt dataStride) const |
| scan through the data set to determine the number of good (unmasked, weight > 0, within range) points. More...
|
|
virtual void | _accumNpts (uInt64 &npts, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude) const |
|
virtual void | _accumNpts (uInt64 &npts, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride) const |
|
virtual void | _accumNpts (uInt64 &npts, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride, const DataRanges &ranges, Bool isInclude) const |
|
virtual void | _accumNpts (uInt64 &npts, const DataIterator &dataBegin, const WeightsIterator &weightsBegin, uInt64 nr, uInt dataStride) const |
|
virtual void | _accumNpts (uInt64 &npts, const DataIterator &dataBegin, const WeightsIterator &weightsBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude) const |
|
virtual void | _accumNpts (uInt64 &npts, const DataIterator &dataBegin, const WeightsIterator &weightsBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride, const DataRanges &ranges, Bool isInclude) const |
|
virtual void | _accumNpts (uInt64 &npts, const DataIterator &dataBegin, const WeightsIterator &weightBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride) const |
|
void | _accumulate (StatsData< AccumType > &stats, const AccumType &datum, const LocationType &location) |
|
void | _accumulate (StatsData< AccumType > &stats, const AccumType &datum, const AccumType &weight, const LocationType &location) |
|
void | _addData () |
| Allows derived classes to do things after data is set or added. More...
|
|
void | _clearStats () |
|
Bool | _getDoMaxMin () const |
|
virtual StatsData< AccumType > | _getInitialStats () const |
|
virtual AccumType | _getStatistic (StatisticsData::STATS stat) |
|
virtual StatsData< AccumType > | _getStatistics () |
|
virtual StatsData< AccumType > & | _getStatsData () |
| Retrieve stats structure. More...
|
|
virtual const StatsData
< AccumType > & | _getStatsData () const |
|
virtual void | _minMax (CountedPtr< AccumType > &mymin, CountedPtr< AccumType > &mymax, const DataIterator &dataBegin, uInt64 nr, uInt dataStride) const |
|
virtual void | _minMax (CountedPtr< AccumType > &mymin, CountedPtr< AccumType > &mymax, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude) const |
|
virtual void | _minMax (CountedPtr< AccumType > &mymin, CountedPtr< AccumType > &mymax, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride) const |
|
virtual void | _minMax (CountedPtr< AccumType > &mymin, CountedPtr< AccumType > &mymax, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride, const DataRanges &ranges, Bool isInclude) const |
|
virtual void | _minMax (CountedPtr< AccumType > &mymin, CountedPtr< AccumType > &mymax, const DataIterator &dataBegin, const WeightsIterator &weightsBegin, uInt64 nr, uInt dataStride) const |
|
virtual void | _minMax (CountedPtr< AccumType > &mymin, CountedPtr< AccumType > &mymax, const DataIterator &dataBegin, const WeightsIterator &weightsBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude) const |
|
virtual void | _minMax (CountedPtr< AccumType > &mymin, CountedPtr< AccumType > &mymax, const DataIterator &dataBegin, const WeightsIterator &weightsBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride, const DataRanges &ranges, Bool isInclude) const |
|
virtual void | _minMax (CountedPtr< AccumType > &mymin, CountedPtr< AccumType > &mymax, const DataIterator &dataBegin, const WeightsIterator &weightBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride) const |
|
virtual void | _minMaxNpts (uInt64 &npts, CountedPtr< AccumType > &mymin, CountedPtr< AccumType > &mymax, const DataIterator &dataBegin, uInt64 nr, uInt dataStride) const |
| Sometimes we want the min, max, and npts all in one scan. More...
|
|
virtual void | _minMaxNpts (uInt64 &npts, CountedPtr< AccumType > &mymin, CountedPtr< AccumType > &mymax, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude) const |
|
virtual void | _minMaxNpts (uInt64 &npts, CountedPtr< AccumType > &mymin, CountedPtr< AccumType > &mymax, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride) const |
|
virtual void | _minMaxNpts (uInt64 &npts, CountedPtr< AccumType > &mymin, CountedPtr< AccumType > &mymax, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride, const DataRanges &ranges, Bool isInclude) const |
|
virtual void | _minMaxNpts (uInt64 &npts, CountedPtr< AccumType > &mymin, CountedPtr< AccumType > &mymax, const DataIterator &dataBegin, const WeightsIterator &weightsBegin, uInt64 nr, uInt dataStride) const |
|
virtual void | _minMaxNpts (uInt64 &npts, CountedPtr< AccumType > &mymin, CountedPtr< AccumType > &mymax, const DataIterator &dataBegin, const WeightsIterator &weightsBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude) const |
|
virtual void | _minMaxNpts (uInt64 &npts, CountedPtr< AccumType > &mymin, CountedPtr< AccumType > &mymax, const DataIterator &dataBegin, const WeightsIterator &weightsBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride, const DataRanges &ranges, Bool isInclude) const |
|
virtual void | _minMaxNpts (uInt64 &npts, CountedPtr< AccumType > &mymin, CountedPtr< AccumType > &mymax, const DataIterator &dataBegin, const WeightsIterator &weightBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride) const |
|
CountedPtr
< StatisticsAlgorithmQuantileComputer
< CASA_STATP > > | _getQuantileComputer () |
|
virtual void | _unweightedStats (StatsData< AccumType > &stats, uInt64 &ngood, LocationType &location, const DataIterator &dataBegin, uInt64 nr, uInt dataStride) |
| no weights, no mask, no ranges More...
|
|
virtual void | _unweightedStats (StatsData< AccumType > &stats, uInt64 &ngood, LocationType &location, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude) |
| no weights, no mask More...
|
|
virtual void | _unweightedStats (StatsData< AccumType > &stats, uInt64 &ngood, LocationType &location, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride) |
|
virtual void | _unweightedStats (StatsData< AccumType > &stats, uInt64 &ngood, LocationType &location, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride, const DataRanges &ranges, Bool isInclude) |
|
virtual void | _updateDataProviderMaxMin (const StatsData< AccumType > &threadStats) |
|
virtual void | _weightedStats (StatsData< AccumType > &stats, LocationType &location, const DataIterator &dataBegin, const WeightsIterator &weightsBegin, uInt64 nr, uInt dataStride) |
| has weights, but no mask, no ranges More...
|
|
virtual void | _weightedStats (StatsData< AccumType > &stats, LocationType &location, const DataIterator &dataBegin, const WeightsIterator &weightsBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude) |
|
virtual void | _weightedStats (StatsData< AccumType > &stats, LocationType &location, const DataIterator &dataBegin, const WeightsIterator &weightBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride) |
|
virtual void | _weightedStats (StatsData< AccumType > &stats, LocationType &location, const DataIterator &dataBegin, const WeightsIterator &weightBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride, const DataRanges &ranges, Bool isInclude) |
|
| StatisticsAlgorithm () |
|
| StatisticsAlgorithm (const StatisticsAlgorithm &other) |
| use copy semantics, except for the data provider which uses reference semantics More...
|
|
StatisticsAlgorithm & | operator= (const StatisticsAlgorithm &other) |
| use copy semantics, except for the data provider which uses reference semantics More...
|
|
const StatisticsDataset
< CASA_STATP > & | _getDataset () const |
| These methods are purposefully not virtual. More...
|
|
StatisticsDataset< CASA_STATP > & | _getDataset () |
|
const std::set
< StatisticsData::STATS > | _getStatsToCalculate () const |
|
virtual const std::set
< StatisticsData::STATS > & | _getUnsupportedStatistics () const |
|
void | _setUnsupportedStatistics (const std::set< StatisticsData::STATS > &stats) |
| Derived classes should normally call this in their constructors, if applicable. More...
|
|
template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>
class casacore::ClassicalStatistics< AccumType, DataIterator, MaskIterator, WeightsIterator >
Class to calculate statistics in a "classical" sense, ie using accumulators with no special filtering beyond optional range filtering etc.
setCalculateAsAdded() allows one to specify if statistics should be calculated and updated on upon each call to set/addData(). If False, statistics will be calculated only when getStatistic(), getStatistics(), or similar statistics computing methods are called. Setting this value to True allows the caller to not have to keep all the data accessible at once. Note however, that all data must be simultaneously accessible if quantile-like (eg median) calculations are desired.
Objects of this class are instantiated using a ClassicalQuantileComputer object for computation of quantile-like statistics. See the documentation of StatisticsAlgorithm for details relating QuantileComputer classes.
Definition at line 63 of file ClassicalStatistics.h.