1*dbb99499SAndroid Build Coastguard Worker // Copyright 2016 Ismael Jimenez Martinez. All rights reserved. 2*dbb99499SAndroid Build Coastguard Worker // Copyright 2017 Roman Lebedev. All rights reserved. 3*dbb99499SAndroid Build Coastguard Worker // 4*dbb99499SAndroid Build Coastguard Worker // Licensed under the Apache License, Version 2.0 (the "License"); 5*dbb99499SAndroid Build Coastguard Worker // you may not use this file except in compliance with the License. 6*dbb99499SAndroid Build Coastguard Worker // You may obtain a copy of the License at 7*dbb99499SAndroid Build Coastguard Worker // 8*dbb99499SAndroid Build Coastguard Worker // http://www.apache.org/licenses/LICENSE-2.0 9*dbb99499SAndroid Build Coastguard Worker // 10*dbb99499SAndroid Build Coastguard Worker // Unless required by applicable law or agreed to in writing, software 11*dbb99499SAndroid Build Coastguard Worker // distributed under the License is distributed on an "AS IS" BASIS, 12*dbb99499SAndroid Build Coastguard Worker // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*dbb99499SAndroid Build Coastguard Worker // See the License for the specific language governing permissions and 14*dbb99499SAndroid Build Coastguard Worker // limitations under the License. 15*dbb99499SAndroid Build Coastguard Worker 16*dbb99499SAndroid Build Coastguard Worker #ifndef STATISTICS_H_ 17*dbb99499SAndroid Build Coastguard Worker #define STATISTICS_H_ 18*dbb99499SAndroid Build Coastguard Worker 19*dbb99499SAndroid Build Coastguard Worker #include <vector> 20*dbb99499SAndroid Build Coastguard Worker 21*dbb99499SAndroid Build Coastguard Worker #include "benchmark/benchmark.h" 22*dbb99499SAndroid Build Coastguard Worker 23*dbb99499SAndroid Build Coastguard Worker namespace benchmark { 24*dbb99499SAndroid Build Coastguard Worker 25*dbb99499SAndroid Build Coastguard Worker // Return a vector containing the mean, median and standard deviation 26*dbb99499SAndroid Build Coastguard Worker // information (and any user-specified info) for the specified list of reports. 27*dbb99499SAndroid Build Coastguard Worker // If 'reports' contains less than two non-errored runs an empty vector is 28*dbb99499SAndroid Build Coastguard Worker // returned 29*dbb99499SAndroid Build Coastguard Worker BENCHMARK_EXPORT 30*dbb99499SAndroid Build Coastguard Worker std::vector<BenchmarkReporter::Run> ComputeStats( 31*dbb99499SAndroid Build Coastguard Worker const std::vector<BenchmarkReporter::Run>& reports); 32*dbb99499SAndroid Build Coastguard Worker 33*dbb99499SAndroid Build Coastguard Worker BENCHMARK_EXPORT 34*dbb99499SAndroid Build Coastguard Worker double StatisticsMean(const std::vector<double>& v); 35*dbb99499SAndroid Build Coastguard Worker BENCHMARK_EXPORT 36*dbb99499SAndroid Build Coastguard Worker double StatisticsMedian(const std::vector<double>& v); 37*dbb99499SAndroid Build Coastguard Worker BENCHMARK_EXPORT 38*dbb99499SAndroid Build Coastguard Worker double StatisticsStdDev(const std::vector<double>& v); 39*dbb99499SAndroid Build Coastguard Worker BENCHMARK_EXPORT 40*dbb99499SAndroid Build Coastguard Worker double StatisticsCV(const std::vector<double>& v); 41*dbb99499SAndroid Build Coastguard Worker 42*dbb99499SAndroid Build Coastguard Worker } // end namespace benchmark 43*dbb99499SAndroid Build Coastguard Worker 44*dbb99499SAndroid Build Coastguard Worker #endif // STATISTICS_H_ 45