Loading lib_dec/ivas_svd_dec.c +4 −5 Original line number Diff line number Diff line Loading @@ -53,10 +53,9 @@ #if 1 #define FIX_1010_OPT_DIV #define FIX_1010_OPT_GIVENS #define FIX_1010_OPT_GIVENS_INV #define FIX_1010_OPT_GIVENS_AMAX_BMIN //#define FIX_1010_OPT_GIVENS_AMAX_BMIN #endif /*-----------------------------------------------------------------------* Loading Loading @@ -1261,13 +1260,13 @@ IF( LT_16( currChannel, nChannelsL ) ) /* i <= m */ move16(); FOR( jCh = idx; jCh < nChannelsL; jCh++ ) /* nChannelsL */ { #ifndef FIX_1010_OPT_DIVno #ifndef FIX_1010_OPT_DIV singularVectors[jCh][currChannel] = BASOP_Util_Divide3232_Scale_cadence( singularVectors[jCh][currChannel], maxWithSign_fx( *sig_x ), &sing_exp[jCh] ); /* exp(sing_exp + (singularVectors_e - sig_x_e) */ move32(); sing_exp[jCh] = add( sing_exp[jCh], sub( *singularVectors_e, *sig_x_e ) ); move16(); #else temp_e = norm_l( singularVectors[jCh][currChannel] ); Word16 temp_e = norm_l( singularVectors[jCh][currChannel] ); singularVectors[jCh][currChannel] = Mpy_32_32( L_shl( singularVectors[jCh][currChannel], temp_e ), invVal ); /* exp(sing_exp + (singularVectors_e - sig_x_e) */ move32(); sing_exp[jCh] = add( sub( invVal_e, temp_e ), sub( *singularVectors_e, *sig_x_e ) ); Loading Loading @@ -1807,7 +1806,7 @@ static void get_alpha_beta( Word32 p, Word16 p_e, Word32 q, Word16 q_e, Word32 * p = L_shl( p, shift ); p_e = sub( p_e, shift ); shift = sub( q_e, p_e ); r = shl_sat( div_s( extract_h( q ), extract_h( p ) ), shift ); r = shl_sat( div_s( extract_h( q ), s_max(1, extract_h( p ) ) ), shift ); /* Second order polyfit of atan(r)/(pi/4) for r=0..1 */ r = add( add( mult( mult( r, r ), FL2WORD16_SCALE( -3.672563685340096e-01, 3 ) ), mult( r, FL2WORD16_SCALE( 1.375369641423651e+00, 3 ) ) ), FL2WORD16_SCALE( -6.529424378422714e-03, 3 ) ); r = s_min( s_max( 0, shr( r, WORD16_BITS - 1 - 7 - 3 ) ), NUM_REGIONS - 1 ); Loading Loading
lib_dec/ivas_svd_dec.c +4 −5 Original line number Diff line number Diff line Loading @@ -53,10 +53,9 @@ #if 1 #define FIX_1010_OPT_DIV #define FIX_1010_OPT_GIVENS #define FIX_1010_OPT_GIVENS_INV #define FIX_1010_OPT_GIVENS_AMAX_BMIN //#define FIX_1010_OPT_GIVENS_AMAX_BMIN #endif /*-----------------------------------------------------------------------* Loading Loading @@ -1261,13 +1260,13 @@ IF( LT_16( currChannel, nChannelsL ) ) /* i <= m */ move16(); FOR( jCh = idx; jCh < nChannelsL; jCh++ ) /* nChannelsL */ { #ifndef FIX_1010_OPT_DIVno #ifndef FIX_1010_OPT_DIV singularVectors[jCh][currChannel] = BASOP_Util_Divide3232_Scale_cadence( singularVectors[jCh][currChannel], maxWithSign_fx( *sig_x ), &sing_exp[jCh] ); /* exp(sing_exp + (singularVectors_e - sig_x_e) */ move32(); sing_exp[jCh] = add( sing_exp[jCh], sub( *singularVectors_e, *sig_x_e ) ); move16(); #else temp_e = norm_l( singularVectors[jCh][currChannel] ); Word16 temp_e = norm_l( singularVectors[jCh][currChannel] ); singularVectors[jCh][currChannel] = Mpy_32_32( L_shl( singularVectors[jCh][currChannel], temp_e ), invVal ); /* exp(sing_exp + (singularVectors_e - sig_x_e) */ move32(); sing_exp[jCh] = add( sub( invVal_e, temp_e ), sub( *singularVectors_e, *sig_x_e ) ); Loading Loading @@ -1807,7 +1806,7 @@ static void get_alpha_beta( Word32 p, Word16 p_e, Word32 q, Word16 q_e, Word32 * p = L_shl( p, shift ); p_e = sub( p_e, shift ); shift = sub( q_e, p_e ); r = shl_sat( div_s( extract_h( q ), extract_h( p ) ), shift ); r = shl_sat( div_s( extract_h( q ), s_max(1, extract_h( p ) ) ), shift ); /* Second order polyfit of atan(r)/(pi/4) for r=0..1 */ r = add( add( mult( mult( r, r ), FL2WORD16_SCALE( -3.672563685340096e-01, 3 ) ), mult( r, FL2WORD16_SCALE( 1.375369641423651e+00, 3 ) ) ), FL2WORD16_SCALE( -6.529424378422714e-03, 3 ) ); r = s_min( s_max( 0, shr( r, WORD16_BITS - 1 - 7 - 3 ) ), NUM_REGIONS - 1 ); Loading