Loading lib_dec/ivas_svd_dec_fx.c +6 −13 Original line number Diff line number Diff line Loading @@ -1079,6 +1079,7 @@ static void biDiagonalReductionLeft_64( tmp=W_extract_l(W_shr(singularVectors_Left_64[currChannel][currChannel],tmpe)); for ( iCh=currChannel+1; iCh<nChannelsC; iCh++) { Word16 shifter[16]={ 27,27,27,28,30,28,29,27,30,28,30,29,29,27,27,27,27}; Word32 tmp2; Word32 tmp3; Loading @@ -1095,21 +1096,13 @@ static void biDiagonalReductionLeft_64( norm_x=W_extract_h(W_shl(norm_64,norm_x_e)); f=Mpy_32_32(norm_x,invVal); f_e=add(invVal_e, sub(norm_x_e, r_e )); printf("MYADD%d: [%08X<%2x] \x1b[1;33m",iCh,f,f_e); printf("MYADD%d,%d: [%08X<%2x] (norm_x:%d r_e:%d invVal_e:%d f_e:%d -->%d) \x1b[1;33m",iCh,currChannel,f,f_e,norm_x_e,r_e,invVal_e,f_e,shifter[iCh]); for (jCh=currChannel;jCh<nChannelsL; jCh++) { tmp2=W_extract_l(W_shr(singularVectors_Left_64[jCh][currChannel],tmpe)); // TODO: Why those??? if (iCh==3) singularVectors_Left_64[jCh][iCh]=W_add(singularVectors_Left_64[jCh][iCh],W_shr(W_mult0_32_32(f,tmp2),28)); // exponent +1. ich=1: 27 ich=3: 28 else if (iCh==4) singularVectors_Left_64[jCh][iCh]=W_add(singularVectors_Left_64[jCh][iCh],W_shr(W_mult0_32_32(f,tmp2),30)); // exponent +1. ich=1: 27 ich=3: 28 else if (iCh==5) singularVectors_Left_64[jCh][iCh]=W_add(singularVectors_Left_64[jCh][iCh],W_shr(W_mult0_32_32(f,tmp2),28)); // exponent +1. ich=1: 27 ich=3: 28 else if (iCh==6) singularVectors_Left_64[jCh][iCh]=W_add(singularVectors_Left_64[jCh][iCh],W_shr(W_mult0_32_32(f,tmp2),29)); // exponent +1. ich=1: 27 ich=3: 28 else if (iCh==8) singularVectors_Left_64[jCh][iCh]=W_add(singularVectors_Left_64[jCh][iCh],W_shr(W_mult0_32_32(f,tmp2),30)); // exponent +1. ich=1: 27 ich=3: 28 else if (iCh==9) singularVectors_Left_64[jCh][iCh]=W_add(singularVectors_Left_64[jCh][iCh],W_shr(W_mult0_32_32(f,tmp2),28)); // exponent +1. ich=1: 27 ich=3: 28 else if (iCh==10) singularVectors_Left_64[jCh][iCh]=W_add(singularVectors_Left_64[jCh][iCh],W_shr(W_mult0_32_32(f,tmp2),30)); // exponent +1. ich=1: 27 ich=3: 28 else if (iCh==11) singularVectors_Left_64[jCh][iCh]=W_add(singularVectors_Left_64[jCh][iCh],W_shr(W_mult0_32_32(f,tmp2),29)); // exponent +1. ich=1: 27 ich=3: 28 else if (iCh==12) singularVectors_Left_64[jCh][iCh]=W_add(singularVectors_Left_64[jCh][iCh],W_shr(W_mult0_32_32(f,tmp2),29)); // exponent +1. ich=1: 27 ich=3: 28 else singularVectors_Left_64[jCh][iCh]=W_add(singularVectors_Left_64[jCh][iCh],W_shr(W_mult0_32_32(f,tmp2),27)); // exponent +1. ich=1: 27 // singularVectors_Left_64[jCh][iCh]=W_add(singularVectors_Left_64[jCh][iCh],W_shr(W_mult0_32_32(f,tmp2),shifter[iCh])); singularVectors_Left_64[jCh][iCh]=W_add(singularVectors_Left_64[jCh][iCh],W_shr(W_mult0_32_32(f,tmp2),norm_x_e+23)); { Word16 n; n=W_norm(singularVectors_Left_64[jCh][iCh]); Loading Loading @@ -1404,7 +1397,7 @@ static void biDiagonalReductionLeft_fx( f = Mpy_32_32( norm_x, invVal ); /* invVal_e + (norm_x_e - r_e) */ f_e = add( invVal_e, sub( norm_x_e, r_e ) ); printf("MYADD%d: [%08X<%2x] ",iCh,f,f_e); printf("MYADD%d,%d: [%08X<%2x] ",iCh,currChannel,f,f_e); FOR( jCh = currChannel; jCh < nChannelsL; jCh++ ) /* nChannelsL */ { singularVectors[jCh][iCh] = BASOP_Util_Add_Mant32Exp( singularVectors[jCh][iCh], singularVectors2_e[jCh][iCh], Mpy_32_32( f, singularVectors[jCh][currChannel] ), add( f_e, singularVectors2_e[jCh][currChannel] ), &singularVectors2_e[jCh][iCh] ); Loading Loading
lib_dec/ivas_svd_dec_fx.c +6 −13 Original line number Diff line number Diff line Loading @@ -1079,6 +1079,7 @@ static void biDiagonalReductionLeft_64( tmp=W_extract_l(W_shr(singularVectors_Left_64[currChannel][currChannel],tmpe)); for ( iCh=currChannel+1; iCh<nChannelsC; iCh++) { Word16 shifter[16]={ 27,27,27,28,30,28,29,27,30,28,30,29,29,27,27,27,27}; Word32 tmp2; Word32 tmp3; Loading @@ -1095,21 +1096,13 @@ static void biDiagonalReductionLeft_64( norm_x=W_extract_h(W_shl(norm_64,norm_x_e)); f=Mpy_32_32(norm_x,invVal); f_e=add(invVal_e, sub(norm_x_e, r_e )); printf("MYADD%d: [%08X<%2x] \x1b[1;33m",iCh,f,f_e); printf("MYADD%d,%d: [%08X<%2x] (norm_x:%d r_e:%d invVal_e:%d f_e:%d -->%d) \x1b[1;33m",iCh,currChannel,f,f_e,norm_x_e,r_e,invVal_e,f_e,shifter[iCh]); for (jCh=currChannel;jCh<nChannelsL; jCh++) { tmp2=W_extract_l(W_shr(singularVectors_Left_64[jCh][currChannel],tmpe)); // TODO: Why those??? if (iCh==3) singularVectors_Left_64[jCh][iCh]=W_add(singularVectors_Left_64[jCh][iCh],W_shr(W_mult0_32_32(f,tmp2),28)); // exponent +1. ich=1: 27 ich=3: 28 else if (iCh==4) singularVectors_Left_64[jCh][iCh]=W_add(singularVectors_Left_64[jCh][iCh],W_shr(W_mult0_32_32(f,tmp2),30)); // exponent +1. ich=1: 27 ich=3: 28 else if (iCh==5) singularVectors_Left_64[jCh][iCh]=W_add(singularVectors_Left_64[jCh][iCh],W_shr(W_mult0_32_32(f,tmp2),28)); // exponent +1. ich=1: 27 ich=3: 28 else if (iCh==6) singularVectors_Left_64[jCh][iCh]=W_add(singularVectors_Left_64[jCh][iCh],W_shr(W_mult0_32_32(f,tmp2),29)); // exponent +1. ich=1: 27 ich=3: 28 else if (iCh==8) singularVectors_Left_64[jCh][iCh]=W_add(singularVectors_Left_64[jCh][iCh],W_shr(W_mult0_32_32(f,tmp2),30)); // exponent +1. ich=1: 27 ich=3: 28 else if (iCh==9) singularVectors_Left_64[jCh][iCh]=W_add(singularVectors_Left_64[jCh][iCh],W_shr(W_mult0_32_32(f,tmp2),28)); // exponent +1. ich=1: 27 ich=3: 28 else if (iCh==10) singularVectors_Left_64[jCh][iCh]=W_add(singularVectors_Left_64[jCh][iCh],W_shr(W_mult0_32_32(f,tmp2),30)); // exponent +1. ich=1: 27 ich=3: 28 else if (iCh==11) singularVectors_Left_64[jCh][iCh]=W_add(singularVectors_Left_64[jCh][iCh],W_shr(W_mult0_32_32(f,tmp2),29)); // exponent +1. ich=1: 27 ich=3: 28 else if (iCh==12) singularVectors_Left_64[jCh][iCh]=W_add(singularVectors_Left_64[jCh][iCh],W_shr(W_mult0_32_32(f,tmp2),29)); // exponent +1. ich=1: 27 ich=3: 28 else singularVectors_Left_64[jCh][iCh]=W_add(singularVectors_Left_64[jCh][iCh],W_shr(W_mult0_32_32(f,tmp2),27)); // exponent +1. ich=1: 27 // singularVectors_Left_64[jCh][iCh]=W_add(singularVectors_Left_64[jCh][iCh],W_shr(W_mult0_32_32(f,tmp2),shifter[iCh])); singularVectors_Left_64[jCh][iCh]=W_add(singularVectors_Left_64[jCh][iCh],W_shr(W_mult0_32_32(f,tmp2),norm_x_e+23)); { Word16 n; n=W_norm(singularVectors_Left_64[jCh][iCh]); Loading Loading @@ -1404,7 +1397,7 @@ static void biDiagonalReductionLeft_fx( f = Mpy_32_32( norm_x, invVal ); /* invVal_e + (norm_x_e - r_e) */ f_e = add( invVal_e, sub( norm_x_e, r_e ) ); printf("MYADD%d: [%08X<%2x] ",iCh,f,f_e); printf("MYADD%d,%d: [%08X<%2x] ",iCh,currChannel,f,f_e); FOR( jCh = currChannel; jCh < nChannelsL; jCh++ ) /* nChannelsL */ { singularVectors[jCh][iCh] = BASOP_Util_Add_Mant32Exp( singularVectors[jCh][iCh], singularVectors2_e[jCh][iCh], Mpy_32_32( f, singularVectors[jCh][currChannel] ), add( f_e, singularVectors2_e[jCh][currChannel] ), &singularVectors2_e[jCh][iCh] ); Loading