26#ifndef SCIMATH_HINGESFENCESQUANTILECOMPUTER_H 
   27#define SCIMATH_HINGESFENCESQUANTILECOMPUTER_H 
   29#include <casacore/scimath/StatsFramework/ConstrainedRangeQuantileComputer.h> 
   31#include <casacore/scimath/StatsFramework/StatisticsTypes.h> 
   33#include <casacore/casa/aips.h> 
   43    class AccumType, 
class DataIterator, 
class MaskIterator=
const Bool*,
 
   44    class WeightsIterator=DataIterator
 
   76        std::vector<BinCountArray>& binCounts,
 
   77        std::vector<std::shared_ptr<AccumType>>& sameVal, std::vector<Bool>& allSame,
 
   78        const DataIterator& dataBegin, 
uInt64 nr, 
uInt dataStride,
 
   80        const std::vector<AccumType>& maxLimit
 
   84        std::vector<BinCountArray>& binCounts,
 
   85        std::vector<std::shared_ptr<AccumType>>& sameVal, std::vector<Bool>& allSame,
 
   86        const DataIterator& dataBegin, 
uInt64 nr, 
uInt dataStride,
 
   89        const std::vector<AccumType>& maxLimit
 
   93        std::vector<BinCountArray>& binCounts,
 
   94        std::vector<std::shared_ptr<AccumType>>& sameVal, std::vector<Bool>& allSame,
 
   95        const DataIterator& dataBegin, 
uInt64 nr, 
uInt dataStride,
 
   96        const MaskIterator& maskBegin, 
uInt maskStride,
 
   98        const std::vector<AccumType>& maxLimit
 
  102        std::vector<BinCountArray>& binCounts,
 
  103        std::vector<std::shared_ptr<AccumType>>& sameVal, std::vector<Bool>& allSame,
 
  104        const DataIterator& dataBegin, 
uInt64 nr, 
uInt dataStride,
 
  105        const MaskIterator& maskBegin, 
uInt maskStride,
 
  108        const std::vector<AccumType>& maxLimit
 
  112        std::vector<BinCountArray>& binCounts,
 
  113        std::vector<std::shared_ptr<AccumType>>& sameVal, std::vector<Bool>& allSame,
 
  114        const DataIterator& dataBegin, 
const WeightsIterator& weightsBegin,
 
  117        const std::vector<AccumType>& maxLimit
 
  121        std::vector<BinCountArray>& binCounts,
 
  122        std::vector<std::shared_ptr<AccumType>>& sameVal, std::vector<Bool>& allSame,
 
  123        const DataIterator& dataBegin, 
const WeightsIterator& weightsBegin,
 
  126        const std::vector<AccumType>& maxLimit
 
  130        std::vector<BinCountArray>& binCounts,
 
  131        std::vector<std::shared_ptr<AccumType>>& sameVal, std::vector<Bool>& allSame,
 
  132        const DataIterator& dataBegin, 
const WeightsIterator& weightsBegin,
 
  133        uInt64 nr, 
uInt dataStride, 
const MaskIterator& maskBegin,
 
  136        const std::vector<AccumType>& maxLimit
 
  140        std::vector<BinCountArray>& binCounts,
 
  141        std::vector<std::shared_ptr<AccumType>>& sameVal, std::vector<Bool>& allSame,
 
  142        const DataIterator& dataBegin, 
const WeightsIterator& weightBegin,
 
  143        uInt64 nr, 
uInt dataStride, 
const MaskIterator& maskBegin,
 
  145        const std::vector<AccumType>& maxLimit
 
  172        uInt dataStride, 
const MaskIterator& maskBegin, 
uInt maskStride
 
  178        uInt dataStride, 
const MaskIterator& maskBegin, 
uInt maskStride,
 
  184        DataArray& ary, 
const DataIterator& dataBegin,
 
  185        const WeightsIterator& weightsBegin, 
uInt64 nr, 
uInt dataStride
 
  190        DataArray& ary, 
const DataIterator& dataBegin,
 
  191        const WeightsIterator& weightsBegin, 
uInt64 nr, 
uInt dataStride,
 
  197        DataArray& ary, 
const DataIterator& dataBegin,
 
  198        const WeightsIterator& weightBegin, 
uInt64 nr, 
uInt dataStride,
 
  199        const MaskIterator& maskBegin, 
uInt maskStride
 
  204        DataArray& ary, 
const DataIterator& dataBegin,
 
  205        const WeightsIterator& weightBegin, 
