mirror of
https://github.com/bkaradzic/bx.git
synced 2026-02-17 20:52:37 +01:00
Fixed issue #182.
This commit is contained in:
@@ -179,6 +179,11 @@ namespace bx
|
||||
return log(_a) * kInvLogNat2;
|
||||
}
|
||||
|
||||
inline BX_CONST_FUNC float rsqrtRef(float _a)
|
||||
{
|
||||
return pow(_a, -0.5f);
|
||||
}
|
||||
|
||||
inline BX_CONST_FUNC float sqrtRef(float _a)
|
||||
{
|
||||
if (_a < kNearZero)
|
||||
@@ -186,7 +191,7 @@ namespace bx
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
return 1.0f/rsqrt(_a);
|
||||
return 1.0f/rsqrtRef(_a);
|
||||
}
|
||||
|
||||
inline BX_CONST_FUNC float sqrtSimd(float _a)
|
||||
@@ -208,11 +213,6 @@ namespace bx
|
||||
#endif // BX_CONFIG_SUPPORTS_SIMD
|
||||
}
|
||||
|
||||
inline BX_CONST_FUNC float rsqrtRef(float _a)
|
||||
{
|
||||
return pow(_a, -0.5f);
|
||||
}
|
||||
|
||||
inline BX_CONST_FUNC float rsqrtSimd(float _a)
|
||||
{
|
||||
if (_a < kNearZero)
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
namespace bx
|
||||
{
|
||||
BX_CONST_FUNC float sqrt(float);
|
||||
BX_CONST_FUNC float sqrtRef(float);
|
||||
|
||||
#define ELEMx 0
|
||||
#define ELEMy 1
|
||||
@@ -320,10 +320,10 @@ BX_SIMD128_IMPLEMENT_TEST(xyzw , 0xf);
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_sqrt(simd128_langext_t _a)
|
||||
{
|
||||
simd128_langext_t result;
|
||||
result.vf[0] = sqrt(_a.vf[0]);
|
||||
result.vf[1] = sqrt(_a.vf[1]);
|
||||
result.vf[2] = sqrt(_a.vf[2]);
|
||||
result.vf[3] = sqrt(_a.vf[3]);
|
||||
result.vf[0] = sqrtRef(_a.vf[0]);
|
||||
result.vf[1] = sqrtRef(_a.vf[1]);
|
||||
result.vf[2] = sqrtRef(_a.vf[2]);
|
||||
result.vf[3] = sqrtRef(_a.vf[3]);
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -331,10 +331,10 @@ BX_SIMD128_IMPLEMENT_TEST(xyzw , 0xf);
|
||||
BX_SIMD_FORCE_INLINE simd128_langext_t simd_rsqrt_est(simd128_langext_t _a)
|
||||
{
|
||||
simd128_langext_t result;
|
||||
result.vf[0] = 1.0f / sqrt(_a.vf[0]);
|
||||
result.vf[1] = 1.0f / sqrt(_a.vf[1]);
|
||||
result.vf[2] = 1.0f / sqrt(_a.vf[2]);
|
||||
result.vf[3] = 1.0f / sqrt(_a.vf[3]);
|
||||
result.vf[0] = 1.0f / sqrtRef(_a.vf[0]);
|
||||
result.vf[1] = 1.0f / sqrtRef(_a.vf[1]);
|
||||
result.vf[2] = 1.0f / sqrtRef(_a.vf[2]);
|
||||
result.vf[3] = 1.0f / sqrtRef(_a.vf[3]);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user