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,
78 const DataIterator& dataBegin,
uInt64 nr,
uInt dataStride,
80 const std::vector<AccumType>& maxLimit
84 std::vector<BinCountArray>& binCounts,
86 const DataIterator& dataBegin,
uInt64 nr,
uInt dataStride,
89 const std::vector<AccumType>& maxLimit
93 std::vector<BinCountArray>& binCounts,
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,
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,
114 const DataIterator& dataBegin,
const WeightsIterator& weightsBegin,
117 const std::vector<AccumType>& maxLimit
121 std::vector<BinCountArray>& binCounts,
123 const DataIterator& dataBegin,
const WeightsIterator& weightsBegin,
126 const std::vector<AccumType>& maxLimit
130 std::vector<BinCountArray>& binCounts,
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,
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 void _findBins(std::vector< BinCountArray > &binCounts, std::vector< CountedPtr< 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 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 _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< CountedPtr< 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 void _findBins(std::vector< BinCountArray > &binCounts, std::vector< CountedPtr< 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, 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 _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
void setHasRange(Bool hr)
virtual void _populateArray(DataArray &ary, const DataIterator &dataBegin, uInt64 nr, uInt dataStride) const
populate an unsorted array with valid data.
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 StatisticsAlgorithmQuantileComputer< CASA_STATP > * clone() const
clone this object by returning a pointer to a copy
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 _populateArray(DataArray &ary, const DataIterator &dataBegin, const WeightsIterator &weightsBegin, uInt64 nr, uInt dataStride) const
weights
HingesFencesQuantileComputer & operator=(const HingesFencesQuantileComputer &other)
copy semantics
virtual void _findBins(std::vector< BinCountArray > &binCounts, std::vector< CountedPtr< 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 _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 _findBins(std::vector< BinCountArray > &binCounts, std::vector< CountedPtr< 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< CountedPtr< 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 _findBins(std::vector< BinCountArray > &binCounts, std::vector< CountedPtr< 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 _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 void _findBins(std::vector< BinCountArray > &binCounts, std::vector< CountedPtr< 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 ~HingesFencesQuantileComputer()
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