diff options
Diffstat (limited to 'lldb/tools/lldb-perf/lib/Metric.cpp')
-rw-r--r-- | lldb/tools/lldb-perf/lib/Metric.cpp | 14 |
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>; |