Matthew Barth | 014f07c | 2019-05-30 09:55:42 -0500 | [diff] [blame] | 1 | #pragma once |
| 2 | |
| 3 | #include <vector> |
| 4 | #include "types.hpp" |
| 5 | |
| 6 | namespace phosphor |
| 7 | { |
| 8 | namespace fan |
| 9 | { |
| 10 | namespace control |
| 11 | { |
| 12 | namespace utility |
| 13 | { |
| 14 | |
| 15 | /** |
| 16 | * @brief A utility function to return a median value |
| 17 | * @details A median value is determined from a set of values where the middle |
| 18 | * value is returned from an odd set of values and an average of the middle |
| 19 | * two values for an even set of values. |
| 20 | * |
| 21 | * @param[in] values - Set of values to determine the median from |
| 22 | * |
| 23 | * @return A median value |
| 24 | * |
| 25 | * @throw std::out_of_range Empty list of values given |
| 26 | * |
| 27 | * Note: The set of values will be partially re-ordered |
| 28 | * https://en.cppreference.com/w/cpp/algorithm/nth_element |
| 29 | */ |
| 30 | int64_t getMedian(std::vector<int64_t>& values); |
| 31 | |
| 32 | } // namespace utility |
| 33 | } // namespace control |
| 34 | } // namespace fan |
| 35 | } // namespace phosphor |