This commit is contained in:
Бранимир Караџић
2024-11-19 20:18:14 -08:00
parent 40df90e0c3
commit 004821227f
3 changed files with 30 additions and 30 deletions

View File

@@ -44,7 +44,7 @@ namespace bx
return bitCast<double>(_a);
}
inline BX_CONST_FUNC uint32_t floatFlip(uint32_t _value)
inline BX_CONSTEXPR_FUNC uint32_t floatFlip(uint32_t _value)
{
// Reference(s):
// - http://archive.fo/2012.12.08-212402/http://stereopsis.com/radix.html
@@ -56,37 +56,37 @@ namespace bx
return result;
}
inline BX_CONST_FUNC bool isNan(float _f)
inline BX_CONSTEXPR_FUNC bool isNan(float _f)
{
const uint32_t tmp = floatToBits(_f) & INT32_MAX;
return tmp > kFloatExponentMask;
}
inline BX_CONST_FUNC bool isNan(double _f)
inline BX_CONSTEXPR_FUNC bool isNan(double _f)
{
const uint64_t tmp = doubleToBits(_f) & INT64_MAX;
return tmp > kDoubleExponentMask;
}
inline BX_CONST_FUNC bool isFinite(float _f)
inline BX_CONSTEXPR_FUNC bool isFinite(float _f)
{
const uint32_t tmp = floatToBits(_f) & INT32_MAX;
return tmp < kFloatExponentMask;
}
inline BX_CONST_FUNC bool isFinite(double _f)
inline BX_CONSTEXPR_FUNC bool isFinite(double _f)
{
const uint64_t tmp = doubleToBits(_f) & INT64_MAX;
return tmp < kDoubleExponentMask;
}
inline BX_CONST_FUNC bool isInfinite(float _f)
inline BX_CONSTEXPR_FUNC bool isInfinite(float _f)
{
const uint32_t tmp = floatToBits(_f) & INT32_MAX;
return tmp == kFloatExponentMask;
}
inline BX_CONST_FUNC bool isInfinite(double _f)
inline BX_CONSTEXPR_FUNC bool isInfinite(double _f)
{
const uint64_t tmp = doubleToBits(_f) & INT64_MAX;
return tmp == kDoubleExponentMask;

View File

@@ -124,31 +124,31 @@ namespace bx
/// Returns sortable floating point value.
///
BX_CONST_FUNC uint32_t floatFlip(uint32_t _value);
BX_CONSTEXPR_FUNC uint32_t floatFlip(uint32_t _value);
/// Returns true if _f is a number that is NaN.
///
BX_CONST_FUNC bool isNan(float _f);
BX_CONSTEXPR_FUNC bool isNan(float _f);
/// Returns true if _f is a number that is NaN.
///
BX_CONST_FUNC bool isNan(double _f);
BX_CONSTEXPR_FUNC bool isNan(double _f);
/// Returns true if _f is not infinite and is not a NaN.
///
BX_CONST_FUNC bool isFinite(float _f);
BX_CONSTEXPR_FUNC bool isFinite(float _f);
/// Returns true if _f is not infinite and is not a NaN.
///
BX_CONST_FUNC bool isFinite(double _f);
BX_CONSTEXPR_FUNC bool isFinite(double _f);
/// Returns true if _f is infinite and is not a NaN.
///
BX_CONST_FUNC bool isInfinite(float _f);
BX_CONSTEXPR_FUNC bool isInfinite(float _f);
/// Returns true if _f is infinite and is not a NaN.
///
BX_CONST_FUNC bool isInfinite(double _f);
BX_CONSTEXPR_FUNC bool isInfinite(double _f);
/// Returns the largest integer value not greater than _f.
///