[Bf-blender-cvs] [c9451f1cff4] master: [Cycles] Fix math problems in safe_logf

lazydodo noreply at git.blender.org
Sun May 7 17:16:22 CEST 2017


Commit: c9451f1cff4403855d5a77c15cfd428e0a9ebe87
Author: lazydodo
Date:   Sun May 7 09:16:14 2017 -0600
Branches: master
https://developer.blender.org/rBc9451f1cff4403855d5a77c15cfd428e0a9ebe87

[Cycles] Fix math problems in safe_logf

log(0) is undefined and should not have been included
log(1) == 0, dividing by zero is not recommended

===================================================================

M	intern/cycles/util/util_math.h

===================================================================

diff --git a/intern/cycles/util/util_math.h b/intern/cycles/util/util_math.h
index 12abd8e201e..b719640b19c 100644
--- a/intern/cycles/util/util_math.h
+++ b/intern/cycles/util/util_math.h
@@ -492,17 +492,17 @@ ccl_device float safe_powf(float a, float b)
 	return compatible_powf(a, b);
 }
 
-ccl_device float safe_logf(float a, float b)
+ccl_device float safe_divide(float a, float b)
 {
-	if(UNLIKELY(a < 0.0f || b < 0.0f))
-		return 0.0f;
-
-	return logf(a)/logf(b);
+	return (b != 0.0f)? a/b: 0.0f;
 }
 
-ccl_device float safe_divide(float a, float b)
+ccl_device float safe_logf(float a, float b)
 {
-	return (b != 0.0f)? a/b: 0.0f;
+	if(UNLIKELY(a <= 0.0f || b <= 0.0f))
+		return 0.0f;
+
+	return safe_divide(logf(a),logf(b));
 }
 
 ccl_device float safe_modulo(float a, float b)




More information about the Bf-blender-cvs mailing list