--- src/short_term.c (libgsm 1.0.10) +++ src/short_term.c (libgsm 1.0.17) @@ -53,5 +53,5 @@ #undef STEP -#define STEP( B, MIC, INVA ) \ +#define STEP( B_TIMES_TWO, MIC, INVA ) \ temp1 = GSM_ADD( *LARc++, MIC ) << 10; \ - temp1 = GSM_SUB( temp1, B << 1 ); \ + temp1 = GSM_SUB( temp1, B_TIMES_TWO ); \ temp1 = GSM_MULT_R( INVA, temp1 ); \ @@ -61,9 +61,9 @@ STEP( 0, -32, 13107 ); - STEP( 2048, -16, 13107 ); - STEP( -2560, -16, 13107 ); + STEP( 4096, -16, 13107 ); + STEP( -5120, -16, 13107 ); - STEP( 94, -8, 19223 ); - STEP( -1792, -8, 17476 ); - STEP( -341, -4, 31454 ); - STEP( -1144, -4, 29708 ); + STEP( 188, -8, 19223 ); + STEP( -3584, -8, 17476 ); + STEP( -682, -4, 31454 ); + STEP( -2288, -4, 29708 );