(Math) Added CountBits function
Former-commit-id: 11e825a95a7bda300e46eb321f0fdb51bea93343
This commit is contained in:
parent
458fba2180
commit
2bde611d33
|
|
@ -22,6 +22,7 @@
|
||||||
|
|
||||||
template<typename T> T NzApproach(T value, T objective, T increment);
|
template<typename T> T NzApproach(T value, T objective, T increment);
|
||||||
template<typename T> constexpr T NzClamp(T value, T min, T max);
|
template<typename T> constexpr T NzClamp(T value, T min, T max);
|
||||||
|
template<typename T> T NzCountBits(T value);
|
||||||
template<typename T> constexpr T NzFromDegrees(T degrees);
|
template<typename T> constexpr T NzFromDegrees(T degrees);
|
||||||
template<typename T> constexpr T NzFromRadians(T radians);
|
template<typename T> constexpr T NzFromRadians(T radians);
|
||||||
template<typename T> constexpr T NzDegreeToRadian(T degrees);
|
template<typename T> constexpr T NzDegreeToRadian(T degrees);
|
||||||
|
|
|
||||||
|
|
@ -114,6 +114,20 @@ constexpr T NzClamp(T value, T min, T max)
|
||||||
return std::max(std::min(value, max), min);
|
return std::max(std::min(value, max), min);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
T NzCountBits(T value)
|
||||||
|
{
|
||||||
|
// https://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetKernighan
|
||||||
|
unsigned int count = 0;
|
||||||
|
while (value)
|
||||||
|
{
|
||||||
|
value &= value - 1;
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
constexpr T NzDegreeToRadian(T degrees)
|
constexpr T NzDegreeToRadian(T degrees)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue