Caching log2_frac(N, BITRES) in the more data to save some CPU
diff --git a/libcelt/modes.c b/libcelt/modes.c
index 87f122f..3358b65 100644
--- a/libcelt/modes.c
+++ b/libcelt/modes.c
@@ -273,6 +273,7 @@
int res;
CELTMode *mode=NULL;
celt_word16 *window;
+ celt_int16 *logN;
ALLOC_STACK;
#if !defined(VAR_ARRAYS) && !defined(USE_ALLOCA)
if (global_stack==NULL)
@@ -367,6 +368,13 @@
if (mode->bits==NULL)
goto failure;
+ logN = (celt_int16*)celt_alloc(mode->nbEBands*sizeof(celt_int16));
+ if (logN==NULL)
+ goto failure;
+
+ for (i=0;i<mode->nbEBands;i++)
+ logN[i] = log2_frac(mode->eBands[i+1]-mode->eBands[i], BITRES);
+ mode->logN = logN;
#endif /* !STATIC_MODES */
clt_mdct_init(&mode->mdct, 2*mode->mdctSize);