From 9b7150266974cb29db8482ada315622a3a5fdf92 Mon Sep 17 00:00:00 2001 From: James Zern Date: Mon, 4 Jun 2012 18:36:38 -0700 Subject: [PATCH] histogram: add log2 wrapper Change-Id: I5e68efaf5f763a42ace1af83f4b7887e0ddfd099 --- src/enc/histogram.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/enc/histogram.c b/src/enc/histogram.c index f9dfbdc8..6bb92e01 100644 --- a/src/enc/histogram.c +++ b/src/enc/histogram.c @@ -7,6 +7,9 @@ // // Author: Jyrki Alakuijala (jyrki@google.com) // +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif #ifdef USE_LOSSLESS_ENCODER @@ -17,6 +20,17 @@ #include "./histogram.h" #include "../dsp/lossless.h" +#if defined(_MSC_VER) && !defined(NOT_HAVE_LOG2) +# define NOT_HAVE_LOG2 1 +#endif + +#ifdef NOT_HAVE_LOG2 +static WEBP_INLINE double log2(double d) { + const double kLog2Reciprocal = 1.442695040888963; + return log(d) * kLog2Reciprocal; +} +#endif + static void HistogramClear(VP8LHistogram* const p) { memset(p->literal_, 0, sizeof(p->literal_)); memset(p->red_, 0, sizeof(p->red_));