Loading lib_dec/ivas_svd_dec_fx.c +44 −60 Original line number Diff line number Diff line Loading @@ -918,7 +918,6 @@ static void HouseholderReduction_fx( } // bitwindow=nCh+1; bitwindow=1; biDiagonalReductionRight_64( singularVectors_Left_64,bitwindow, secDiag_fx,secDiag_fx_e, Loading Loading @@ -1003,6 +1002,11 @@ static void HouseholderReduction_fx( move32(); } } pop_wmops(); { int i,j; Loading @@ -1016,45 +1020,25 @@ static void HouseholderReduction_fx( for (j=0;j<nChannelsC;j++) { Word16 n; Word32 bestmatch; Word32 retval; int better; unsigned int x; Word32 tmp; unsigned int x,y; int k; bestmatch=8; x=(unsigned int)singularVectors_Left_fx[i][j]; retval=x; better=0; for (k=0;k<64;k++) { int leadingzeros; unsigned int y; Word32 z; int l; int cnt; n=norm_l(singularVectors_Left_fx[i][j]); tmp=singularVectors_Left_fx[i][j]<<n; x=(unsigned int)tmp; z=W_extract_l(W_shr(singularVectors_Left_64[i][j],k)); y=x^(unsigned int)z; leadingzeros=0; for (l=0;l<32;l++) { if (y&0x80000000) break; leadingzeros++; y<<=1; } if (bestmatch<leadingzeros) { bestmatch=leadingzeros; retval=z; better=1; } } n=W_norm(singularVectors_Left_64[i][j]); tmp=W_extract_h(W_shl(singularVectors_Left_64[i][j],n)); y=(unsigned int)tmp; cnt=0; if (!((x^y)&0xf0000000)) bettercnt++; totalcnt++; if (retval!=singularVectors_Left_fx[i][j]) bettercnt++; singularVectors_Left_fx[i][j]=retval; } } printf("\nbetter %d/%d\n",bettercnt,totalcnt); } /* SingularVecotr Accumulation */ singularVectorsAccumulationRight_fx( singularVectors_Left_fx, singularVectors_Right_fx, secDiag_fx, singularVectors_Left_fx_e, secDiag_fx_e, nChannelsC ); Loading Loading
lib_dec/ivas_svd_dec_fx.c +44 −60 Original line number Diff line number Diff line Loading @@ -918,7 +918,6 @@ static void HouseholderReduction_fx( } // bitwindow=nCh+1; bitwindow=1; biDiagonalReductionRight_64( singularVectors_Left_64,bitwindow, secDiag_fx,secDiag_fx_e, Loading Loading @@ -1003,6 +1002,11 @@ static void HouseholderReduction_fx( move32(); } } pop_wmops(); { int i,j; Loading @@ -1016,45 +1020,25 @@ static void HouseholderReduction_fx( for (j=0;j<nChannelsC;j++) { Word16 n; Word32 bestmatch; Word32 retval; int better; unsigned int x; Word32 tmp; unsigned int x,y; int k; bestmatch=8; x=(unsigned int)singularVectors_Left_fx[i][j]; retval=x; better=0; for (k=0;k<64;k++) { int leadingzeros; unsigned int y; Word32 z; int l; int cnt; n=norm_l(singularVectors_Left_fx[i][j]); tmp=singularVectors_Left_fx[i][j]<<n; x=(unsigned int)tmp; z=W_extract_l(W_shr(singularVectors_Left_64[i][j],k)); y=x^(unsigned int)z; leadingzeros=0; for (l=0;l<32;l++) { if (y&0x80000000) break; leadingzeros++; y<<=1; } if (bestmatch<leadingzeros) { bestmatch=leadingzeros; retval=z; better=1; } } n=W_norm(singularVectors_Left_64[i][j]); tmp=W_extract_h(W_shl(singularVectors_Left_64[i][j],n)); y=(unsigned int)tmp; cnt=0; if (!((x^y)&0xf0000000)) bettercnt++; totalcnt++; if (retval!=singularVectors_Left_fx[i][j]) bettercnt++; singularVectors_Left_fx[i][j]=retval; } } printf("\nbetter %d/%d\n",bettercnt,totalcnt); } /* SingularVecotr Accumulation */ singularVectorsAccumulationRight_fx( singularVectors_Left_fx, singularVectors_Right_fx, secDiag_fx, singularVectors_Left_fx_e, secDiag_fx_e, nChannelsC ); Loading