Loading...
Searching...
No Matches
casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator > Class Template Reference

This class is used internally by ClassicalStatistics objects. More...

`#include <ClassicalQuantileComputer.h>`

## Public Member Functions

| ClassicalQuantileComputer ()=delete
| ClassicalQuantileComputer (StatisticsDataset< CASA_STATP > *dataset)
| ClassicalQuantileComputer (const ClassicalQuantileComputer &other)
| copy semantics
virtual | ~ClassicalQuantileComputer ()
ClassicalQuantileComputer & | operator= (const ClassicalQuantileComputer &other)
| copy semantics
virtual StatisticsAlgorithmQuantileComputer< CASA_STATP > * | clone () const
| clone this object by returning a pointer to a copy
virtual AccumType | getMedian (uInt64 mynpts, AccumType mymin, AccumType mymax, uInt binningThreshholdSizeBytes, Bool persistSortedArray, uInt nBins)
| Caller is responsible for passing correct values of mynpts, mymin, and mymax; no checking is done for correctness in this method.
virtual AccumType | getMedianAbsDevMed (uInt64 mynpts, AccumType mymin, AccumType mymax, uInt binningThreshholdSizeBytes, Bool persistSortedArray, uInt nBins)
| get the median of the absolute deviation about the median of the data.
virtual AccumType | getMedianAndQuantiles (std::map< Double, AccumType > &quantiles, const std::set< Double > &fractions, uInt64 mynpts, AccumType mymin, AccumType mymax, uInt binningThreshholdSizeBytes, Bool persistSortedArray, uInt nBins)
| If one needs to compute both the median and QuantileComputer 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.
virtual std::map< Double, AccumType > | getQuantiles (const std::set< Double > &fractions, uInt64 mynpts, AccumType mymin, AccumType mymax, uInt binningThreshholdSizeBytes, Bool persistSortedArray, uInt nBins)
| Get the specified Quantiles.
virtual void | reset ()
| reset the private fields
Public Member Functions inherited from casacore::StatisticsAlgorithmQuantileComputer< CASA_STATP >
| StatisticsAlgorithmQuantileComputer ()=delete
virtual | ~StatisticsAlgorithmQuantileComputer ()
void | deleteSortedArray ()
| delete any (partially) sorted array
void | setDataset (StatisticsDataset< CASA_STATP > *ds)
| This must be called upon the copy or assignment of the associated statistics algorithm object.
std::vector< CASA_STATP > & | _getSortedArray ()
| FIXME make protected once refactor is complete.
void | _setSortedArray (const std::vector< CASA_STATP > &v)
| FIXME make protected once refactor is complete.
void | setMedian (std::shared_ptr< CASA_STATP > median)

## Protected Member Functions

virtual void | _findBins (std::vector< std::vector< uInt64 > > &binCounts, std::vector< std::shared_ptr< AccumType > > &sameVal, std::vector< Bool > &allSame, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const std::vector< StatsHistogram< AccumType > > &hist, const std::vector< AccumType > &maxLimit) const
| Get the counts of data within the specified histogram bins.
virtual void | _findBins (std::vector< std::vector< uInt64 > > &binCounts, std::vector< std::shared_ptr< AccumType > > &sameVal, std::vector< Bool > &allSame, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude, const std::vector< StatsHistogram< AccumType > > &hist, const std::vector< AccumType > &maxLimit) const
virtual void | _findBins (std::vector< std::vector< uInt64 > > &binCounts, std::vector< std::shared_ptr< AccumType > > &sameVal, std::vector< Bool > &allSame, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride, const std::vector< StatsHistogram< AccumType > > &hist, const std::vector< AccumType > &maxLimit) const

virtual void

_findBins (std::vector< std::vector< uInt64 > > &binCounts, std::vector< std::shared_ptr< AccumType > > &sameVal, std::vector< Bool > &allSame, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride, const DataRanges &ranges, Bool isInclude, const std::vector< StatsHistogram< AccumType > > &hist, const std::vector< AccumType > &maxLimit) const

virtual void | _findBins (std::vector< std::vector< uInt64 > > &binCounts, std::vector< std::shared_ptr< AccumType > > &sameVal, std::vector< Bool > &allSame, const DataIterator &dataBegin, const WeightsIterator &weightsBegin, uInt64 nr, uInt dataStride, const std::vector< StatsHistogram< AccumType > > &hist, const std::vector< AccumType > &maxLimit) const
virtual void | _findBins (std::vector< std::vector< uInt64 > > &binCounts, std::vector< std::shared_ptr< AccumType > > &sameVal, std::vector< Bool > &allSame, const DataIterator &dataBegin, const WeightsIterator &weightsBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude, const std::vector< StatsHistogram< AccumType > > &hist, const std::vector< AccumType > &maxLimit) const

virtual void

_findBins (std::vector< std::vector< uInt64 > > &binCounts, std::vector< std::shared_ptr< AccumType > > &sameVal, std::vector< Bool > &allSame, const DataIterator &dataBegin, const WeightsIterator &weightsBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride, const DataRanges &ranges, Bool isInclude, const std::vector< StatsHistogram< AccumType > > &hist, const std::vector< AccumType > &maxLimit) const

virtual void

_findBins (std::vector< std::vector< uInt64 > > &binCounts, std::vector< std::shared_ptr< AccumType > > &sameVal, std::vector< Bool > &allSame, const DataIterator &dataBegin, const WeightsIterator &weightBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride, const std::vector< StatsHistogram< AccumType > > &hist, const std::vector< AccumType > &maxLimit) const

virtual void | _populateArray (std::vector< AccumType > &ary, const DataIterator &dataBegin, uInt64 nr, uInt dataStride) const
| populate an unsorted array with valid data.
virtual void | _populateArray (std::vector< AccumType > &ary, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude) const
| ranges
virtual void | _populateArray (std::vector< AccumType > &ary, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride) const
virtual void | _populateArray (std::vector< AccumType > &ary, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride, const DataRanges &ranges, Bool isInclude) const
| mask and ranges
virtual void | _populateArray (std::vector< AccumType > &ary, const DataIterator &dataBegin, const WeightsIterator &weightsBegin, uInt64 nr, uInt dataStride) const
| weights
virtual void | _populateArray (std::vector< AccumType > &ary, const DataIterator &dataBegin, const WeightsIterator &weightsBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude) const
| weights and ranges
virtual void | _populateArray (std::vector< AccumType > &ary, const DataIterator &dataBegin, const WeightsIterator &weightBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride) const
| weights and mask
virtual void | _populateArray (std::vector< AccumType > &ary, const DataIterator &dataBegin, const WeightsIterator &weightBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride, const DataRanges &ranges, Bool isInclude) const
| weights, mask, ranges
virtual void | _populateArrays (std::vector< std::vector< AccumType > > &arys, uInt64 &currentCount, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const IncludeLimits &includeLimits, uInt64 maxCount) const
| Create a std::vector of unsorted arrays, one array for each bin defined by includeLimits.
virtual void | _populateArrays (std::vector< std::vector< AccumType > > &arys, uInt64 &currentCount, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude, const IncludeLimits &includeLimits, uInt64 maxCount) const
| ranges
virtual void | _populateArrays (std::vector< std::vector< AccumType > > &arys, uInt64 &currentCount, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride, const IncludeLimits &includeLimits, uInt64 maxCount) const
virtual void | _populateArrays (std::vector< std::vector< AccumType > > &arys, uInt64 &currentCount, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride, const DataRanges &ranges, Bool isInclude, const IncludeLimits &includeLimits, uInt64 maxCount) const
| mask and ranges
virtual void | _populateArrays (std::vector< std::vector< AccumType > > &arys, uInt64 &currentCount, const DataIterator &dataBegin, const WeightsIterator &weightsBegin, uInt64 nr, uInt dataStride, const IncludeLimits &includeLimits, uInt64 maxCount) const
| weights
virtual void | _populateArrays (std::vector< std::vector< AccumType > > &arys, uInt64 &currentCount, const DataIterator &dataBegin, const WeightsIterator &weightsBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude, const IncludeLimits &includeLimits, uInt64 maxCount) const
| weights and ranges
virtual void | _populateArrays (std::vector< std::vector< AccumType > > &arys, uInt64 &currentCount, const DataIterator &dataBegin, const WeightsIterator &weightBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride, const IncludeLimits &includeLimits, uInt64 maxCount) const
| weights and mask
virtual void | _populateArrays (std::vector< std::vector< AccumType > > &arys, uInt64 &currentCount, const DataIterator &dataBegin, const WeightsIterator &weightBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride, const DataRanges &ranges, Bool isInclude, const IncludeLimits &includeLimits, uInt64 maxCount) const
| weights, mask, ranges
virtual Bool | _populateTestArray (std::vector< AccumType > &ary, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, uInt maxElements) const
| no weights, no mask, no ranges
virtual Bool | _populateTestArray (std::vector< AccumType > &ary, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude, uInt maxElements) const
| ranges
virtual Bool | _populateTestArray (std::vector< AccumType > &ary, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride, uInt maxElements) const
| mask
virtual Bool | _populateTestArray (std::vector< AccumType > &ary, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride, const DataRanges &ranges, Bool isInclude, uInt maxElements) const
| mask and ranges
virtual Bool | _populateTestArray (std::vector< AccumType > &ary, const DataIterator &dataBegin, const WeightsIterator &weightBegin, uInt64 nr, uInt dataStride, uInt maxElements) const
| weights
virtual Bool | _populateTestArray (std::vector< AccumType > &ary, const DataIterator &dataBegin, const WeightsIterator &weightsBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude, uInt maxElements) const
| weights and ranges
virtual Bool | _populateTestArray (std::vector< AccumType > &ary, const DataIterator &dataBegin, const WeightsIterator &weightBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride, uInt maxElements) const
| weights and mask
virtual Bool | _populateTestArray (std::vector< AccumType > &ary, const DataIterator &dataBegin, const WeightsIterator &weightBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride, const DataRanges &ranges, Bool isInclude, uInt maxElements) const
| weights, mask, ranges
Bool | _valuesFromSortedArray (std::map< uInt64, AccumType > &values, uInt64 mynpts, const std::set< uInt64 > &indices, uInt64 maxArraySize, Bool persistSortedArray)
| get values from sorted array if the array is small enough to be held in memory.
Protected Member Functions inherited from casacore::StatisticsAlgorithmQuantileComputer< CASA_STATP >
StatisticsAlgorithmQuantileComputer & | operator= (const StatisticsAlgorithmQuantileComputer &other)
| use copy semantics.
StatisticsDataset< CASA_STATP > * | _getDataset ()
std::shared_ptr< CASA_STATP > | _getMedian () const
std::shared_ptr< CASA_STATP > | _getMedianAbsDevMedian () const
void | _setMedianAbsDevMedian (std::shared_ptr< CASA_STATP > medAbsDevMed)

