26 #ifndef SCIMATH_BIWEIGHTSTATISTICS_H
27 #define SCIMATH_BIWEIGHTSTATISTICS_H
29 #include <casacore/casa/aips.h>
31 #include <casacore/scimath/StatsFramework/ClassicalStatistics.h>
118 class AccumType,
class DataIterator,
class MaskIterator=
const Bool*,
119 class WeightsIterator=DataIterator
149 uInt binningThreshholdSizeBytes=4096*4096,
154 std::map<Double, AccumType>& quantileToValue,
158 uInt binningThreshholdSizeBytes=4096*4096,
166 uInt binningThreshholdSizeBytes=4096*4096,
173 uInt binningThreshholdSizeBytes=4096*4096,
188 virtual void reset();
211 std::pair<AccumType, AccumType>
_range{};
220 AccumType& sxw2, AccumType& sw2, AccumType& sx_M2w4,
221 AccumType& ww_4u2, DataIterator dataIter, MaskIterator maskIter,
222 WeightsIterator weightsIter,
uInt64 dataCount,
227 AccumType& sxw2, AccumType& sw2, DataIterator dataIter,
228 MaskIterator maskIter, WeightsIterator weightsIter,
uInt64 dataCount,
233 AccumType& sx_M2w4, AccumType& ww_4u2, DataIterator dataIter,
234 MaskIterator maskIter, WeightsIterator weightsIter,
uInt64 dataCount,
250 AccumType& sxw2, AccumType& sw2, AccumType& sx_M2w4, AccumType& ww_4u2,
251 const DataIterator& dataBegin,
uInt64 nr,
uInt dataStride
255 AccumType& sxw2, AccumType& sw2, AccumType& sx_M2w4, AccumType& ww_4u2,
256 const DataIterator& dataBegin,
uInt64 nr,
uInt dataStride,
261 AccumType& sxw2, AccumType& sw2, AccumType& sx_M2w4, AccumType& ww_4u2,
262 const DataIterator& dataBegin,
uInt64 nr,
uInt dataStride,
263 const MaskIterator& maskBegin,
uInt maskStride
267 AccumType& sxw2, AccumType& sw2, AccumType& sx_M2w4, AccumType& ww_4u2,
268 const DataIterator& dataBegin,
uInt64 nr,
uInt dataStride,
269 const MaskIterator& maskBegin,
uInt maskStride,
274 AccumType& sxw2, AccumType& sw2, AccumType& sx_M2w4, AccumType& ww_4u2,
275 const DataIterator& dataBegin,
const WeightsIterator& weightsBegin,
280 AccumType& sxw2, AccumType& sw2, AccumType& sx_M2w4, AccumType& ww_4u2,
281 const DataIterator& dataBegin,
const WeightsIterator& weightsBegin,
286 AccumType& sxw2, AccumType& sw2, AccumType& sx_M2w4, AccumType& ww_4u2,
287 const DataIterator& dataBegin,
const WeightsIterator& weightsBegin,
288 uInt64 nr,
uInt dataStride,
const MaskIterator& maskBegin,
293 AccumType& sxw2, AccumType& sw2, AccumType& sx_M2w4, AccumType& ww_4u2,
294 const DataIterator& dataBegin,
const WeightsIterator& weightBegin,
295 uInt64 nr,
uInt dataStride,
const MaskIterator& maskBegin,
304 AccumType& sxw2, AccumType& sw2,
const DataIterator& dataBegin,
309 AccumType& sxw2, AccumType& sw2,
const DataIterator& dataBegin,
314 AccumType& sxw2, AccumType& sw2,
const DataIterator& dataBegin,
315 uInt64 nr,
uInt dataStride,
const MaskIterator& maskBegin,
320 AccumType& sxw2, AccumType& sw2,
const DataIterator& dataBegin,
321 uInt64 nr,
uInt dataStride,
const MaskIterator& maskBegin,
326 AccumType& sxw2, AccumType& sw2,
const DataIterator& dataBegin,
327 const WeightsIterator& weightsBegin,
uInt64 nr,
uInt dataStride
331 AccumType& sxw2, AccumType& sw2,
const DataIterator& dataBegin,
332 const WeightsIterator& weightsBegin,
uInt64 nr,
uInt dataStride,
337 AccumType& sxw2, AccumType& sw2,
const DataIterator& dataBegin,
338 const WeightsIterator& weightsBegin,
uInt64 nr,
uInt dataStride,
339 const MaskIterator& maskBegin,
uInt maskStride,
344 AccumType& sxw2, AccumType& sw2,
const DataIterator& dataBegin,
345 const WeightsIterator& weightBegin,
uInt64 nr,
uInt dataStride,
346 const MaskIterator& maskBegin,
uInt maskStride
354 AccumType& sx_M2w4, AccumType& ww_4u2,
const DataIterator& dataBegin,
359 AccumType& sx_M2w4, AccumType& ww_4u2,
const DataIterator& dataBegin,
365 AccumType& sx_M2w4, AccumType& ww_4u2,
const DataIterator& dataBegin,
366 uInt64 nr,
uInt dataStride,
const MaskIterator& maskBegin,
371 AccumType& sx_M2w4, AccumType& ww_4u2,
const DataIterator& dataBegin,
372 uInt64 nr,
uInt dataStride,
const MaskIterator& maskBegin,
377 AccumType& sx_M2w4, AccumType& ww_4u2,
const DataIterator& dataBegin,
378 const WeightsIterator& weightsBegin,
uInt64 nr,
uInt dataStride
382 AccumType& sx_M2w4, AccumType& ww_4u2,
const DataIterator& dataBegin,
383 const WeightsIterator& weightsBegin,
uInt64 nr,
uInt dataStride,
388 AccumType& sx_M2w4, AccumType& ww_4u2,
const DataIterator& dataBegin,
389 const WeightsIterator& weightsBegin,
uInt64 nr,
uInt dataStride,
390 const MaskIterator& maskBegin,
uInt maskStride,
395 AccumType& sx_M2w4, AccumType& ww_4u2,
const DataIterator& dataBegin,
396 const WeightsIterator& weightBegin,
uInt64 nr,
uInt dataStride,
397 const MaskIterator& maskBegin,
uInt maskStride
405 #ifndef CASACORE_NO_AUTO_TEMPLATES
406 #include <casacore/scimath/StatsFramework/BiweightStatistics.tcc>