Loading lib_dec/ivas_svd_dec_fx.c +53 −12 Original line number Diff line number Diff line Loading @@ -906,6 +906,24 @@ static void HouseholderReduction_fx( nChannelsC, nCh ); { int i,j; printf("COMPARE%d \x1b[1;32mstart\x1b[0m\n",nCh); for (i=0;i<nChannelsL;i++) { printf("COMPARE%d,%d: \x1b[1;32m",nCh,i); for (j=0;j<nChannelsC;j++) { Word16 n; n=W_norm(singularVectors_Left_64[i][j]); printf("%08X ",W_extract_h(W_shl(singularVectors_Left_64[i][j],n))); } printf("\x1b[0m\n"); } printf("COMPARE%d \x1b[1;32mend\x1b[0m\n",nCh); } biDiagonalReductionRight_64( singularVectors_Left_64,nCh, secDiag_fx,secDiag_fx_e, Loading Loading @@ -935,6 +953,21 @@ static void HouseholderReduction_fx( { #ifdef MYCHANGES biDiagonalReductionLeft_fx( singularVectors_Left_fx, singularValues_fx, singularVectors_Left_fx_e, singularValues_fx_e, nChannelsL, nChannelsC, nCh ); { int i,j; printf("COMPARE%d start\n",nCh); for (i=0;i<nChannelsL;i++) { printf("COMPARE%d,%d: ",nCh,i); for (j=0;j<nChannelsC;j++) { Word16 n; printf("%08X ",singularVectors_Left_fx[i][j]); } printf("\n"); } printf("COMPARE%d end\n",nCh); } biDiagonalReductionRight_fx( singularVectors_Left_fx, secDiag_fx, singularVectors_Left_fx_e, secDiag_fx_e, nChannelsL, nChannelsC, nCh, &g_fx, &g_e ); #else biDiagonalReductionLeft_fx( singularVectors_Left_fx, singularValues_fx, secDiag_fx, singularVectors_Left_fx_e, singularValues_fx_e, secDiag_fx_e, nChannelsL, nChannelsC, nCh, &sig_x_fx, &sig_x_fx_e, &g_fx ); Loading Loading @@ -1062,18 +1095,26 @@ 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: \x1b[1;33m"); printf("MYADD%d: [%08X<%2x] \x1b[1;33m",iCh,f,f_e); for (jCh=currChannel;jCh<nChannelsL; jCh++) { tmp2=W_extract_l(W_shr(singularVectors_Left_64[jCh][currChannel],tmpe)); printf("%016llX + %08X*%08X (%016llX %08X ) =",singularVectors_Left_64[jCh][iCh],f,tmp2, -W_mult0_32_32(f,tmp2), -Mpy_32_32(f,tmp2) ); singularVectors_Left_64[jCh][iCh]=W_add(singularVectors_Left_64[jCh][iCh],W_shr(W_mult0_32_32(f,tmp2),28)); // exponent +1 printf("%016llX ",-singularVectors_Left_64[jCh][iCh]); // 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 { Word16 n; n=W_norm(singularVectors_Left_64[jCh][iCh]); printf("%08X ",W_extract_h(W_shl(singularVectors_Left_64[jCh][iCh],n))); } } printf("\x1b[0m\n"); } Loading Loading @@ -1363,12 +1404,11 @@ 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: "); printf("MYADD%d: [%08X<%2x] ",iCh,f,f_e); FOR( jCh = currChannel; jCh < nChannelsL; jCh++ ) /* nChannelsL */ { printf("%08X<%02X + %08X<%02X*%08X<%02X= ",singularVectors[jCh][iCh],singularVectors2_e[jCh][iCh], f,f_e, singularVectors[jCh][currChannel], singularVectors2_e[jCh][currChannel]); 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] ); printf("%08X<%02X ",-singularVectors[jCh][iCh],singularVectors2_e[jCh][iCh]); printf("%08X ",singularVectors[jCh][iCh]); move32(); } printf("\n"); Loading @@ -1379,6 +1419,7 @@ static void biDiagonalReductionLeft_fx( move32(); singularValues_e[currChannel] = g_e; move16(); printf("MYADD done\n"); } return; Loading Loading
lib_dec/ivas_svd_dec_fx.c +53 −12 Original line number Diff line number Diff line Loading @@ -906,6 +906,24 @@ static void HouseholderReduction_fx( nChannelsC, nCh ); { int i,j; printf("COMPARE%d \x1b[1;32mstart\x1b[0m\n",nCh); for (i=0;i<nChannelsL;i++) { printf("COMPARE%d,%d: \x1b[1;32m",nCh,i); for (j=0;j<nChannelsC;j++) { Word16 n; n=W_norm(singularVectors_Left_64[i][j]); printf("%08X ",W_extract_h(W_shl(singularVectors_Left_64[i][j],n))); } printf("\x1b[0m\n"); } printf("COMPARE%d \x1b[1;32mend\x1b[0m\n",nCh); } biDiagonalReductionRight_64( singularVectors_Left_64,nCh, secDiag_fx,secDiag_fx_e, Loading Loading @@ -935,6 +953,21 @@ static void HouseholderReduction_fx( { #ifdef MYCHANGES biDiagonalReductionLeft_fx( singularVectors_Left_fx, singularValues_fx, singularVectors_Left_fx_e, singularValues_fx_e, nChannelsL, nChannelsC, nCh ); { int i,j; printf("COMPARE%d start\n",nCh); for (i=0;i<nChannelsL;i++) { printf("COMPARE%d,%d: ",nCh,i); for (j=0;j<nChannelsC;j++) { Word16 n; printf("%08X ",singularVectors_Left_fx[i][j]); } printf("\n"); } printf("COMPARE%d end\n",nCh); } biDiagonalReductionRight_fx( singularVectors_Left_fx, secDiag_fx, singularVectors_Left_fx_e, secDiag_fx_e, nChannelsL, nChannelsC, nCh, &g_fx, &g_e ); #else biDiagonalReductionLeft_fx( singularVectors_Left_fx, singularValues_fx, secDiag_fx, singularVectors_Left_fx_e, singularValues_fx_e, secDiag_fx_e, nChannelsL, nChannelsC, nCh, &sig_x_fx, &sig_x_fx_e, &g_fx ); Loading Loading @@ -1062,18 +1095,26 @@ 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: \x1b[1;33m"); printf("MYADD%d: [%08X<%2x] \x1b[1;33m",iCh,f,f_e); for (jCh=currChannel;jCh<nChannelsL; jCh++) { tmp2=W_extract_l(W_shr(singularVectors_Left_64[jCh][currChannel],tmpe)); printf("%016llX + %08X*%08X (%016llX %08X ) =",singularVectors_Left_64[jCh][iCh],f,tmp2, -W_mult0_32_32(f,tmp2), -Mpy_32_32(f,tmp2) ); singularVectors_Left_64[jCh][iCh]=W_add(singularVectors_Left_64[jCh][iCh],W_shr(W_mult0_32_32(f,tmp2),28)); // exponent +1 printf("%016llX ",-singularVectors_Left_64[jCh][iCh]); // 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 { Word16 n; n=W_norm(singularVectors_Left_64[jCh][iCh]); printf("%08X ",W_extract_h(W_shl(singularVectors_Left_64[jCh][iCh],n))); } } printf("\x1b[0m\n"); } Loading Loading @@ -1363,12 +1404,11 @@ 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: "); printf("MYADD%d: [%08X<%2x] ",iCh,f,f_e); FOR( jCh = currChannel; jCh < nChannelsL; jCh++ ) /* nChannelsL */ { printf("%08X<%02X + %08X<%02X*%08X<%02X= ",singularVectors[jCh][iCh],singularVectors2_e[jCh][iCh], f,f_e, singularVectors[jCh][currChannel], singularVectors2_e[jCh][currChannel]); 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] ); printf("%08X<%02X ",-singularVectors[jCh][iCh],singularVectors2_e[jCh][iCh]); printf("%08X ",singularVectors[jCh][iCh]); move32(); } printf("\n"); Loading @@ -1379,6 +1419,7 @@ static void biDiagonalReductionLeft_fx( move32(); singularValues_e[currChannel] = g_e; move16(); printf("MYADD done\n"); } return; Loading