blob: 3458180896524adf41680b584756e342d9864f2a [file] [log] [blame]
#pragma once
#include <vector>
#include "types.hpp"
namespace phosphor
{
namespace fan
{
namespace control
{
namespace utility
{
/**
* @brief A utility function to return a median value
* @details A median value is determined from a set of values where the middle
* value is returned from an odd set of values and an average of the middle
* two values for an even set of values.
*
* @param[in] values - Set of values to determine the median from
*
* @return A median value
*
* @throw std::out_of_range Empty list of values given
*
* Note: The set of values will be partially re-ordered
* https://en.cppreference.com/w/cpp/algorithm/nth_element
*/
int64_t getMedian(std::vector<int64_t>& values);
} // namespace utility
} // namespace control
} // namespace fan
} // namespace phosphor