uInt64 nr, 
uInt dataStride,
 
  206        const MaskIterator& maskBegin, 
uInt maskStride,
 
  212        std::vector<DataArray>& arys, 
uInt64& currentCount,
 
  213        const DataIterator& dataBegin, 
uInt64 nr, 
uInt dataStride,
 
  220        std::vector<DataArray>& arys, 
uInt64& currentCount,
 
  221        const DataIterator& dataBegin, 
uInt64 nr, 
uInt dataStride,
 
  227        std::vector<DataArray>& arys, 
uInt64& currentCount,
 
  228        const DataIterator& dataBegin, 
uInt64 nr, 
uInt dataStride,
 
  229        const MaskIterator& maskBegin, 
uInt maskStride,
 
  235        std::vector<DataArray>& arys, 
uInt64& currentCount,
 
  236        const DataIterator& dataBegin, 
uInt64 nr, 
uInt dataStride,
 
  237        const MaskIterator& maskBegin, 
uInt maskStride,
 
  244        std::vector<DataArray>& arys, 
uInt64& currentCount,
 
  245        const DataIterator& dataBegin, 
const WeightsIterator& weightsBegin,
 
  252        std::vector<DataArray>& arys, 
uInt64& currentCount,
 
  253        const DataIterator& dataBegin, 
const WeightsIterator& weightsBegin,
 
  260        std::vector<DataArray>& arys, 
uInt64& currentCount,
 
  261        const DataIterator& dataBegin, 
const WeightsIterator& weightBegin,
 
  262        uInt64 nr, 
uInt dataStride, 
const MaskIterator& maskBegin,
 
  268        std::vector<DataArray>& arys, 
uInt64& currentCount,
 
  269        const DataIterator& dataBegin, 
const WeightsIterator& weightBegin,
 
  270        uInt64 nr, 
uInt dataStride, 
const MaskIterator& maskBegin,
 
  279        DataArray& ary, 
const DataIterator& dataBegin,
 
  293        uInt dataStride, 
const MaskIterator& maskBegin, 
uInt maskStride,
 
  300        uInt dataStride, 
const MaskIterator& maskBegin, 
uInt maskStride,
 
  306        DataArray& ary, 
const DataIterator& dataBegin,
 
  307        const WeightsIterator& weightBegin, 
uInt64 nr, 
uInt dataStride,
 
  313        DataArray& ary, 
const DataIterator& dataBegin,
 
  314        const WeightsIterator& weightsBegin, 
uInt64 nr, 
uInt dataStride,
 
  320        DataArray& ary, 
const DataIterator& dataBegin,
 
  321        const WeightsIterator& weightBegin, 
uInt64 nr, 
uInt dataStride,
 
  322        const MaskIterator& maskBegin, 
uInt maskStride, 
uInt maxElements
 
  327        DataArray& ary, 
const DataIterator& dataBegin,
 
  328        const WeightsIterator& weightBegin, 
uInt64 nr, 
uInt dataStride,
 
  329        const MaskIterator& maskBegin, 
uInt maskStride,
 
 
  342#ifndef CASACORE_NO_AUTO_TEMPLATES 
  343#include <casacore/scimath/StatsFramework/HingesFencesQuantileComputer.tcc> 
#define DataArray
Commonly used types in statistics framework.
 
Basic concrete QuantileComputer class for data constrained to be in a specified range.
 
QuantileComputer used by HingesFencesStatistics for computing quantile-like statistics.
 
HingesFencesQuantileComputer()=delete
 
virtual Bool _populateTestArray(DataArray &ary, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride, uInt maxElements) const
mask
 
virtual Bool _populateTestArray(DataArray &ary, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, uInt maxElements) const
no weights, no mask, no ranges
 
virtual Bool _populateTestArray(DataArray &ary, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude, uInt maxElements) const
ranges
 
virtual Bool _populateTestArray(DataArray &ary, const DataIterator &dataBegin, const WeightsIterator &weightsBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude, uInt maxElements) const
weights and ranges
 
virtual void _populateArrays(std::vector< DataArray > &arys, uInt64 ¤tCount, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride, const IncludeLimits &includeLimits, uInt64 maxCount) const
 
HingesFencesQuantileComputer(StatisticsDataset< CASA_STATP > *dataset)
 
