|
|
|
@ -174,7 +174,7 @@ namespace isPowerOfTwo |
|
|
|
|
} |
|
|
|
|
}//isPowerOfTwo
|
|
|
|
|
|
|
|
|
|
namespace ceilPowerOfTwo |
|
|
|
|
namespace ceilPowerOfTwo_advanced |
|
|
|
|
{ |
|
|
|
|
template <typename genIUType> |
|
|
|
|
GLM_FUNC_QUALIFIER genIUType highestBitValue(genIUType Value) |
|
|
|
@ -290,6 +290,72 @@ namespace ceilPowerOfTwo |
|
|
|
|
Error += test_int32(); |
|
|
|
|
Error += test_uint32(); |
|
|
|
|
|
|
|
|
|
return Error; |
|
|
|
|
} |
|
|
|
|
}//namespace ceilPowerOfTwo_advanced
|
|
|
|
|
|
|
|
|
|
namespace roundPowerOfTwo |
|
|
|
|
{ |
|
|
|
|
int test() |
|
|
|
|
{ |
|
|
|
|
int Error = 0; |
|
|
|
|
|
|
|
|
|
glm::uint32 const A = glm::roundPowerOfTwo(7u); |
|
|
|
|
Error += A == 8u ? 0 : 1; |
|
|
|
|
|
|
|
|
|
glm::uint32 const B = glm::roundPowerOfTwo(15u); |
|
|
|
|
Error += B == 16u ? 0 : 1; |
|
|
|
|
|
|
|
|
|
glm::uint32 const C = glm::roundPowerOfTwo(31u); |
|
|
|
|
Error += C == 32u ? 0 : 1; |
|
|
|
|
|
|
|
|
|
glm::uint32 const D = glm::roundPowerOfTwo(9u); |
|
|
|
|
Error += D == 8u ? 0 : 1; |
|
|
|
|
|
|
|
|
|
glm::uint32 const E = glm::roundPowerOfTwo(17u); |
|
|
|
|
Error += E == 16u ? 0 : 1; |
|
|
|
|
|
|
|
|
|
glm::uint32 const F = glm::roundPowerOfTwo(33u); |
|
|
|
|
Error += F == 32u ? 0 : 1; |
|
|
|
|
|
|
|
|
|
return Error; |
|
|
|
|
} |
|
|
|
|
}//namespace roundPowerOfTwo
|
|
|
|
|
|
|
|
|
|
namespace floorPowerOfTwo |
|
|
|
|
{ |
|
|
|
|
int test() |
|
|
|
|
{ |
|
|
|
|
int Error = 0; |
|
|
|
|
|
|
|
|
|
glm::uint32 const A = glm::floorPowerOfTwo(7u); |
|
|
|
|
Error += A == 4u ? 0 : 1; |
|
|
|
|
|
|
|
|
|
glm::uint32 const B = glm::floorPowerOfTwo(15u); |
|
|
|
|
Error += B == 8u ? 0 : 1; |
|
|
|
|
|
|
|
|
|
glm::uint32 const C = glm::floorPowerOfTwo(31u); |
|
|
|
|
Error += C == 16u ? 0 : 1; |
|
|
|
|
|
|
|
|
|
return Error; |
|
|
|
|
} |
|
|
|
|
}//namespace floorPowerOfTwo
|
|
|
|
|
|
|
|
|
|
namespace ceilPowerOfTwo |
|
|
|
|
{ |
|
|
|
|
int test() |
|
|
|
|
{ |
|
|
|
|
int Error = 0; |
|
|
|
|
|
|
|
|
|
glm::uint32 const A = glm::ceilPowerOfTwo(7u); |
|
|
|
|
Error += A == 8u ? 0 : 1; |
|
|
|
|
|
|
|
|
|
glm::uint32 const B = glm::ceilPowerOfTwo(15u); |
|
|
|
|
Error += B == 16u ? 0 : 1; |
|
|
|
|
|
|
|
|
|
glm::uint32 const C = glm::ceilPowerOfTwo(31u); |
|
|
|
|
Error += C == 32u ? 0 : 1; |
|
|
|
|
|
|
|
|
|
return Error; |
|
|
|
|
} |
|
|
|
|
}//namespace ceilPowerOfTwo
|
|
|
|
@ -406,8 +472,11 @@ int main() |
|
|
|
|
int Error(0); |
|
|
|
|
|
|
|
|
|
Error += isPowerOfTwo::test(); |
|
|
|
|
Error += floorPowerOfTwo::test(); |
|
|
|
|
Error += roundPowerOfTwo::test(); |
|
|
|
|
Error += ceilPowerOfTwo::test(); |
|
|
|
|
|
|
|
|
|
Error += ceilPowerOfTwo_advanced::test(); |
|
|
|
|
|
|
|
|
|
# ifdef NDEBUG |
|
|
|
|
Error += ceilPowerOfTwo::perf(); |
|
|
|
|
# endif//NDEBUG
|
|
|
|
|