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 |
48 | |