]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - utils/google-benchmark/src/benchmark_api_internal.h
Vendor import of libc++ trunk r290819:
[FreeBSD/FreeBSD.git] / utils / google-benchmark / src / benchmark_api_internal.h
1 #ifndef BENCHMARK_API_INTERNAL_H
2 #define BENCHMARK_API_INTERNAL_H
3
4 #include "benchmark/benchmark_api.h"
5
6 #include <cmath>
7 #include <iosfwd>
8 #include <limits>
9 #include <string>
10 #include <vector>
11
12 namespace benchmark {
13 namespace internal {
14
15 // Information kept per benchmark we may want to run
16 struct Benchmark::Instance {
17   std::string name;
18   Benchmark* benchmark;
19   ReportMode report_mode;
20   std::vector<int> arg;
21   TimeUnit time_unit;
22   int range_multiplier;
23   bool use_real_time;
24   bool use_manual_time;
25   BigO complexity;
26   BigOFunc* complexity_lambda;
27   bool last_benchmark_instance;
28   int repetitions;
29   double min_time;
30   int threads;  // Number of concurrent threads to us
31 };
32
33 bool FindBenchmarksInternal(const std::string& re,
34                             std::vector<Benchmark::Instance>* benchmarks,
35                             std::ostream* Err);
36
37 namespace {
38
39 bool IsZero(double n) {
40   return std::abs(n) < std::numeric_limits<double>::epsilon();
41 }
42
43 }  // end namespace
44 }  // end namespace internal
45 }  // end namespace benchmark
46
47 #endif  // BENCHMARK_API_INTERNAL_H