## Private Types

using | LimitPair
using | LimitPairVectorIter
using | IndexValueMap
using | IndexSet

## Private Member Functions

std::vector< std::vector< uInt64 > > | _binCounts (std::vector< std::shared_ptr< AccumType > > &sameVal, const std::vector< StatsHistogram< AccumType > > &hist)
| tally the number of data points that fall into each bin provided by hist.

void

_computeBins (std::vector< std::vector< uInt64 > > &bins, std::vector< std::shared_ptr< AccumType > > &sameVal, std::vector< Bool > &allSame, DataIterator dataIter, MaskIterator maskIter, WeightsIterator weightsIter, uInt64 count, const std::vector< StatsHistogram< AccumType > > &hist, const std::vector< AccumType > &maxLimit, const typename StatisticsDataset< CASA_STATP >::ChunkData &chunk)

void | _computeDataArray (std::vector< AccumType > &ary, DataIterator dataIter, MaskIterator maskIter, WeightsIterator weightsIter, uInt64 dataCount, const typename StatisticsDataset< CASA_STATP >::ChunkData &chunk)
void | _computeDataArrays (std::vector< std::vector< AccumType > > &arys, uInt64 &currentCount, DataIterator dataIter, MaskIterator maskIter, WeightsIterator weightsIter, uInt64 dataCount, const IncludeLimits &includeLimits, uInt64 maxCount, const typename StatisticsDataset< CASA_STATP >::ChunkData &chunk)
void | _createDataArray (std::vector< AccumType > &array)
| Create an unsorted array of the complete data set.
void | _createDataArrays (std::vector< std::vector< AccumType > > &arrays, const IncludeLimits &includeLimits, uInt64 maxCount)
std::vector< IndexValueMap > | _dataFromMultipleBins (const std::vector< StatsHistogram< AccumType > > &hist, uInt64 maxArraySize, const std::vector< IndexSet > &dataIndices, uInt nBins)
| extract data from multiple histograms given by hist.
std::vector< IndexValueMap > | _dataFromSingleBins (const std::vector< uInt64 > &binNpts, uInt64 maxArraySize, const IncludeLimits &binLimits, const std::vector< IndexSet > &dataIndices, uInt nBins)
IndexValueMap | _indicesToValues (uInt64 mynpts, AccumType mymin, AccumType mymax, uInt64 maxArraySize, const IndexSet &dataIndices, Bool persistSortedArray, uInt nBins)
| get the values for the specified indices in the sorted array of all good data

## Static Private Member Functions

static IndexSet | _medianIndices (uInt64 mynpts)
| get the index (for odd npts) or indices (for even npts) of the median of the sorted array.

## Private Attributes

Bool | _doMedAbsDevMed
AccumType | _myMedian
| for use in often repeatedly run macros

## Detailed Description

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>
class casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >

This class is used internally by ClassicalStatistics objects.

