Loading lib_com/basop_util.c +5 −3 Original line number Diff line number Diff line Loading @@ -1038,15 +1038,17 @@ Word32 div_w( Word32 L_num, Word32 L_den ) } /* Replace BASOP_Util_Divide3232_Scale_cadence() with simplified function which calculates an approximation */ //#define BASOP_Util_Divide3232_Scale_cadence_REPLACEMENT //#define func_BASOP_Util_Divide3232_Scale_cadence_REPLACEMENT #ifdef BASOP_Util_Divide3232_Scale_cadence_REPLACEMENT #ifdef func_BASOP_Util_Divide3232_Scale_cadence_REPLACEMENT Word32 BASOP_Util_Divide3232_Scale_cadence_REPLACEMENT( Word32 x, Word32 y, Word16 *s ) { Word16 exp = 0; Word32 tmp32 = ISqrt32( y, &exp ); tmp32 = Mpy_32_32( tmp32, tmp32 ); exp = imult1616( 2, exp ); if (L_sub(x, 0x7FFFFFFF) != 0) tmp32 = Mpy_32_32( tmp32, x ); *s = exp; Loading lib_rend/ivas_dirac_dec_binaural_functions.c +10 −6 Original line number Diff line number Diff line Loading @@ -4560,13 +4560,17 @@ static void formulate2x2MixingMatrix_fx( q_maxEneDiv = add( sub( 31, exp ), sub( Q30, 62 ) ); } IF( maxEne_fx != 0 ) { exp = sub( 31, q_maxEne ); maxEneDiv_fx = ISqrt32( maxEne_fx, &exp ); maxEneDiv_fx = Mpy_32_32( maxEneDiv_fx, maxEneDiv_fx ); exp = imult1616( 2, exp ); q_maxEneDiv = sub( 31, exp ); #ifdef func_BASOP_Util_Divide3232_Scale_cadence_REPLACEMENT { /*use approximation*/ maxEneDiv_fx = BASOP_Util_Divide3232_Scale_cadence_REPLACEMENT( 0x7FFFFFFF, maxEne_fx, &exp ); q_maxEneDiv = add( sub( 31, exp ), sub( 31, q_maxEne ) ); } #else { /*Use old style, instead*/ maxEneDiv_fx = BASOP_Util_Divide3232_Scale_cadence( ONE_IN_Q30, maxEne_fx, &exp ); q_maxEneDiv = add( sub( 31, exp ), sub( Q30, q_maxEne ) ); } #endif #else // 4611686 = Q62 IF( maxEne_fx == 0 ) Loading Loading
lib_com/basop_util.c +5 −3 Original line number Diff line number Diff line Loading @@ -1038,15 +1038,17 @@ Word32 div_w( Word32 L_num, Word32 L_den ) } /* Replace BASOP_Util_Divide3232_Scale_cadence() with simplified function which calculates an approximation */ //#define BASOP_Util_Divide3232_Scale_cadence_REPLACEMENT //#define func_BASOP_Util_Divide3232_Scale_cadence_REPLACEMENT #ifdef BASOP_Util_Divide3232_Scale_cadence_REPLACEMENT #ifdef func_BASOP_Util_Divide3232_Scale_cadence_REPLACEMENT Word32 BASOP_Util_Divide3232_Scale_cadence_REPLACEMENT( Word32 x, Word32 y, Word16 *s ) { Word16 exp = 0; Word32 tmp32 = ISqrt32( y, &exp ); tmp32 = Mpy_32_32( tmp32, tmp32 ); exp = imult1616( 2, exp ); if (L_sub(x, 0x7FFFFFFF) != 0) tmp32 = Mpy_32_32( tmp32, x ); *s = exp; Loading
lib_rend/ivas_dirac_dec_binaural_functions.c +10 −6 Original line number Diff line number Diff line Loading @@ -4560,13 +4560,17 @@ static void formulate2x2MixingMatrix_fx( q_maxEneDiv = add( sub( 31, exp ), sub( Q30, 62 ) ); } IF( maxEne_fx != 0 ) { exp = sub( 31, q_maxEne ); maxEneDiv_fx = ISqrt32( maxEne_fx, &exp ); maxEneDiv_fx = Mpy_32_32( maxEneDiv_fx, maxEneDiv_fx ); exp = imult1616( 2, exp ); q_maxEneDiv = sub( 31, exp ); #ifdef func_BASOP_Util_Divide3232_Scale_cadence_REPLACEMENT { /*use approximation*/ maxEneDiv_fx = BASOP_Util_Divide3232_Scale_cadence_REPLACEMENT( 0x7FFFFFFF, maxEne_fx, &exp ); q_maxEneDiv = add( sub( 31, exp ), sub( 31, q_maxEne ) ); } #else { /*Use old style, instead*/ maxEneDiv_fx = BASOP_Util_Divide3232_Scale_cadence( ONE_IN_Q30, maxEne_fx, &exp ); q_maxEneDiv = add( sub( 31, exp ), sub( Q30, q_maxEne ) ); } #endif #else // 4611686 = Q62 IF( maxEne_fx == 0 ) Loading