You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.3 KiB
C++
63 lines
1.3 KiB
C++
/*! \file OnlineStatisticNode.h
|
|
\brief A brief file description.
|
|
|
|
A more elaborated file description.
|
|
|
|
Created: 2015/07/16, author: Jin Bingwen.
|
|
*/
|
|
|
|
#ifndef __OnlineStatisticNode_h_
|
|
#define __OnlineStatisticNode_h_
|
|
|
|
#include "CyclopsVersion.h"
|
|
#include "StatisticEle.h"
|
|
#include "CyclopsLock.h"
|
|
|
|
class OnlineStatisticNode : public StatisticsNode
|
|
{
|
|
public:
|
|
OnlineStatisticNode();
|
|
typedef std::shared_ptr<OnlineStatisticNode> Ptr;
|
|
DECL_GET_INSTANCE(OnlineStatisticNode::Ptr)
|
|
|
|
virtual void compute();
|
|
|
|
virtual void push_back(double val);
|
|
virtual void pop_front();
|
|
virtual void pop_back();
|
|
virtual void clear(bool clearSource = true);
|
|
|
|
bool getIsSaveSource() const { return mIsSaveSource; }
|
|
virtual void setIsSaveSource(bool val);
|
|
|
|
// 0: queue size unlimited
|
|
virtual void setFixedSize(size_t nSize);
|
|
int getFixedSize() const { return mFixedSize; }
|
|
|
|
virtual std::list<double> getSourceInList(int num = 0);
|
|
|
|
protected:
|
|
double mSum;
|
|
double mSqrSum;
|
|
|
|
bool mIsSaveSource;
|
|
size_t mFixedSize;
|
|
|
|
void computeSumSqrSum();
|
|
void computeMeanStdDev();
|
|
void computeMinMax();
|
|
void pop(double val, bool fromFront);
|
|
|
|
void _compute();
|
|
void _push_back(double val);
|
|
void _pop_front();
|
|
void _pop_back();
|
|
void _clear(bool clearSource = true);
|
|
|
|
private:
|
|
CyclopsLock mLock;
|
|
};
|
|
|
|
#endif // __OnlineStatisticNode_h_
|
|
|