It should never be explicitly instantiated by an API developer. See the documentation of StatisticsAlgorithm for details regarding QuantileComputer classes.

Definition at line 49 of file ClassicalQuantileComputer.h.

## Member Typedef Documentation

## IndexSet

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

using casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::IndexSet

private

Definition at line 55 of file ClassicalQuantileComputer.h.

## IndexValueMap

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

using casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::IndexValueMap

private

Definition at line 54 of file ClassicalQuantileComputer.h.

## LimitPair

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

using casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::LimitPair

private

Definition at line 52 of file ClassicalQuantileComputer.h.

## LimitPairVectorIter

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

using casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::LimitPairVectorIter

private

Definition at line 53 of file ClassicalQuantileComputer.h.

## Constructor & Destructor Documentation

## ClassicalQuantileComputer() [1/3]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::ClassicalQuantileComputer | ( |  | ) |

delete

Referenced by ClassicalQuantileComputer(), and operator=().

## ClassicalQuantileComputer() [2/3]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::ClassicalQuantileComputer | ( | StatisticsDataset< CASA_STATP > * | dataset | ) |

## ClassicalQuantileComputer() [3/3]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::ClassicalQuantileComputer | ( | const ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator > & | other | ) |

copy semantics

References ClassicalQuantileComputer().

## ~ClassicalQuantileComputer()

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::~ClassicalQuantileComputer | ( |  | ) |

virtual

## Member Function Documentation

## _binCounts()

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

std::vector< std::vector< uInt64 > > casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_binCounts | ( | std::vector< std::shared_ptr< AccumType > > & | sameVal,
|  | const std::vector< StatsHistogram< AccumType > > & | hist )

private

tally the number of data points that fall into each bin provided by hist.

Any points that are less than hist.minLimit or greater than hist.minLimit + hist.nBins*hist.binWidth are not included in the counts. A data point that falls exactly on a bin boundary is considered to be in the higher index bin. sameVal will be non-null if all the good values in the histogram range are the same. In that case, the value held will be the value of each of those data points.

## _computeBins()

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_computeBins | ( | std::vector< std::vector< uInt64 > > & | bins,
|  | std::vector< std::shared_ptr< AccumType > > & | sameVal,
|  | std::vector< Bool > & | allSame,
|  | DataIterator | dataIter,
|  | MaskIterator | maskIter,
|  | WeightsIterator | weightsIter,
|  | uInt64 | count,
|  | const std::vector< StatsHistogram< AccumType > > & | hist,
|  | const std::vector< AccumType > & | maxLimit,
|  | const typename StatisticsDataset< CASA_STATP >::ChunkData & | chunk )

private

## _computeDataArray()

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_computeDataArray | ( | std::vector< AccumType > & | ary,
|  | DataIterator | dataIter,
|  | MaskIterator | maskIter,
|  | WeightsIterator | weightsIter,
|  | uInt64 | dataCount,
|  | const typename StatisticsDataset< CASA_STATP >::ChunkData & | chunk )

private

## _computeDataArrays()

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_computeDataArrays | ( | std::vector< std::vector< AccumType > > & | arys,
|  | uInt64 & | currentCount,
|  | DataIterator | dataIter,
|  | MaskIterator | maskIter,
|  | WeightsIterator | weightsIter,
|  | uInt64 | dataCount,
|  | const IncludeLimits & | includeLimits,
|  | uInt64 | maxCount,
|  | const typename StatisticsDataset< CASA_STATP >::ChunkData & | chunk )

private

References IncludeLimits.

## _createDataArray()

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_createDataArray | ( | std::vector< AccumType > & | array | ) |

private

Create an unsorted array of the complete data set.

If includeLimits is specified, only points within those limits (including min but excluding max, as per definition of bins), are included.

References casacore::array.

## _createDataArrays()

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_createDataArrays | ( | std::vector< std::vector< AccumType > > & | arrays,
|  | const IncludeLimits & | includeLimits,
|  | uInt64 | maxCount )

private

References IncludeLimits.

## _dataFromMultipleBins()

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

std::vector< IndexValueMap > casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_dataFromMultipleBins | ( | const std::vector< StatsHistogram< AccumType > > & | hist,
|  | uInt64 | maxArraySize,
|  | const std::vector< IndexSet > & | dataIndices,
|  | uInt | nBins )

private

extract data from multiple histograms given by hist.

dataIndices represent the indices of the sorted arrays of values to extract. There should be exactly one set of data indices to extract for each supplied histogram. The data indices are relative to the minimum value of the minimum bin in their respective histograms. The ordering of the maps in the returned std::vector represent the ordering of histograms in hist. hist should contain non-overlapping histograms and the histograms should be specified in ascending order.

