27 #ifndef SCIMATH_STATISTICSUTILITIES_H 28 #define SCIMATH_STATISTICSUTILITIES_H 30 #include <casacore/casa/Exceptions/Error.h> 31 #include <casacore/scimath/Mathematics/StatisticsTypes.h> 32 #include <casacore/casa/Utilities/DataType.h> 33 #include <casacore/casa/aips.h> 36 #include <casacore/casa/iosfwd.h> 70 Double& npts, AccumType&
sum, AccumType&
mean,
const AccumType& datum
78 Double& npts, AccumType& sumweights, AccumType& wsum, AccumType& wmean,
79 const AccumType& datum,
const AccumType& weight
83 Double& npts, AccumType& sum, AccumType& mean, AccumType& nvariance,
84 AccumType& sumsq,
const AccumType& datum
89 Double& npts, AccumType& sumweights, AccumType& wsum,
90 AccumType& wmean, AccumType& wnvariance, AccumType& wsumsq,
91 const AccumType& datum,
const AccumType& weight
98 template <
class LocationType>
100 Double& npts, AccumType& sum, AccumType& mean, AccumType& nvariance,
101 AccumType& sumsq, AccumType& datamin,
106 template <
class LocationType,
class DataType>
108 Double& npts, AccumType& sum, AccumType& mean, AccumType& nvariance,
109 AccumType& sumsq, DataType& datamin,
114 template <
class LocationType>
116 Double& npts, AccumType& sumofweights, AccumType& sum, AccumType& mean,
117 AccumType& nvariance, AccumType& sumsq, AccumType& datamin, AccumType& datamax,
119 const AccumType& datum,
const AccumType& weight,
const LocationType& location
126 template <
class LocationType>
132 template <
class LocationType>
158 Double& npts, AccumType& nvariance,
159 AccumType& sumsq,
const AccumType& datum,
const AccumType& center
164 Double& npts, AccumType& sumweights,
165 AccumType& wnvariance, AccumType& wsumsq,
166 const AccumType& datum,
const AccumType& weight,
const AccumType& center
171 template <
class LocationType>
173 Double& npts, AccumType& nvariance,
174 AccumType& sumsq, AccumType& datamin,
176 const AccumType& datum,
const LocationType& location,
const AccumType& center
179 template <
class LocationType>
181 Double& npts, AccumType& sumofweights,
182 AccumType& nvariance, AccumType& sumsq, AccumType& datamin, AccumType& datamax,
184 const AccumType& datum,
const AccumType& weight,
const LocationType& location,
185 const AccumType& center
197 const AccumType& datum,
typename DataRanges::const_iterator beginRange,
198 typename DataRanges::const_iterator endRange,
Bool isInclude
213 const static AccumType
TWO;
224 ThrowCc(
"This version for complex data types should never be called");
229 ThrowCc(
"Logic Error: This version for complex data types should never be called");
233 ostream &operator<<(ostream &os, const typename StatisticsUtilities<T>::BinDesc &desc) {
234 os <<
"min limit " << desc.minLimit <<
" bin width " << desc.binWidth
235 <<
" nbins " << desc.nBins;
241 #ifndef CASACORE_NO_AUTO_TEMPLATES 242 #include <casacore/scimath/Mathematics/StatisticsUtilities.tcc> 243 #endif //# CASACORE_NO_AUTO_TEMPLATES
static void waccumulateSym(Double &npts, AccumType &sumweights, AccumType &wnvariance, AccumType &wsumsq, const AccumType &datum, const AccumType &weight, const AccumType ¢er)
wsumsq is the weighted sum of squares, sum(w_i*x_i*x_i)
std::complex< Float > Complex
static const AccumType TWO
LatticeExprNode sum(const LatticeExprNode &expr)
static void waccumulate(Double &npts, AccumType &sumweights, AccumType &wsum, AccumType &wmean, const AccumType &datum, const AccumType &weight)
in order to optimize performance, no checking is done for the weight == 0 case callers should ensure ...
std::pair< Int64, Int64 > LocationType
static Bool doMin(AccumType &datamin, LocationType &minpos, Bool isFirst, const AccumType &datum, const LocationType &location)
static Bool includeDatum(const AccumType &datum, typename DataRanges::const_iterator beginRange, typename DataRanges::const_iterator endRange, Bool isInclude)
std::complex< Double > DComplex
static Bool doMax(AccumType &datamax, LocationType &maxpos, Bool isFirst, const AccumType &datum, const LocationType &location)
return True if the max or min was updated, False otherwise.
bool Bool
Define the standard types used by Casacore.
static void accumulateSym(Double &npts, AccumType &nvariance, AccumType &sumsq, const AccumType &datum, const AccumType ¢er)
These versions are for symmetric accumulation about a specified center point.
Various statistics related methods for the statistics framework.
static void accumulate(Double &npts, AccumType &sum, AccumType &mean, const AccumType &datum)
accumulate values.
LatticeExprNode mean(const LatticeExprNode &expr)
static Int getInt(const AccumType &v)
This does the obvious conversions.
this file contains all the compiler specific defines
static StatsData< AccumType > combine(const vector< StatsData< AccumType > > &stats)
use two statistics sets to get the statistics set that would result in combining the two data sets us...
description of a regularly spaced bins with the first bin having lower limit of minLimit and having n...