12 #ifndef SST_CORE_STATAPI_STATACCUMULATOR_H 
   13 #define SST_CORE_STATAPI_STATACCUMULATOR_H 
   15 #include "sst/core/sst_types.h" 
   16 #include "sst/core/statapi/statbase.h" 
   17 #include "sst/core/statapi/statoutput.h" 
   18 #include "sst/core/warnmacros.h" 
   24 namespace Statistics {
 
   44 template <
typename NumberBase>
 
   48     SST_ELI_DECLARE_STATISTIC_TEMPLATE(
 
   51       "AccumulatorStatistic",
 
   52       SST_ELI_ELEMENT_VERSION(1,0,0),
 
   53       "Accumulate all contributions to a statistic",
 
   57         BaseComponent* comp, 
const std::string& statName, 
const std::string& statSubId, 
Params& statParams) :
 
   60         m_sum    = 
static_cast<NumberBase
>(0);
 
   61         m_sum_sq = 
static_cast<NumberBase
>(0);
 
   62         m_min    = std::numeric_limits<NumberBase>::max();
 
   63         m_max    = std::numeric_limits<NumberBase>::min();
 
   66         this->setStatisticTypeName(
"Accumulator");
 
   79         m_sum_sq += (value * value);
 
   80         m_min = (value < m_min) ? value : m_min;
 
   81         m_max = (value > m_max) ? value : m_max;
 
   84     void addData_impl_Ntimes(uint64_t N, NumberBase value)
 override 
   87         m_sum_sq += N * value * value;
 
   88         m_min = (value < m_min) ? value : m_min;
 
   89         m_max = (value > m_max) ? value : m_max;
 
   97     NumberBase 
getSum() { 
return m_sum; }
 
  124         return (count > 0) ? (m_sum / (NumberBase)count) : 0;
 
  134         return (count > 0) ? (m_sum_sq * count) - (m_sum * m_sum) : 0;
 
  153         m_min    = std::numeric_limits<NumberBase>::max();
 
  154         m_max    = std::numeric_limits<NumberBase>::min();
 
  186         case StatisticBase::STAT_MODE_COUNT:
 
  187         case StatisticBase::STAT_MODE_PERIODIC:
 
  188         case StatisticBase::STAT_MODE_DUMP_AT_END:
 
  202     StatisticOutput::fieldHandle_t h_sum;
 
  203     StatisticOutput::fieldHandle_t h_sumsq;
 
  204     StatisticOutput::fieldHandle_t h_count;
 
  205     StatisticOutput::fieldHandle_t h_max;
 
  206     StatisticOutput::fieldHandle_t h_min;
 
  212 #endif // SST_CORE_STATAPI_STATACCUMULATOR_H 
void addData_impl(NumberBase value) override
Present a new value to the class to be included in the statistics. 
Definition: stataccumulator.h:76
void registerOutputFields(StatisticFieldsOutput *statOutput) override
Called by the system to tell the Statistic to register its output fields. 
Definition: stataccumulator.h:158
NumberBase getMin()
Provides the minimum value presented so far. 
Definition: stataccumulator.h:109
Allows the online gathering of statistical information about a single quantity. 
Definition: stataccumulator.h:45
uint64_t getCollectionCount() const 
Return the current collection count. 
Definition: statbase.h:155
void clearStatisticData() override
Inform the Statistic to clear its data. 
Definition: stataccumulator.h:149
Forms the template defined base class for statistics gathering within SST. 
Definition: elementinfo.h:42
NumberBase getMax()
Provides the maxmimum value presented so far. 
Definition: stataccumulator.h:103
NumberBase getVariance()
Get the variance of the values presented so far. 
Definition: stataccumulator.h:131
fieldHandle_t registerField(const char *fieldName)
Register a field to be output (templated function) 
Definition: statoutput.h:239
virtual void outputField(fieldHandle_t fieldHandle, int32_t data)
Output field data. 
NumberBase getSumSquared()
Provides the sum of each value squared presented to the class so far. 
Definition: stataccumulator.h:115
Definition: statoutput.h:142
Main component object for the simulation. 
Definition: baseComponent.h:51
StatMode_t
Statistic collection mode. 
Definition: statbase.h:67
Parameter store. 
Definition: params.h:43
NumberBase getSum()
Provides the sum of the values presented so far. 
Definition: stataccumulator.h:97
uint64_t getCount()
Get a count of the number of elements presented to the statistics collection so far. 
Definition: stataccumulator.h:147
virtual void setCollectionCount(uint64_t newCount)
Set the current collection count to a defined value. 
Definition: statbase.cc:81
NumberBase getArithmeticMean()
Get the arithmetic mean of the values presented so far. 
Definition: stataccumulator.h:121
NumberBase getStandardDeviation()
Get the standard deviation of the values presented so far. 
Definition: stataccumulator.h:141