18 #include "../declspec.h"
40 typedef std::int64_t count_type;
41 count_type getcnt()
const {
return cnt_; }
42 count_type getinf()
const {
return inf_; }
43 double getsum()
const {
return sum_; }
44 double getssq()
const {
return ssq_; }
45 double getmin()
const {
return min_; }
46 double getmax()
const {
return max_; }
49 StatisticData(count_type cnt, count_type inf,
double sum,
double ssq,
double min,
double max);
50 StatisticData(
const count_type *bins,
int nbins,
double range_min,
double range_max,
bool is_int8);
52 inline void add(
double value);
58 inline void scale(
double oldmin,
double oldmax,
double newmin,
double newmax);
59 void trimRange(
const count_type *bins,
int nbins,
double range_min,
double range_max);
74 StatisticData::add(
double value)
76 if (std::isfinite(value)) {
101 inline void StatisticData::scale(
double oldmin,
double oldmax,
double newmin,
double newmax)
126 const double b = (newmax - newmin) / (oldmax - oldmin);
127 const double a = newmin - oldmin*b;
129 ssq_ = cnt_*a*a + 2*a*b*sum_ + b*b*ssq_;
130 sum_ = cnt_*a + b*sum_;