21 #include <celero/Statistics.h> 22 #include <celero/UserDefinedMeasurement.h> 25 #include <type_traits> 39 static_assert(std::is_arithmetic<T>::value,
"UserDefinedMeasurementTemplate requres an arithmetic type.");
59 if(this->reportSize() ==
true)
61 table.push_back({
"# Samp", [
this]() {
return static_cast<double>(this->getStatistics().getSize()); }});
64 if(this->reportMean() ==
true)
66 table.push_back({
"Mean", [
this]() {
return this->getStatistics().getMean(); }});
69 if(this->reportVariance() ==
true)
71 table.push_back({
"Var", [
this]() {
return this->getStatistics().getVariance(); }});
74 if(this->reportStandardDeviation() ==
true)
76 table.push_back({
"StdDev", [
this]() {
return this->getStatistics().getStandardDeviation(); }});
79 if(this->reportSkewness() ==
true)
81 table.push_back({
"Skew", [
this]() {
return this->getStatistics().getSkewness(); }});
84 if(this->reportKurtosis() ==
true)
86 table.push_back({
"Kurtosis", [
this]() {
return this->getStatistics().getKurtosis(); }});
89 if(this->reportZScore() ==
true)
91 table.push_back({
"ZScore", [
this]() {
return this->getStatistics().getZScore(); }});
94 if(this->reportMin() ==
true)
96 table.push_back({
"Min", [
this]() {
return static_cast<double>(this->getStatistics().getMin()); }});
99 if(this->reportMax() ==
true)
101 table.push_back({
"Max", [
this]() {
return static_cast<double>(this->getStatistics().getMax()); }});
112 this->stats.addSample(x);
121 this->stats += toMerge->stats;
125 virtual bool reportSize()
const 130 virtual bool reportMean()
const 135 virtual bool reportVariance()
const 140 virtual bool reportStandardDeviation()
const 145 virtual bool reportSkewness()
const 150 virtual bool reportKurtosis()
const 155 virtual bool reportZScore()
const 160 virtual bool reportMin()
const 165 virtual bool reportMax()
const UserDefinedMeasurementTemplate()=default
Default constructor.
std::vector< std::pair< std::string, std::function< double(void)> >> UDMAggregationTable
Describes, which aggregations should be computed on a user-defined measurement.
Definition: UserDefinedMeasurement.h:39
Base class that the user must derive user-defined measurements from.
Definition: UserDefinedMeasurement.h:48
UDMAggregationTable getAggregationInfo() const override
Must be implemented by the user.
Definition: UserDefinedMeasurementTemplate.h:55
Definition: Statistics.h:40
void addValue(T x)
You must call this method from your fixture to add a measurement.
Definition: UserDefinedMeasurementTemplate.h:110
Base class that the user must derive user-defined measurements from.
Definition: UserDefinedMeasurementTemplate.h:37
virtual ~UserDefinedMeasurementTemplate()=default
Default destructor.
void merge(const UserDefinedMeasurement *const x) override
Preserve measurements within a group/experiment/problem space set.
Definition: UserDefinedMeasurementTemplate.h:118