Fixed issue with frexp.

This commit is contained in:
Бранимир Караџић
2024-12-05 19:42:14 -08:00
parent b97e679fc8
commit e88e4bbad8
8 changed files with 50 additions and 44 deletions

View File

@@ -13,6 +13,10 @@
TEST_CASE("isFinite, isInfinite, isNan", "[math]")
{
#if defined(__FAST_MATH__) && __FAST_MATH__
SKIP("This unit test fails with fast math is enabled.");
#endif // !defined(__FAST_MATH__) || !__FAST_MATH__
for (uint64_t ii = 0; ii < UINT32_MAX; ii += rand()%(1<<13)+1)
{
union { uint32_t ui; float f; } u = { uint32_t(ii) };
@@ -313,8 +317,6 @@ TEST_CASE("rcp", "[math][libm]")
{
STATIC_REQUIRE(1.0f == bx::rcp(1.0f) );
STATIC_REQUIRE(2.0f == bx::rcp(0.5f) );
REQUIRE(bx::isInfinite(bx::rcp( 0.0f) ) );
REQUIRE(bx::isInfinite(bx::rcp(-0.0f) ) );
}
TEST_CASE("rcpSafe", "[math][libm]")
@@ -341,7 +343,9 @@ TEST_CASE("rsqrt", "[math][libm]")
}
// rsqrtSimd
#if !defined(__FAST_MATH__) || !__FAST_MATH__
REQUIRE(bx::isInfinite(bx::rsqrtSimd(0.0f) ) );
#endif // !defined(__FAST_MATH__) || !__FAST_MATH__
for (float xx = bx::kNearZero; xx < 100.0f; xx += 0.1f)
{
@@ -351,8 +355,10 @@ TEST_CASE("rsqrt", "[math][libm]")
}
// rsqrt
#if !defined(__FAST_MATH__) || !__FAST_MATH__
REQUIRE(bx::isInfinite(1.0f / ::sqrtf(0.0f) ) );
REQUIRE(bx::isInfinite(bx::rsqrt(0.0f) ) );
#endif // !defined(__FAST_MATH__) || !__FAST_MATH__
for (float xx = bx::kNearZero; xx < 100.0f; xx += 0.1f)
{