diff options
Diffstat (limited to '3rdparty/bx/include/bx/inline/math.inl')
-rw-r--r-- | 3rdparty/bx/include/bx/inline/math.inl | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/3rdparty/bx/include/bx/inline/math.inl b/3rdparty/bx/include/bx/inline/math.inl index 81ce759ec99..6f946e1f82a 100644 --- a/3rdparty/bx/include/bx/inline/math.inl +++ b/3rdparty/bx/include/bx/inline/math.inl @@ -10,6 +10,7 @@ #endif // BX_MATH_H_HEADER_GUARD #include <bx/simd_t.h> +#include <bx/uint32_t.h> namespace bx { @@ -126,6 +127,11 @@ namespace bx return _a + (_b - _a) * _t; } + inline BX_CONSTEXPR_FUNC float invLerp(float _a, float _b, float _value) + { + return (_value - _a) / (_b - _a); + } + inline BX_CONSTEXPR_FUNC float sign(float _a) { return _a < 0.0f ? -1.0f : 1.0f; @@ -191,11 +197,18 @@ namespace bx return pow(2.0f, _a); } + template<> inline BX_CONST_FUNC float log2(float _a) { return log(_a) * kInvLogNat2; } + template<> + inline BX_CONST_FUNC int32_t log2(int32_t _a) + { + return 31 - uint32_cntlz(_a); + } + inline BX_CONST_FUNC float rsqrtRef(float _a) { return pow(_a, -0.5f); |