diff --git a/include/bx/inline/math.inl b/include/bx/inline/math.inl index 055cf8a..db5535f 100644 --- a/include/bx/inline/math.inl +++ b/include/bx/inline/math.inl @@ -11,6 +11,7 @@ #include #include +#include namespace bx { @@ -140,18 +141,13 @@ namespace bx inline BX_CONSTEXPR_FUNC bool signbit(float _a) { -#if BX_COMPILER_MSVC - return _signbit(_a); -#else - return copysign(1, _a) < 0; -// return __builtin_signbit(_a); -#endif // BX_COMPILER_MSVC + return -0.0f == _a ? 0.0f != _a : 0.0f > _a; } inline BX_CONSTEXPR_FUNC float copysign(float _value, float _sign) { #if BX_COMPILER_MSVC - return _copysign(_value, _sign); + return signbit(_value) != signbit(_sign) ? -_value : _value; #else return __builtin_copysign(_value, _sign); #endif // BX_COMPILER_MSVC