## _dataFromSingleBins()

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

std::vector< IndexValueMap > casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_dataFromSingleBins | ( | const std::vector< uInt64 > & | binNpts,
|  | uInt64 | maxArraySize,
|  | const IncludeLimits & | binLimits,
|  | const std::vector< IndexSet > & | dataIndices,
|  | uInt | nBins )

private

References IncludeLimits.

## _findBins() [1/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_findBins | ( | std::vector< std::vector< uInt64 > > & | binCounts,
|  | std::vector< std::shared_ptr< AccumType > > & | sameVal,
|  | std::vector< Bool > & | allSame,
|  | const DataIterator & | dataBegin,
|  | const WeightsIterator & | weightBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const MaskIterator & | maskBegin,
|  | uInt | maskStride,
|  | const std::vector< StatsHistogram< AccumType > > & | hist,
|  | const std::vector< AccumType > & | maxLimit ) const

protected virtual

## _findBins() [2/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_findBins | ( | std::vector< std::vector< uInt64 > > & | binCounts,
|  | std::vector< std::shared_ptr< AccumType > > & | sameVal,
|  | std::vector< Bool > & | allSame,
|  | const DataIterator & | dataBegin,
|  | const WeightsIterator & | weightsBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const DataRanges & | ranges,
|  | Bool | isInclude,
|  | const std::vector< StatsHistogram< AccumType > > & | hist,
|  | const std::vector< AccumType > & | maxLimit ) const

protected virtual

References DataRanges.

## _findBins() [3/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_findBins | ( | std::vector< std::vector< uInt64 > > & | binCounts,
|  | std::vector< std::shared_ptr< AccumType > > & | sameVal,
|  | std::vector< Bool > & | allSame,
|  | const DataIterator & | dataBegin,
|  | const WeightsIterator & | weightsBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const MaskIterator & | maskBegin,
|  | uInt | maskStride,
|  | const DataRanges & | ranges,
|  | Bool | isInclude,
|  | const std::vector< StatsHistogram< AccumType > > & | hist,
|  | const std::vector< AccumType > & | maxLimit ) const

protected virtual

References DataRanges.

## _findBins() [4/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_findBins | ( | std::vector< std::vector< uInt64 > > & | binCounts,
|  | std::vector< std::shared_ptr< AccumType > > & | sameVal,
|  | std::vector< Bool > & | allSame,
|  | const DataIterator & | dataBegin,
|  | const WeightsIterator & | weightsBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const std::vector< StatsHistogram< AccumType > > & | hist,
|  | const std::vector< AccumType > & | maxLimit ) const

protected virtual

## _findBins() [5/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_findBins | ( | std::vector< std::vector< uInt64 > > & | binCounts,
|  | std::vector< std::shared_ptr< AccumType > > & | sameVal,
|  | std::vector< Bool > & | allSame,
|  | const DataIterator & | dataBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const DataRanges & | ranges,
|  | Bool | isInclude,
|  | const std::vector< StatsHistogram< AccumType > > & | hist,
|  | const std::vector< AccumType > & | maxLimit ) const

protected virtual

References DataRanges.

## _findBins() [6/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_findBins | ( | std::vector< std::vector< uInt64 > > & | binCounts,
|  | std::vector< std::shared_ptr< AccumType > > & | sameVal,
|  | std::vector< Bool > & | allSame,
|  | const DataIterator & | dataBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const MaskIterator & | maskBegin,
|  | uInt | maskStride,
|  | const DataRanges & | ranges,
|  | Bool | isInclude,
|  | const std::vector< StatsHistogram< AccumType > > & | hist,
|  | const std::vector< AccumType > & | maxLimit ) const

protected virtual

References DataRanges.

## _findBins() [7/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_findBins | ( | std::vector< std::vector< uInt64 > > & | binCounts,
|  | std::vector< std::shared_ptr< AccumType > > & | sameVal,
|  | std::vector< Bool > & | allSame,
|  | const DataIterator & | dataBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const MaskIterator & | maskBegin,
|  | uInt | maskStride,
|  | const std::vector< StatsHistogram< AccumType > > & | hist,
|  | const std::vector< AccumType > & | maxLimit ) const

protected virtual

## _findBins() [8/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_findBins | ( | std::vector< std::vector< uInt64 > > & | binCounts,
|  | std::vector< std::shared_ptr< AccumType > > & | sameVal,
|  | std::vector< Bool > & | allSame,
|  | const DataIterator & | dataBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const std::vector< StatsHistogram< AccumType > > & | hist,
|  | const std::vector< AccumType > & | maxLimit ) const

protected virtual

