| 17 | } |
| 18 | |
| 19 | void benchmark::ConsolePrinter::result(const State& state) |
| 20 | { |
| 21 | auto results = state.m_elapsed_results; |
| 22 | std::sort(results.begin(), results.end()); |
| 23 | |
| 24 | double total = state.m_num_iters * std::accumulate(results.begin(), results.end(), 0.0); |
| 25 | |
| 26 | double front = 0; |
| 27 | double back = 0; |
| 28 | double median = 0; |
| 29 | |
| 30 | if (!results.empty()) { |
| 31 | front = results.front(); |
| 32 | back = results.back(); |
| 33 | |
| 34 | size_t mid = results.size() / 2; |
| 35 | median = results[mid]; |
| 36 | if (0 == results.size() % 2) { |
| 37 | median = (results[mid] + results[mid + 1]) / 2; |
| 38 | } |
| 39 | } |
| 40 | |
| 41 | std::cout << std::setprecision(6); |
| 42 | std::cout << state.m_name << ", " << state.m_num_evals << ", " << state.m_num_iters << ", " << total << ", " << front << ", " << back << ", " << median << std::endl; |
| 43 | } |
| 44 | |
| 45 | void benchmark::ConsolePrinter::footer() {} |
| 46 | benchmark::PlotlyPrinter::PlotlyPrinter(std::string plotly_url, int64_t width, int64_t height) |