23template <
typename AnyNumber>
26 return number < 0 ? -number : number;
45template <
typename AnyNumber>
46constexpr AnyNumber
getConstrain(AnyNumber number, AnyNumber min, AnyNumber max)
48 return number < min ? min : (number > max ? max : number);
65template <
typename AnyNumber>
66AnyNumber
getMedian(AnyNumber unsortedNumbers[],
const unsigned int& arraySize)
69 for (
unsigned int i = 0; i < arraySize - 1; i++)
71 for (
unsigned int j = 0; j < arraySize - 1 - i; j++)
73 if (unsortedNumbers[j] > unsortedNumbers[j + 1])
75 auto swappedValue = unsortedNumbers[j];
76 unsortedNumbers[j] = unsortedNumbers[j + 1];
77 unsortedNumbers[j + 1] = swappedValue;
82 return unsortedNumbers[arraySize / 2];
103template <
typename AnyNumber>
105 AnyNumber valueToMap, AnyNumber fromLow, AnyNumber fromHigh, AnyNumber toLow, AnyNumber toHigh)
107 return fromHigh == fromLow
109 : (valueToMap - fromLow) * (toHigh - toLow) / (fromHigh - fromLow) + toLow;
constexpr AnyNumber getMap(AnyNumber valueToMap, AnyNumber fromLow, AnyNumber fromHigh, AnyNumber toLow, AnyNumber toHigh)
Maps a value from a range to another.
constexpr bool areAlmostEqual(float a, float b)
Compares two floating point numbers.
AnyNumber getMedian(AnyNumber unsortedNumbers[], const unsigned int &arraySize)
Gets the median value out of the supplied number array.
constexpr AnyNumber getConstrain(AnyNumber number, AnyNumber min, AnyNumber max)
Limit the number between a range.
constexpr AnyNumber getAbsolute(AnyNumber number)
Gets the absolute of the supplied number.