Get the counts of data within the specified histogram bins.

The number of arrays within binCounts will be equal to the number of histograms in hist. Each array within binCounts will have the same number of elements as the number of bins in its corresponding histogram in hist.

## _indicesToValues()

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

IndexValueMap casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_indicesToValues | ( | uInt64 | mynpts,
|  | AccumType | mymin,
|  | AccumType | mymax,
|  | uInt64 | maxArraySize,
|  | const IndexSet & | dataIndices,
|  | Bool | persistSortedArray,
|  | uInt | nBins )

private

get the values for the specified indices in the sorted array of all good data

## _medianIndices()

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

IndexSet casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_medianIndices | ( | uInt64 | mynpts | ) |

static private

get the index (for odd npts) or indices (for even npts) of the median of the sorted array.

## _populateArray() [1/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_populateArray | ( | std::vector< AccumType > & | ary,
|  | const DataIterator & | dataBegin,
|  | const WeightsIterator & | weightBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const MaskIterator & | maskBegin,
|  | uInt | maskStride ) const

protected virtual

weights and mask

## _populateArray() [2/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_populateArray | ( | std::vector< AccumType > & | ary,
|  | const DataIterator & | dataBegin,
|  | const WeightsIterator & | weightBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const MaskIterator & | maskBegin,
|  | uInt | maskStride,
|  | const DataRanges & | ranges,
|  | Bool | isInclude ) const

protected virtual

weights, mask, ranges

References DataRanges.

## _populateArray() [3/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_populateArray | ( | std::vector< AccumType > & | ary,
|  | const DataIterator & | dataBegin,
|  | const WeightsIterator & | weightsBegin,
|  | uInt64 | nr,
|  | uInt | dataStride ) const

protected virtual

weights

## _populateArray() [4/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_populateArray | ( | std::vector< AccumType > & | ary,
|  | const DataIterator & | dataBegin,
|  | const WeightsIterator & | weightsBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const DataRanges & | ranges,
|  | Bool | isInclude ) const

protected virtual

weights and ranges

References DataRanges.

## _populateArray() [5/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_populateArray | ( | std::vector< AccumType > & | ary,
|  | const DataIterator & | dataBegin,
|  | uInt64 | nr,
|  | uInt | dataStride ) const

protected virtual

populate an unsorted array with valid data.

no weights, no mask, no ranges

## _populateArray() [6/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_populateArray | ( | std::vector< AccumType > & | ary,
|  | const DataIterator & | dataBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const DataRanges & | ranges,
|  | Bool | isInclude ) const

protected virtual

ranges

References DataRanges.

## _populateArray() [7/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_populateArray | ( | std::vector< AccumType > & | ary,
|  | const DataIterator & | dataBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const MaskIterator & | maskBegin,
|  | uInt | maskStride ) const

protected virtual

## _populateArray() [8/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_populateArray | ( | std::vector< AccumType > & | ary,
|  | const DataIterator & | dataBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const MaskIterator & | maskBegin,
|  | uInt | maskStride,
|  | const DataRanges & | ranges,
|  | Bool | isInclude ) const

protected virtual

mask and ranges

References DataRanges.

## _populateArrays() [1/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_populateArrays | ( | std::vector< std::vector< AccumType > > & | arys,
|  | uInt64 & | currentCount,
|  | const DataIterator & | dataBegin,
|  | const WeightsIterator & | weightBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const MaskIterator & | maskBegin,
|  | uInt | maskStride,
|  | const DataRanges & | ranges,
|  | Bool | isInclude,
|  | const IncludeLimits & | includeLimits,
|  | uInt64 | maxCount ) const

protected virtual

weights, mask, ranges

References DataRanges, and IncludeLimits.

## _populateArrays() [2/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_populateArrays | ( | std::vector< std::vector< AccumType > > & | arys,
|  | uInt64 & | currentCount,
|  | const DataIterator & | dataBegin,
|  | const WeightsIterator & | weightBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const MaskIterator & | maskBegin,
|  | uInt | maskStride,
|  | const IncludeLimits & | includeLimits,
|  | uInt64 | maxCount ) const

protected virtual

weights and mask

References IncludeLimits.

## _populateArrays() [3/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_populateArrays | ( | std::vector< std::vector< AccumType > > & | arys,
|  | uInt64 & | currentCount,
|  | const DataIterator & | dataBegin,
|  | const WeightsIterator & | weightsBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const DataRanges & | ranges,
|  | Bool | isInclude,
|  | const IncludeLimits & | includeLimits,
|  | uInt64 | maxCount ) const

protected virtual

weights and ranges

References DataRanges, and IncludeLimits.

