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 UserCounters counters; 28 bool last_benchmark_instance; 29 int repetitions; 30 double min_time; 31 size_t iterations; 32 int threads; // Number of concurrent threads to us 33 }; 34 35 bool FindBenchmarksInternal(const std::string& re, 36 std::vector<Benchmark::Instance>* benchmarks, 37 std::ostream* Err); 38 39 namespace { 40 41 bool IsZero(double n) { 42 return std::abs(n) < std::numeric_limits<double>::epsilon(); 43 } 44 45 } // end namespace 46 } // end namespace internal 47 } // end namespace benchmark 48 49 #endif // BENCHMARK_API_INTERNAL_H 50