summaryrefslogtreecommitdiffstats
path: root/lldb/tools/lldb-perf/lib/Metric.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/tools/lldb-perf/lib/Metric.cpp')
-rw-r--r--lldb/tools/lldb-perf/lib/Metric.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/lldb/tools/lldb-perf/lib/Metric.cpp b/lldb/tools/lldb-perf/lib/Metric.cpp
index 8bb306bb9ab..d8e7935debf 100644
--- a/lldb/tools/lldb-perf/lib/Metric.cpp
+++ b/lldb/tools/lldb-perf/lib/Metric.cpp
@@ -9,6 +9,7 @@
#include "Metric.h"
#include "MemoryGauge.h"
+#include <cmath>
using namespace lldb_perf;
@@ -56,5 +57,18 @@ Metric<T>::GetAverage () const
return GetSum()/GetCount();
}
+template <class T>
+T
+Metric<T>::GetStandardDeviation () const
+{
+ T average = GetAverage();
+ T diff_squared = 0;
+ size_t count = GetCount();
+ for (auto v : m_dataset)
+ diff_squared = diff_squared + ( (v-average)*(v-average) );
+ diff_squared = diff_squared / count;
+ return sqrt(diff_squared);
+}
+
template class lldb_perf::Metric<double>;
template class lldb_perf::Metric<MemoryStats>;
OpenPOWER on IntegriCloud