| 64 | |
| 65 | template<typename T> |
| 66 | static T stdev(const std::vector<T> & v) { |
| 67 | if (v.size() <= 1) { |
| 68 | return 0; |
| 69 | } |
| 70 | T mean = avg(v); |
| 71 | T sq_sum = std::inner_product(v.begin(), v.end(), v.begin(), T(0)); |
| 72 | T stdev = std::sqrt(sq_sum / (T)(v.size() - 1) - mean * mean * (T)v.size() / (T)(v.size() - 1)); |
| 73 | return stdev; |
| 74 | } |
| 75 | |
| 76 | static std::string get_cpu_info() { |
| 77 | std::string id; |