Index: include/core/SkFloatingPoint.h |
diff --git a/include/core/SkFloatingPoint.h b/include/core/SkFloatingPoint.h |
index 1003b80b4f1109db3730c54d0b76ede4ae865703..9fb343261b2b1278bbcba14b4f38aba88d9edb92 100644 |
--- a/include/core/SkFloatingPoint.h |
+++ b/include/core/SkFloatingPoint.h |
@@ -91,6 +91,16 @@ static inline float sk_float_copysign(float x, float y) { |
#define sk_float_log(x) logf(x) |
#endif |
+// can't find log2f on android, but maybe that just a tool bug? |
+#ifdef SK_BUILD_FOR_ANDROID |
+ static inline float sk_float_log2(float x) { |
+ const double inv_ln_2 = 1.44269504088896; |
+ return (float)(log(x) * inv_ln_2); |
+ } |
+#else |
+ #define sk_float_log2(x) log2f(x) |
+#endif |
+ |
#ifdef SK_BUILD_FOR_WIN |
#define sk_float_isfinite(x) _finite(x) |
#define sk_float_isnan(x) _isnan(x) |