19static auto normalize(
const ValueType value, BoundType upperBound){
20 [[unlikely]]
if (upperBound <= 0){
21 throw std::invalid_argument(
"Cannot normalize value into range [0,0), upperBound is zero or less");
23 if constexpr(std::integral<ValueType> && std::integral<BoundType>){
24 auto norm = value % upperBound;
26 return norm + upperBound;
30 auto norm = std::fmod(value,upperBound);
32 return norm + upperBound;
static auto normalize(const ValueType value, BoundType upperBound)
Normalizes any value into the range: [0,upperBound)
Definition Normalize.hpp:19