|
|
|
@ -1153,6 +1153,48 @@ namespace sign |
|
|
|
|
} |
|
|
|
|
}//namespace sign
|
|
|
|
|
|
|
|
|
|
namespace frexp_ |
|
|
|
|
{ |
|
|
|
|
int test() |
|
|
|
|
{ |
|
|
|
|
int Error(0); |
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
glm::vec1 x(1024); |
|
|
|
|
glm::ivec1 exp; |
|
|
|
|
glm::vec1 A = glm::frexp(x, exp); |
|
|
|
|
Error += glm::all(glm::epsilonEqual(A, glm::vec1(0.5), 0.00001f)) ? 0 : 1; |
|
|
|
|
Error += glm::all(glm::equal(exp, glm::ivec1(11))) ? 0 : 1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
glm::vec2 x(1024, 0.24); |
|
|
|
|
glm::ivec2 exp; |
|
|
|
|
glm::vec2 A = glm::frexp(x, exp); |
|
|
|
|
Error += glm::all(glm::epsilonEqual(A, glm::vec2(0.5, 0.96), 0.00001f)) ? 0 : 1; |
|
|
|
|
Error += glm::all(glm::equal(exp, glm::ivec2(11, -2))) ? 0 : 1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
glm::vec3 x(1024, 0.24, 0); |
|
|
|
|
glm::ivec3 exp; |
|
|
|
|
glm::vec3 A = glm::frexp(x, exp); |
|
|
|
|
Error += glm::all(glm::epsilonEqual(A, glm::vec3(0.5, 0.96, 0.0), 0.00001f)) ? 0 : 1; |
|
|
|
|
Error += glm::all(glm::equal(exp, glm::ivec3(11, -2, 0))) ? 0 : 1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
glm::vec4 x(1024, 0.24, 0, -1.33); |
|
|
|
|
glm::ivec4 exp; |
|
|
|
|
glm::vec4 A = glm::frexp(x, exp); |
|
|
|
|
Error += glm::all(glm::epsilonEqual(A, glm::vec4(0.5, 0.96, 0.0, -0.665), 0.00001f)) ? 0 : 1; |
|
|
|
|
Error += glm::all(glm::equal(exp, glm::ivec4(11, -2, 0, 1))) ? 0 : 1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return Error; |
|
|
|
|
} |
|
|
|
|
}//namespace frexp_
|
|
|
|
|
|
|
|
|
|
int main() |
|
|
|
|
{ |
|
|
|
|
int Error(0); |
|
|
|
@ -1171,6 +1213,7 @@ int main() |
|
|
|
|
Error += roundEven::test(); |
|
|
|
|
Error += isnan_::test(); |
|
|
|
|
Error += isinf_::test(); |
|
|
|
|
Error += frexp_::test(); |
|
|
|
|
|
|
|
|
|
# ifdef NDEBUG |
|
|
|
|
std::size_t Samples = 1000; |
|
|
|
|