6 #ifndef _INC_cValueStats_H
7 #define _INC_cValueStats_H
20 template<
typename TYPE =
double >
40 if (nWeight >= ((
TYPE)1))
42 m_nValAvg = SUPER_t::m_Lo = SUPER_t::m_Hi = nVal;
46 m_nValAvg = (m_nValAvg * (((
TYPE)1) - nWeight)) + (nVal * nWeight);
53 , m_uSamplesMax(uSamplesMax)
55 , m_nValAvg(nValAvgStartingEst)
72 if (m_uSamplesQty < m_uSamplesMax)
76 AddStatW(nVal, ((
TYPE)1) / (
TYPE)(m_uSamplesQty));
77 this->UnionValue(nVal);
81 template<
typename TYPE =
double >
109 this->m_uSamplesQty = 0;
120 if (this->m_uSamplesQty < this->m_uSamplesMax)
122 this->m_uSamplesQty += tDiff;
128 this->m_uSamplesQty = this->m_uSamplesMax;
130 SUPER_t::AddStatW(nVal, (
TYPE)(tDiff) / (
TYPE)(this->m_uSamplesQty));
134 this->m_nValAvg = nVal;
137 this->UnionValue(nVal);
144 if (!AddStat(m_tLast.
isTimeValid() ? (nVal - m_nLastVal) : 0))
153 if (nVal < m_nLastVal)
157 return AddStatDiff(nVal);
#define GRAYLIB_LINK
Definition: GrayLibBase.h:35
#define TYPE
Definition: StrT.cpp:38
#define ASSERT(exp)
Definition: cDebugAssert.h:87
Definition: cValueRange.h:21
Definition: cValueStats.h:83
bool AddStat(TYPE nVal)
Definition: cValueStats.h:111
bool AddStatDiffX(TYPE nVal)
Definition: cValueStats.h:149
bool AddStatDiff(TYPE nVal)
Definition: cValueStats.h:140
UNITTEST2_PREDEF(cValueStats)
cValueStatsRate(TYPE nValAvgEst=0, UINT uSamplesMax=cTimeSys::k_FREQ)
Definition: cValueStats.h:98
void ResetStatsTime()
Definition: cValueStats.h:106
Definition: cValueStats.h:22
const UINT m_uSamplesMax
average is calculated over n samples.
Definition: cValueStats.h:31
UINT m_uSamplesQty
current number of samples I have processed. for AddStat().
Definition: cValueStats.h:32
void AddStat(TYPE nVal)
Definition: cValueStats.h:68
void put_ValAvg(TYPE nValAvg)
Definition: cValueStats.h:63
TYPE get_ValAvg() const
Definition: cValueStats.h:59
TYPE m_nValAvg
running average.
Definition: cValueStats.h:33
cValueStats(TYPE nValAvgStartingEst=0, UINT uSamplesMax=100)
Definition: cValueStats.h:51
void AddStatW(TYPE nVal, TYPE nWeight)
Definition: cValueStats.h:36
Definition: cTimeSys.h:93
void InitTime(TIMESYS_t t=k_CLEAR) noexcept
Definition: cTimeSys.h:152
static const TIMESYS_t k_FREQ
milliSec per Sec
Definition: cTimeSys.h:100
TIMESYS_t get_TimeSys() const noexcept
Definition: cTimeSys.h:147
static TIMESYS_t GetTimeNow() noexcept
Definition: cTimeSys.h:121
bool isTimeValid() const noexcept
Definition: cTimeSys.h:143
UNITTEST2_PREDEF(cQuadtree)
INT32 TIMESYSD_t
Time delta. signed milli-Seconds Span. cTimeSys::k_DMAX, cTimeSys::k_INF = MAILSLOT_WAIT_FOREVER.
Definition: cTimeSys.h:28