virtual void _populateArray(DataArray &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 _findBins(std::vector< BinCountArray > &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 > > &binDesc, const std::vector< AccumType > &maxLimit) const
 
virtual void _populateArray(DataArray &ary, const DataIterator &dataBegin, const WeightsIterator &weightsBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude) const
weights and ranges
 
virtual void _findBins(std::vector< BinCountArray > &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 > > &binDesc, const std::vector< AccumType > &maxLimit) const
 
virtual Bool _populateTestArray(DataArray &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(DataArray &ary, const DataIterator &dataBegin, const WeightsIterator &weightBegin, uInt64 nr, uInt dataStride, uInt maxElements) const
weights
 
HingesFencesQuantileComputer(const HingesFencesQuantileComputer &other)
copy semantics
 
virtual void _findBins(std::vector< BinCountArray > &binCounts, std::vector< std::shared_ptr< AccumType > > &sameVal, std::vector< Bool > &allSame, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const std::vector< StatsHistogram< AccumType > > &binDesc, const std::vector< AccumType > &maxLimit) const
 
virtual void _populateArrays(std::vector< DataArray > &arys, uInt64 ¤tCount, const DataIterator &dataBegin, const WeightsIterator &weightBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride, const IncludeLimits &includeLimits, uInt64 maxCount) const
weights and mask
 
HingesFencesQuantileComputer & operator=(const HingesFencesQuantileComputer &other)
copy semantics
 
void setHasRange(Bool hr)
 
virtual void _findBins(std::vector< BinCountArray > &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 > > &binDesc, const std::vector< AccumType > &maxLimit) const
 
virtual void _populateArray(DataArray &ary, const DataIterator &dataBegin, uInt64 nr, uInt dataStride) const
populate an unsorted array with valid data.
 
virtual void _findBins(std::vector< BinCountArray > &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 > > &binDesc, const std::vector< AccumType > &maxLimit) const
 
virtual Bool _populateTestArray(DataArray &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
 
virtual void _populateArray(DataArray &ary, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude) const
ranges
 
virtual void _populateArrays(std::vector< DataArray > &arys, uInt64 ¤tCount, const DataIterator &dataBegin, const WeightsIterator &weightsBegin, uInt64 nr, uInt dataStride, const IncludeLimits &includeLimits, uInt64 maxCount) const
weights
 
virtual Bool _populateTestArray(DataArray &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 void _populateArray(DataArray &ary, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride) const
 
virtual void _findBins(std::vector< BinCountArray > &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 > > &binDesc, const std::vector< AccumType > &maxLimit) const
 
virtual void _populateArray(DataArray &ary, const DataIterator &dataBegin, const WeightsIterator &weightsBegin, uInt64 nr, uInt dataStride) const
weights
 
virtual StatisticsAlgorithmQuantileComputer< CASA_STATP > * clone() const
clone this object by returning a pointer to a copy
 
virtual void _findBins(std::vector< BinCountArray > &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 > > &binDesc, const std::vector< AccumType > &maxLimit) const
 
virtual void _findBins(std::vector< BinCountArray > &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 > > &binDesc, const std::vector< AccumType > &maxLimit) const
 
virtual void _populateArrays(std::vector< DataArray > &arys, uInt64 ¤tCount, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const IncludeLimits &includeLimits, uInt64 maxCount) const
no weights, no mask, no ranges
 
virtual void _populateArray(DataArray &ary, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride, const DataRanges &ranges, Bool isInclude) const
mask and ranges
 
virtual void reset()
reset private fields
 
virtual void _populateArrays(std::vector< DataArray > &arys, uInt64 ¤tCount, 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 void _populateArrays(std::vector< DataArray > &arys, uInt64 ¤tCount, 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< DataArray > &arys, uInt64 ¤tCount, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude, const IncludeLimits &includeLimits, uInt64 maxCount) const
ranges
 
virtual void _populateArray(DataArray &ary, const DataIterator &dataBegin, const WeightsIterator &weightBegin, uInt64 nr, uInt dataStride, const MaskIterator &maskBegin, uInt maskStride) const
weights and mask
 
virtual void _populateArrays(std::vector< DataArray > &arys, uInt64 ¤tCount, 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 ~HingesFencesQuantileComputer()
 
This is the virtual base class from which concrete QuantileComputer classes are derived.
 
Representation of a statistics dataset used in statistics framework calculatations.
 
Represents an unfilled histogram with equal width bins for binning used for quantile computations.
 
this file contains all the compiler specific defines
 
bool Bool
Define the standard types used by Casacore.
 
unsigned long long uInt64