## _populateArrays() [4/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_populateArrays | ( | std::vector< std::vector< AccumType > > & | arys,
|  | uInt64 & | currentCount,
|  | const DataIterator & | dataBegin,
|  | const WeightsIterator & | weightsBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const IncludeLimits & | includeLimits,
|  | uInt64 | maxCount ) const

protected virtual

weights

References IncludeLimits.

## _populateArrays() [5/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_populateArrays | ( | std::vector< std::vector< AccumType > > & | arys,
|  | uInt64 & | currentCount,
|  | const DataIterator & | dataBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const DataRanges & | ranges,
|  | Bool | isInclude,
|  | const IncludeLimits & | includeLimits,
|  | uInt64 | maxCount ) const

protected virtual

ranges

References DataRanges, and IncludeLimits.

## _populateArrays() [6/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_populateArrays | ( | std::vector< std::vector< AccumType > > & | arys,
|  | uInt64 & | currentCount,
|  | const DataIterator & | dataBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const IncludeLimits & | includeLimits,
|  | uInt64 | maxCount ) const

protected virtual

Create a std::vector of unsorted arrays, one array for each bin defined by includeLimits.

includeLimits should be non-overlapping and should be given in ascending order (the algorithm used assumes this). Once the sum of the lengths of all arrays equals maxCount the method will return with no further processing. no weights, no mask, no ranges

References IncludeLimits.

## _populateArrays() [7/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_populateArrays | ( | std::vector< std::vector< AccumType > > & | arys,
|  | uInt64 & | currentCount,
|  | const DataIterator & | dataBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const MaskIterator & | maskBegin,
|  | uInt | maskStride,
|  | const DataRanges & | ranges,
|  | Bool | isInclude,
|  | const IncludeLimits & | includeLimits,
|  | uInt64 | maxCount ) const

protected virtual

mask and ranges

References DataRanges, and IncludeLimits.

## _populateArrays() [8/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_populateArrays | ( | std::vector< std::vector< AccumType > > & | arys,
|  | uInt64 & | currentCount,
|  | const DataIterator & | dataBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const MaskIterator & | maskBegin,
|  | uInt | maskStride,
|  | const IncludeLimits & | includeLimits,
|  | uInt64 | maxCount ) const

protected virtual

References IncludeLimits.

## _populateTestArray() [1/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual Bool casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_populateTestArray | ( | std::vector< AccumType > & | ary,
|  | const DataIterator & | dataBegin,
|  | const WeightsIterator & | weightBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const MaskIterator & | maskBegin,
|  | uInt | maskStride,
|  | const DataRanges & | ranges,
|  | Bool | isInclude,
|  | uInt | maxElements ) const

protected virtual

weights, mask, ranges

References DataRanges.

## _populateTestArray() [2/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual Bool casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_populateTestArray | ( | std::vector< AccumType > & | ary,
|  | const DataIterator & | dataBegin,
|  | const WeightsIterator & | weightBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const MaskIterator & | maskBegin,
|  | uInt | maskStride,
|  | uInt | maxElements ) const

protected virtual

weights and mask

## _populateTestArray() [3/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual Bool casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_populateTestArray | ( | std::vector< AccumType > & | ary,
|  | const DataIterator & | dataBegin,
|  | const WeightsIterator & | weightBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | uInt | maxElements ) const

protected virtual

weights

## _populateTestArray() [4/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual Bool casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_populateTestArray | ( | std::vector< AccumType > & | ary,
|  | const DataIterator & | dataBegin,
|  | const WeightsIterator & | weightsBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const DataRanges & | ranges,
|  | Bool | isInclude,
|  | uInt | maxElements ) const

protected virtual

weights and ranges

References DataRanges.

## _populateTestArray() [5/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual Bool casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_populateTestArray | ( | std::vector< AccumType > & | ary,
|  | const DataIterator & | dataBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const DataRanges & | ranges,
|  | Bool | isInclude,
|  | uInt | maxElements ) const

protected virtual

ranges

References DataRanges.

## _populateTestArray() [6/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual Bool casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_populateTestArray | ( | std::vector< AccumType > & | ary,
|  | const DataIterator & | dataBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const MaskIterator & | maskBegin,
|  | uInt | maskStride,
|  | const DataRanges & | ranges,
|  | Bool | isInclude,
|  | uInt | maxElements ) const

protected virtual

mask and ranges

References DataRanges.

## _populateTestArray() [7/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual Bool casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_populateTestArray | ( | std::vector< AccumType > & | ary,
|  | const DataIterator & | dataBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | const MaskIterator & | maskBegin,
|  | uInt | maskStride,
|  | uInt | maxElements ) const

