# HG changeset patch # User vitor # Date 1222373037 0 # Node ID 9dc65bb3bd3fb7e35e58b8f564273e9efcbf79a1 # Parent 926c3a5dcdd3dffde8381d8c2f3c29b35dfd99f7 Do instead of divising a float by a constant, multiply by its inverse diff -r 926c3a5dcdd3 -r 9dc65bb3bd3f ra288.c --- a/ra288.c Thu Sep 25 19:25:28 2008 +0000 +++ b/ra288.c Thu Sep 25 20:03:57 2008 +0000 @@ -96,12 +96,12 @@ /* block 48 of G.728 spec */ /* exp(sum * 0.1151292546497) == pow(10.0,sum/20) */ - sumsum = exp(sum * 0.1151292546497) * gain / (2048 * 4096); + sumsum = exp(sum * 0.1151292546497) * gain * (1.0/(1<<23)); for (i=0; i < 5; i++) buffer[i] = codetable[cb_coef][i] * sumsum; - sum = (4096 * 4096) * scalar_product_float(buffer, buffer, 5) / 5; + sum = scalar_product_float(buffer, buffer, 5) * ((1<<24)/5.); sum = FFMAX(sum, 1);