23 using std::ostringstream;
65 map<string, QuantityData>::iterator it;
76 <<
"\n*** STATISTICS (min - avg - max - last - nSamples - total) ***\n";
77 map<string, QuantityData>::iterator it;
79 if (it->second.stops > 0)
report(it->first, precision, output);
100 std::cout <<
"Statistics active." << std::endl;
105 std::cout <<
"Statistics inactive." << std::endl;
123 output <<
name << pad;
124 output << std::fixed << std::setprecision(precision) << (quant_info.
min)
126 output << std::fixed << std::setprecision(precision)
127 << (quant_info.
total / (
long double)quant_info.
stops) <<
"\t";
128 output << std::fixed << std::setprecision(precision) << (quant_info.
max)
130 output << std::fixed << std::setprecision(precision) << (quant_info.
last)
132 output << std::fixed << std::setprecision(precision) << quant_info.
stops
134 output << std::fixed << std::setprecision(precision) << quant_info.
total
145 return quant_info.
total;
155 return (quant_info.
total / (
long double)quant_info.
stops);
165 return quant_info.
min;
175 return quant_info.
max;
185 return quant_info.
last;
A class to compute statistics about quantities of interest.
void report(std::string name, int precision=2, std::ostream &output=std::cout)
long double get_max(std::string name)
void reset(std::string name)
long double get_min(std::string name)
long double get_total(std::string name)
long double get_average(std::string name)
void report_all(int precision=2, std::ostream &output=std::cout)
bool quantity_exists(std::string name)
void store(std::string name, const double &value)
std::map< std::string, QuantityData > * records_of
long double get_last(std::string name)
Statistics & getStatistics()
#define STATISTICS_MAX_NAME_LENGTH