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>
42template <
class AccumType,
class DataIterator,
class MaskIterator =
const Bool*,
43 class WeightsIterator = DataIterator>
68 virtual void _findBins(std::vector<BinCountArray>& binCounts,
69 std::vector<std::shared_ptr<AccumType>>& sameVal,
70 std::vector<Bool>& allSame,
const DataIterator& dataBegin,
uInt64 nr,
72 const std::vector<AccumType>& maxLimit)
const;
74 virtual void _findBins(std::vector<BinCountArray>& binCounts,
75 std::vector<std::shared_ptr<AccumType>>& sameVal,
76 std::vector<Bool>& allSame,
const DataIterator& dataBegin,
uInt64 nr,
79 const std::vector<AccumType>& maxLimit)
const;
81 virtual void _findBins(std::vector<BinCountArray>& binCounts,
82 std::vector<std::shared_ptr<AccumType>>& sameVal,
83 std::vector<Bool>& allSame,
const DataIterator& dataBegin,
uInt64 nr,
84 uInt dataStride,
const MaskIterator& maskBegin,
uInt maskStride,
86 const std::vector<AccumType>& maxLimit)
const;
88 virtual void _findBins(std::vector<BinCountArray>& binCounts,
89 std::vector<std::shared_ptr<AccumType>>& sameVal,
90 std::vector<Bool>& allSame,
const DataIterator& dataBegin,
uInt64 nr,
91 uInt dataStride,
const MaskIterator& maskBegin,
uInt maskStride,
94 const std::vector<AccumType>& maxLimit)
const;
96 virtual void _findBins(std::vector<BinCountArray>& binCounts,
97 std::vector<std::shared_ptr<AccumType>>& sameVal,
98 std::vector<Bool>& allSame,
const DataIterator& dataBegin,
99 const WeightsIterator& weightsBegin,
uInt64 nr,
uInt dataStride,
101 const std::vector<AccumType>& maxLimit)
const;
103 virtual void _findBins(std::vector<BinCountArray>& binCounts,
104 std::vector<std::shared_ptr<AccumType>>& sameVal,
105 std::vector<Bool>& allSame,
const DataIterator& dataBegin,
106 const WeightsIterator& weightsBegin,
uInt64 nr,
uInt dataStride,
109 const std::vector<AccumType>& maxLimit)
const;
111 virtual void _findBins(std::vector<BinCountArray>& binCounts,
112 std::vector<std::shared_ptr<AccumType>>& sameVal,
113 std::vector<Bool>& allSame,
const DataIterator& dataBegin,
114 const WeightsIterator& weightsBegin,
uInt64 nr,
uInt dataStride,
115 const MaskIterator& maskBegin,
uInt maskStride,
const DataRanges& ranges,
117 const std::vector<AccumType>& maxLimit)
const;
119 virtual void _findBins(std::vector<BinCountArray>& binCounts,
120 std::vector<std::shared_ptr<AccumType>>& sameVal,
121 std::vector<Bool>& allSame,
const DataIterator& dataBegin,
122 const WeightsIterator& weightBegin,
uInt64 nr,
uInt dataStride,
123 const MaskIterator& maskBegin,
uInt maskStride,
125 const std::vector<AccumType>& maxLimit)
const;
139 uInt dataStride)
const;
146 uInt dataStride,
const MaskIterator& maskBegin,
147 uInt maskStride)
const;
151 uInt dataStride,
const MaskIterator& maskBegin,
uInt maskStride,
156 const WeightsIterator& weightsBegin,
uInt64 nr,
157 uInt dataStride)
const;
161 const WeightsIterator& weightsBegin,
uInt64 nr,
uInt dataStride,
166 const WeightsIterator& weightBegin,
uInt64 nr,
uInt dataStride,
167 const MaskIterator& maskBegin,
uInt maskStride)
const;
171 const WeightsIterator& weightBegin,
uInt64 nr,
uInt dataStride,
172 const MaskIterator& maskBegin,
uInt maskStride,
177 const DataIterator& dataBegin,
uInt64 nr,
uInt dataStride,
182 const DataIterator& dataBegin,
uInt64 nr,
uInt dataStride,
187 const DataIterator& dataBegin,
uInt64 nr,
uInt dataStride,
188 const MaskIterator& maskBegin,
uInt maskStride,
193 const DataIterator& dataBegin,
uInt64 nr,
uInt dataStride,
194 const MaskIterator& maskBegin,
uInt maskStride,
200 const DataIterator& dataBegin,
const WeightsIterator& weightsBegin,
206 const DataIterator& dataBegin,
const WeightsIterator& weightsBegin,
212 const DataIterator& dataBegin,
const WeightsIterator& weightBegin,
213 uInt64 nr,
uInt dataStride,
const MaskIterator& maskBegin,
219 const DataIterator& dataBegin,
const WeightsIterator& weightBegin,
220 uInt64 nr,
uInt dataStride,
const MaskIterator& maskBegin,
228 uInt dataStride,
uInt maxElements)
const;
233 uInt maxElements)
const;
237 uInt dataStride,
const MaskIterator& maskBegin,
uInt maskStride,
238 uInt maxElements)
const;
242 uInt dataStride,
const MaskIterator& maskBegin,
uInt maskStride,
247 const WeightsIterator& weightBegin,
uInt64 nr,
uInt dataStride,
248 uInt maxElements)
const;
252 const WeightsIterator& weightsBegin,
uInt64 nr,
uInt dataStride,
257 const WeightsIterator& weightBegin,
uInt64 nr,
uInt dataStride,
258 const MaskIterator& maskBegin,
uInt maskStride,
259 uInt maxElements)
const;
263 const WeightsIterator& weightBegin,
uInt64 nr,
uInt dataStride,
264 const MaskIterator& maskBegin,
uInt maskStride,
274#ifndef CASACORE_NO_AUTO_TEMPLATES
275#include <casacore/scimath/StatsFramework/HingesFencesQuantileComputer.tcc>
#define DataArray
Commonly used types in statistics framework.
ConstrainedRangeQuantileComputer()=delete
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.
For temporary backward namespace compatibility, use casa as alias for casacore.
bool Bool
Define the standard types used by Casacore.
unsigned long long uInt64