Loading lib_dec/ivas_svd_dec_fx.c +19 −7 Original line number Diff line number Diff line Loading @@ -879,9 +879,9 @@ static void HouseholderReduction_fx( Word16 iCh, jCh; Word16 singularVectors_Left_fx_e[MAX_OUTPUT_CHANNELS][MAX_OUTPUT_CHANNELS]; printf("\n"); #ifdef MYCHANGES push_wmops("HouseholderReduction_fx 64"); printf("\n"); FOR( jCh = 0; jCh < nChannelsL; jCh++ ) { FOR( iCh = 0; iCh < nChannelsC; iCh++ ) Loading Loading @@ -1003,7 +1003,24 @@ static void HouseholderReduction_fx( } } pop_wmops(); { int i,j; for (i=0;i<nChannelsL;i++) { printf("FINALLY%02d> ",i); for (j=0;j<nChannelsC;j++) { Word16 n; Word32 x; n=W_norm(singularVectors_Left_64[i][j]); x=W_extract_h(W_shl(singularVectors_Left_64[i][j],n-1)); printf("%08X^%08X=%08X ",x,singularVectors_Left_fx[i][j],singularVectors_Left_fx[i][j]^x); } printf("\n"); } } /* SingularVecotr Accumulation */ singularVectorsAccumulationRight_fx( singularVectors_Left_fx, singularVectors_Right_fx, secDiag_fx, singularVectors_Left_fx_e, secDiag_fx_e, nChannelsC ); Loading Loading @@ -1152,7 +1169,6 @@ static void biDiagonalReductionRight_64( ( *g_e ) = 0; move32(); move16(); printf("\n"); IF ( LT_16( currChannel, nChannelsL ) && NE_16( currChannel, sub( nChannelsC, 1 ) ) ) /* i <=m && i !=n */ { norm_64=0; Loading Loading @@ -1237,15 +1253,11 @@ static void biDiagonalReductionRight_64( f = Mpy_32_32( norm_x, invVal); f_e = add( invVal_e, sub( norm_x_e, r_e) ); magic_shift = -3*currChannel+22-2*norm_x_e+4*r_e+3*f_e; // FIXME: HOW IS THIS WORKING?????!?!?!?!?!?!?!?!?!? printf("SHIT4: norm:%016llX %08X<%2X f:%08X magic_shift:%d\n",norm_64,norm_x,norm_x_e,f,magic_shift); printf("SHIT5: "); FOR( jCh = idx; jCh < nChannelsC; jCh++ ) { factor2 = W_extract_l( W_shr( singularVectors_Left_64[currChannel][jCh], bitwindow) ); singularVectors_Left_64[iCh][jCh] = W_add( singularVectors_Left_64[iCh][jCh], W_shr( W_mult0_32_32( f, factor2), magic_shift) ); printf("%016llX ",singularVectors_Left_64[iCh][jCh]); } printf("\n"); } // FIXME BEGIN: The following code has not yet been tested invVal_e = 0; Loading Loading
lib_dec/ivas_svd_dec_fx.c +19 −7 Original line number Diff line number Diff line Loading @@ -879,9 +879,9 @@ static void HouseholderReduction_fx( Word16 iCh, jCh; Word16 singularVectors_Left_fx_e[MAX_OUTPUT_CHANNELS][MAX_OUTPUT_CHANNELS]; printf("\n"); #ifdef MYCHANGES push_wmops("HouseholderReduction_fx 64"); printf("\n"); FOR( jCh = 0; jCh < nChannelsL; jCh++ ) { FOR( iCh = 0; iCh < nChannelsC; iCh++ ) Loading Loading @@ -1003,7 +1003,24 @@ static void HouseholderReduction_fx( } } pop_wmops(); { int i,j; for (i=0;i<nChannelsL;i++) { printf("FINALLY%02d> ",i); for (j=0;j<nChannelsC;j++) { Word16 n; Word32 x; n=W_norm(singularVectors_Left_64[i][j]); x=W_extract_h(W_shl(singularVectors_Left_64[i][j],n-1)); printf("%08X^%08X=%08X ",x,singularVectors_Left_fx[i][j],singularVectors_Left_fx[i][j]^x); } printf("\n"); } } /* SingularVecotr Accumulation */ singularVectorsAccumulationRight_fx( singularVectors_Left_fx, singularVectors_Right_fx, secDiag_fx, singularVectors_Left_fx_e, secDiag_fx_e, nChannelsC ); Loading Loading @@ -1152,7 +1169,6 @@ static void biDiagonalReductionRight_64( ( *g_e ) = 0; move32(); move16(); printf("\n"); IF ( LT_16( currChannel, nChannelsL ) && NE_16( currChannel, sub( nChannelsC, 1 ) ) ) /* i <=m && i !=n */ { norm_64=0; Loading Loading @@ -1237,15 +1253,11 @@ static void biDiagonalReductionRight_64( f = Mpy_32_32( norm_x, invVal); f_e = add( invVal_e, sub( norm_x_e, r_e) ); magic_shift = -3*currChannel+22-2*norm_x_e+4*r_e+3*f_e; // FIXME: HOW IS THIS WORKING?????!?!?!?!?!?!?!?!?!? printf("SHIT4: norm:%016llX %08X<%2X f:%08X magic_shift:%d\n",norm_64,norm_x,norm_x_e,f,magic_shift); printf("SHIT5: "); FOR( jCh = idx; jCh < nChannelsC; jCh++ ) { factor2 = W_extract_l( W_shr( singularVectors_Left_64[currChannel][jCh], bitwindow) ); singularVectors_Left_64[iCh][jCh] = W_add( singularVectors_Left_64[iCh][jCh], W_shr( W_mult0_32_32( f, factor2), magic_shift) ); printf("%016llX ",singularVectors_Left_64[iCh][jCh]); } printf("\n"); } // FIXME BEGIN: The following code has not yet been tested invVal_e = 0; Loading