Commit 1eb687a6 authored by thomas dettbarn's avatar thomas dettbarn
Browse files

more experiments

parent 0e88bf6c
Loading
Loading
Loading
Loading
+9 −10
Original line number Diff line number Diff line
@@ -1072,7 +1072,6 @@ static void biDiagonalReductionLeft_64(
    move32();
    IF( LT_16( currChannel, nChannelsL ) ) /* i <= m */
    {
        Word16 n;
        Word32 tmp;
        norm_64=0;
        move64();
@@ -1081,9 +1080,9 @@ static void biDiagonalReductionLeft_64(
            tmp=W_extract_l(W_shr(singularVectors_Left_64[jCh][currChannel],bitwindow));
            norm_64=W_add(norm_64,W_mult0_32_32(tmp,tmp));
        }
        n=W_norm(norm_64);
        norm_x=W_extract_h(W_shl(norm_64, n ));
        norm_x_e = add(sub(shl(bitwindow, 1), n), 1 );	
        norm_x_e=W_norm(norm_64);
        norm_x=W_extract_h(W_shl(norm_64, norm_x_e ));
        norm_x_e = add(sub(shl(bitwindow, 1), norm_x_e), 1 );	
    }
    IF ( norm_x )
    {
@@ -1137,7 +1136,6 @@ static void biDiagonalReductionLeft_64(
            norm_x_e = W_norm( norm_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, r_e ) );
            FOR ( jCh = currChannel; jCh < nChannelsL; jCh++ )
            {
                 Word16 magic_shift;
@@ -1203,7 +1201,7 @@ static void biDiagonalReductionRight_64(
        }
        norm_x_e = W_norm( norm_64);
        norm_x = W_extract_h( W_shl( norm_64, norm_x_e) );
        norm_x_e = add( sub( add( bitwindow+1, bitwindow+1), norm_x_e), 1);
        norm_x_e = add( sub( shl( bitwindow+1, 1), norm_x_e), 1);
        move16();
        abs_x_e = W_norm( abs_64);
        abs_x = W_extract_h( W_shl( abs_64, abs_x_e) );
@@ -1237,15 +1235,16 @@ static void biDiagonalReductionRight_64(
            *g_e = tmp_g_e;
            move32();
            move16();
            factor2=W_extract_l( W_shr( singularVectors_Left_64[currChannel][idx], bitwindow) );
            tmp_e = sub( tmp_g_e, bitwindow);
            factor2=W_extract_l( W_shr( singularVectors_Left_64[currChannel][idx], bitwindow+1) );
            tmp_e = sub( tmp_g_e, bitwindow+1);
            tmpmul = W_mult0_32_32( tmp_g, factor2);
            tmpmul = W_shl(tmpmul, tmp_e);

            r_64 = W_sub( W_shr( tmpmul, 1), W_shl( norm_64, 1) );// FIXME: why those two shi(f)ts?
            r_64 = W_sub( tmpmul, norm_64 );
            r_e = W_norm( r_64);
            r = W_extract_h( W_shl( r_64, r_e) );
            r_e = sub( sub( add( bitwindow, tmp_g_e), tmp_e), r_e); // FIXME: reduce this!!
            r_e = sub( add( shl( bitwindow, 1), 1), r_e );
//	r_e=2*bitwindow+1-r_e;

            invVal_e = r_e;
            move16();