public static void householder(double gamma,
                                   DMatrixD1 u ,
                                   DMatrixD1 x , DMatrixD1 y )
    {
        int n = u.getNumElements();

        double sum = 0;
        for( int i = 0; i < n; i++ ) {
            sum += u.get(i)*x.get(i);
        }
        for( int i = 0; i < n; i++ ) {
            y.set( i , x.get(i) + gamma*u.get(i)*sum);
        }
    }
public static void householder ( double gamma , DMatrixD1 u , DMatrixD1 x , DMatrixD1 y ) { int n = u . getNumElements ( ) ; double sum = 0 ; for ( int i = 0 ; i < n ; i ++ ) { sum += u . get ( i ) * x . get ( i ) ; } for ( int i = 0 ; i < n ; i ++ ) { y . set ( i , x . get ( i ) + gamma * u . get ( i ) * sum ) ; } }
<p>
Multiplies a householder reflection against a vector:<br>
<br>
y = (I + &gamma; u u<sup>T</sup>)x<br>
</p>
<p>
The Householder reflection is used in some implementations of QR decomposition.
</p>
@param u A vector. Not modified.
@param x a vector. Not modified.
@param y Vector where the result are written to.