Commit f4acb2d5 authored by thomas dettbarn's avatar thomas dettbarn
Browse files

reduced the role of abs_x in biDiagonalReductionRight()

parent 23dc9ec2
Loading
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -692,10 +692,6 @@ static void biDiagonalReductionRight(
            ( *g ) = -( singularVectors[currChannel][idx] >= 0 ? 1 : ( -1 ) ) * sqrtf( norm_x );
            r = ( *g ) * singularVectors[currChannel][idx] - norm_x;
            singularVectors[currChannel][idx] = ( singularVectors[currChannel][idx] - ( *g ) );
            for ( jCh = idx; jCh < nChannelsC; jCh++ ) /* nChannelsC */
            {
                secDiag[jCh] = ( singularVectors[currChannel][jCh] * abs_x ) / maxWithSign( r );
            }

            for ( iCh = currChannel + 1; iCh < nChannelsL; iCh++ ) /*  nChannelsL */
            {
@@ -704,12 +700,16 @@ static void biDiagonalReductionRight(
                {
                    norm_x += ( singularVectors[iCh][jCh] * singularVectors[currChannel][jCh] );
                }
                norm_x /= abs_x;
                norm_x /= r ;
                for ( jCh = idx; jCh < nChannelsC; jCh++ ) /*  nChannelsC */
                {
                    singularVectors[iCh][jCh] += ( norm_x * secDiag[jCh] );
                    singularVectors[iCh][jCh] += ( norm_x * singularVectors[currChannel][jCh] );
                }
            }
            for ( jCh = idx; jCh < nChannelsC; jCh++ ) /* nChannelsC */
            {
                secDiag[jCh] = ( singularVectors[currChannel][jCh] * abs_x ) / maxWithSign( r );
            }
        }
    }