protected virtual

mask

## _populateTestArray() [8/8]

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual Bool casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_populateTestArray | ( | std::vector< AccumType > & | ary,
|  | const DataIterator & | dataBegin,
|  | uInt64 | nr,
|  | uInt | dataStride,
|  | uInt | maxElements ) const

protected virtual

no weights, no mask, no ranges

## _valuesFromSortedArray()

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

Bool casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_valuesFromSortedArray | ( | std::map< uInt64, AccumType > & | values,
|  | uInt64 | mynpts,
|  | const std::set< uInt64 > & | indices,
|  | uInt64 | maxArraySize,
|  | Bool | persistSortedArray )

protected

get values from sorted array if the array is small enough to be held in memory.

Note that this is the array containing all good data, not data in just a single bin representing a subset of good data. Returns True if the data were successfully retrieved. If True is returned, the values map will contain a map of index to value. It is the caller's responsibility to check that mynpts is not 0; no checking is done here.

## clone()

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual StatisticsAlgorithmQuantileComputer< CASA_STATP > * casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::clone | ( |  | ) | const

virtual

clone this object by returning a pointer to a copy

Implements casacore::StatisticsAlgorithmQuantileComputer< CASA_STATP >.

Reimplemented in casacore::ConstrainedRangeQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >, casacore::ConstrainedRangeQuantileComputer< CASA_STATP >, and casacore::HingesFencesQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >.

References casacore::StatisticsAlgorithmQuantileComputer< CASA_STATP >::StatisticsAlgorithmQuantileComputer().

## getMedian()

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual AccumType casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::getMedian | ( | uInt64 | mynpts,
|  | AccumType | mymin,
|  | AccumType | mymax,
|  | uInt | binningThreshholdSizeBytes,
|  | Bool | persistSortedArray,
|  | uInt | nBins )

virtual

Caller is responsible for passing correct values of mynpts, mymin, and mymax; no checking is done for correctness in this method.

Reimplemented in casacore::ConstrainedRangeQuantileComputer< CASA_STATP >.

## getMedianAbsDevMed()

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual AccumType casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::getMedianAbsDevMed | ( | uInt64 | mynpts,
|  | AccumType | mymin,
|  | AccumType | mymax,
|  | uInt | binningThreshholdSizeBytes,
|  | Bool | persistSortedArray,
|  | uInt | nBins )

virtual

get the median of the absolute deviation about the median of the data.

Reimplemented in casacore::ConstrainedRangeQuantileComputer< CASA_STATP >.

## getMedianAndQuantiles()

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual AccumType casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::getMedianAndQuantiles | ( | std::map< Double, AccumType > & | quantiles,
|  | const std::set< Double > & | fractions,
|  | uInt64 | mynpts,
|  | AccumType | mymin,
|  | AccumType | mymax,
|  | uInt | binningThreshholdSizeBytes,
|  | Bool | persistSortedArray,
|  | uInt | nBins )

virtual

If one needs to compute both the median and QuantileComputer 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.

The return value is the median; the quantiles are returned in the quantiles map. Values in the fractions set represent the locations in the CDF and should be between 0 and 1, exclusive.

## getQuantiles()

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual std::map< Double, AccumType > casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::getQuantiles | ( | const std::set< Double > & | fractions,
|  | uInt64 | mynpts,
|  | AccumType | mymin,
|  | AccumType | mymax,
|  | uInt | binningThreshholdSizeBytes,
|  | Bool | persistSortedArray,
|  | uInt | nBins )

virtual

Get the specified Quantiles.

fractions must be between 0 and 1, noninclusive.

## operator=()

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

ClassicalQuantileComputer & casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::operator= | ( | const ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator > & | other | ) |

copy semantics

References ClassicalQuantileComputer().

## reset()

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

virtual void casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::reset | ( |  | ) |

virtual

reset the private fields

Reimplemented from casacore::StatisticsAlgorithmQuantileComputer< CASA_STATP >.

Reimplemented in casacore::HingesFencesQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >.

## Member Data Documentation

## _doMedAbsDevMed

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

Bool casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_doMedAbsDevMed

private

Definition at line 399 of file ClassicalQuantileComputer.h.

## _myMedian

template<class AccumType, class DataIterator, class MaskIterator = const Bool*, class WeightsIterator = DataIterator>

AccumType casacore::ClassicalQuantileComputer< AccumType, DataIterator, MaskIterator, WeightsIterator >::_myMedian

private

for use in often repeatedly run macros

Definition at line 401 of file ClassicalQuantileComputer.h.

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

- scimath/StatsFramework/ClassicalQuantileComputer.h