Commit 0e88bf6c authored by thomas dettbarn's avatar thomas dettbarn
Browse files

now i have a metric to decide if my changes are good or bad.

parent cd7a111a
Loading
Loading
Loading
Loading
+44 −60
Original line number Diff line number Diff line
@@ -918,7 +918,6 @@ static void HouseholderReduction_fx(
		}

//                bitwindow=nCh+1;
		bitwindow=1;
		biDiagonalReductionRight_64(
			singularVectors_Left_64,bitwindow,
			secDiag_fx,secDiag_fx_e,
@@ -1003,6 +1002,11 @@ static void HouseholderReduction_fx(
            move32();
        }
    }





    pop_wmops();
    {
	    int i,j;
@@ -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 );