26 #ifndef SCIMATH_CONSTRAINEDRANGEQUANTILECOMPUTER_H
27 #define SCIMATH_CONSTRAINEDRANGEQUANTILECOMPUTER_H
29 #include <casacore/scimath/StatsFramework/ClassicalQuantileComputer.h>
31 #include <casacore/casa/aips.h>
42 class AccumType,
class DataIterator,
class MaskIterator=
const Bool*,
43 class WeightsIterator=DataIterator
71 uInt64 mynpts, AccumType mymin, AccumType mymax,
72 uInt binningThreshholdSizeBytes,
Bool persistSortedArray,
uInt nBins
77 uInt64 mynpts, AccumType mymin, AccumType mymax,
78 uInt binningThreshholdSizeBytes,
Bool persistSortedArray,
uInt nBins
81 void setRange(
const std::pair<AccumType, AccumType>& r) {
89 std::vector<BinCountArray>& binCounts,
91 const DataIterator& dataBegin,
uInt64 nr,
uInt dataStride,
93 const std::vector<AccumType>& maxLimit
97 std::vector<BinCountArray>& binCounts,
99 const DataIterator& dataBegin,
uInt64 nr,
uInt dataStride,
102 const std::vector<AccumType>& maxLimit
106 std::vector<BinCountArray>& binCounts,
108 const DataIterator& dataBegin,
uInt64 nr,
uInt dataStride,
109 const MaskIterator& maskBegin,
uInt maskStride,
111 const std::vector<AccumType>& maxLimit
115 std::vector<BinCountArray>& binCounts,
117 const DataIterator& dataBegin,
uInt64 nr,
uInt dataStride,
118 const MaskIterator& maskBegin,
uInt maskStride,
121 const std::vector<AccumType>& maxLimit
125 std::vector<BinCountArray>& binCounts,
127 const DataIterator& dataBegin,
const WeightsIterator& weightsBegin,
130 const std::vector<AccumType>& maxLimit
134 std::vector<BinCountArray>& binCounts,
136 const DataIterator& dataBegin,
137 const WeightsIterator& weightsBegin,
uInt64 nr,
uInt dataStride,
140 const std::vector<AccumType>& maxLimit
144 std::vector<BinCountArray>& binCounts,
146 const DataIterator& dataBegin,
const WeightsIterator& weightsBegin,
147 uInt64 nr,
uInt dataStride,
const MaskIterator& maskBegin,
150 const std::vector<AccumType>& maxLimit
154 std::vector<BinCountArray>& binCounts,
156 const DataIterator& dataBegin,
const WeightsIterator& weightBegin,
157 uInt64 nr,
uInt dataStride,
const MaskIterator& maskBegin,
159 const std::vector<AccumType>& maxLimit
186 uInt dataStride,
const MaskIterator& maskBegin,
uInt maskStride
192 uInt dataStride,
const MaskIterator& maskBegin,
uInt maskStride,
198 DataArray& ary,
const DataIterator& dataBegin,
199 const WeightsIterator& weightsBegin,
uInt64 nr,
uInt dataStride
204 DataArray& ary,
const DataIterator& dataBegin,
205 const WeightsIterator& weightsBegin,
uInt64 nr,
uInt dataStride,
211 DataArray& ary,
const DataIterator& dataBegin,
212 const WeightsIterator& weightBegin,
uInt64 nr,
uInt dataStride,
213 const MaskIterator& maskBegin,
uInt maskStride
218 DataArray& ary,
const DataIterator& dataBegin,
219 const WeightsIterator& weightBegin,
uInt64 nr,
uInt dataStride,
220 const MaskIterator& maskBegin,
uInt maskStride,
226 std::vector<DataArray>& arys,
uInt64& currentCount,
227 const DataIterator& dataBegin,
uInt64 nr,
uInt dataStride,
233 std::vector<DataArray>& arys,
uInt64& currentCount,
234 const DataIterator& dataBegin,
uInt64 nr,
uInt dataStride,
240 std::vector<DataArray>& arys,
uInt64& currentCount,
241 const DataIterator& dataBegin,
uInt64 nr,
uInt dataStride,
242 const MaskIterator& maskBegin,
uInt maskStride,
248 std::vector<DataArray>& arys,
uInt64& currentCount,
249 const DataIterator& dataBegin,
uInt64 nr,
uInt dataStride,
250 const MaskIterator& maskBegin,
uInt maskStride,
257 std::vector<DataArray>& arys,
uInt64& currentCount,
258 const DataIterator& dataBegin,
const WeightsIterator& weightsBegin,
265 std::vector<DataArray>& arys,
uInt64& currentCount,
266 const DataIterator& dataBegin,
const WeightsIterator& weightsBegin,
273 std::vector<DataArray>& arys,
uInt64& currentCount,
274 const DataIterator& dataBegin,
const WeightsIterator& weightBegin,
275 uInt64 nr,
uInt dataStride,
const MaskIterator& maskBegin,
281 std::vector<DataArray>& arys,
uInt64& currentCount,
282 const DataIterator& dataBegin,
const WeightsIterator& weightBegin,
283 uInt64 nr,
uInt dataStride,
const MaskIterator& maskBegin,
306 uInt dataStride,
const MaskIterator& maskBegin,
uInt maskStride,
313 uInt dataStride,
const MaskIterator& maskBegin,
uInt maskStride,
319 DataArray& ary,
const DataIterator& dataBegin,
320 const WeightsIterator& weightBegin,
uInt64 nr,
uInt dataStride,
326 DataArray& ary,
const DataIterator& dataBegin,
327 const WeightsIterator& weightsBegin,
uInt64 nr,
uInt dataStride,
333 DataArray& ary,
const DataIterator& dataBegin,
334 const WeightsIterator& weightBegin,
uInt64 nr,
uInt dataStride,
335 const MaskIterator& maskBegin,
uInt maskStride,
uInt maxElements
340 DataArray& ary,
const DataIterator& dataBegin,
341 const WeightsIterator& weightBegin,
uInt64 nr,
uInt dataStride,
342 const MaskIterator& maskBegin,
uInt maskStride,
352 std::pair<AccumType, AccumType>
_range{};
358 #ifndef CASACORE_NO_AUTO_TEMPLATES
359 #include <casacore/scimath/StatsFramework/ConstrainedRangeQuantileComputer.tcc>