Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(128)

Unified Diff: third_party/brotli/enc/fast_log.h

Issue 2537133002: Update brotli to v1.0.0-snapshot. (Closed)
Patch Set: Rename 'out' variable Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/brotli/enc/fast_log.h
diff --git a/third_party/brotli/enc/fast_log.h b/third_party/brotli/enc/fast_log.h
index e750e56c44eeb92ecfeaa84f5eb5596ce4f8fe3f..b9801750567066428e0bd061d2509b4d29f7faef 100644
--- a/third_party/brotli/enc/fast_log.h
+++ b/third_party/brotli/enc/fast_log.h
@@ -4,21 +4,23 @@
See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
*/
-// Utilities for fast computation of logarithms.
+/* Utilities for fast computation of logarithms. */
#ifndef BROTLI_ENC_FAST_LOG_H_
#define BROTLI_ENC_FAST_LOG_H_
-#include <assert.h>
#include <math.h>
-#include "./types.h"
+#include <brotli/types.h>
+#include <brotli/port.h>
-namespace brotli {
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
-static inline uint32_t Log2FloorNonZero(size_t n) {
+static BROTLI_INLINE uint32_t Log2FloorNonZero(size_t n) {
#ifdef __GNUC__
- return 31u ^ static_cast<uint32_t>(__builtin_clz(static_cast<uint32_t>(n)));
+ return 31u ^ (uint32_t)__builtin_clz((uint32_t)n);
#else
uint32_t result = 0;
while (n >>= 1) result++;
@@ -26,10 +28,10 @@ static inline uint32_t Log2FloorNonZero(size_t n) {
#endif
}
-// A lookup table for small values of log2(int) to be used in entropy
-// computation.
-//
-// ", ".join(["%.16ff" % x for x in [0.0]+[log2(x) for x in range(1, 256)]])
+/* A lookup table for small values of log2(int) to be used in entropy
+ computation.
+
+ ", ".join(["%.16ff" % x for x in [0.0]+[log2(x) for x in range(1, 256)]]) */
static const float kLog2Table[] = {
0.0000000000000000f, 0.0000000000000000f, 1.0000000000000000f,
1.5849625007211563f, 2.0000000000000000f, 2.3219280948873622f,
@@ -119,21 +121,25 @@ static const float kLog2Table[] = {
7.9943534368588578f
};
-// Faster logarithm for small integers, with the property of log2(0) == 0.
-static inline double FastLog2(size_t v) {
+#define LOG_2_INV 1.4426950408889634
+
+/* Faster logarithm for small integers, with the property of log2(0) == 0. */
+static BROTLI_INLINE double FastLog2(size_t v) {
if (v < sizeof(kLog2Table) / sizeof(kLog2Table[0])) {
return kLog2Table[v];
}
-#if defined(_MSC_VER) && _MSC_VER <= 1700
- // Visual Studio 2012 does not have the log2() function defined, so we use
- // log() and a multiplication instead.
- static const double kLog2Inv = 1.4426950408889634f;
- return log(static_cast<double>(v)) * kLog2Inv;
+#if (defined(_MSC_VER) && _MSC_VER <= 1700) || \
+ (defined(__ANDROID_API__) && __ANDROID_API__ < 18)
+ /* Visual Studio 2012 and Android API levels < 18 do not have the log2()
+ * function defined, so we use log() and a multiplication instead. */
+ return log((double)v) * LOG_2_INV;
#else
- return log2(static_cast<double>(v));
+ return log2((double)v);
#endif
}
-} // namespace brotli
+#if defined(__cplusplus) || defined(c_plusplus)
+} /* extern "C" */
+#endif
-#endif // BROTLI_ENC_FAST_LOG_H_
+#endif /* BROTLI_ENC_FAST_LOG_H_ */

Powered by Google App Engine
This is Rietveld 408576698