Бранимир Караџић 1 year ago
parent
commit
f259338d54
1 changed files with 15 additions and 0 deletions
  1. 15 0
      include/bx/inline/math.inl

+ 15 - 0
include/bx/inline/math.inl

@@ -402,6 +402,16 @@ namespace bx
 
 	inline BX_CONSTEXPR_FUNC float log(float _a)
 	{
+		if (_a < 0.0f)
+		{
+			return bitsToFloat(kFloatSignMask | kFloatExponentMask | kFloatMantissaMask);
+		}
+
+		if (_a == 0.0f)
+		{
+			return -kFloatInfinity;
+		}
+
 		const uint32_t ftob     = floatToBits(_a);
 
 		const uint32_t masked0  = uint32_and(ftob, kFloatExponentMask);
@@ -465,6 +475,11 @@ namespace bx
 			return 0.0f;
 		}
 
+		if (isInfinite(_a) && _a < 0.0f)
+		{
+			return 0.0f;
+		}
+
 		constexpr float kExpC0  =  1.66666666666666019037e-01f;
 		constexpr float kExpC1  = -2.77777777770155933842e-03f;
 		constexpr float kExpC2  =  6.61375632143793436117e-05f;