SLATRZ(3)      LAPACK routine of NEC Numeric Library Collection      SLATRZ(3)



NAME
       SLATRZ

SYNOPSIS
       SUBROUTINE SLATRZ (M, N, L, A, LDA, TAU, WORK)



PURPOSE
            SLATRZ factors the M-by-(M+L) real upper trapezoidal matrix
            [ A1 A2 ] = [ A(1:M,1:M) A(1:M,N-L+1:N) ] as ( R  0 ) * Z, by means
            of orthogonal transformations.  Z is an (M+L)-by-(M+L) orthogonal
            matrix and, R and A1 are M-by-M upper triangular matrices.




ARGUMENTS
           M         (input)
                     M is INTEGER
                     The number of rows of the matrix A.  M >= 0.

           N         (input)
                     N is INTEGER
                     The number of columns of the matrix A.  N >= 0.

           L         (input)
                     L is INTEGER
                     The number of columns of the matrix A containing the
                     meaningful part of the Householder vectors. N-M >= L >= 0.

           A         (input/output)
                     A is REAL array, dimension (LDA,N)
                     On entry, the leading M-by-N upper trapezoidal part of the
                     array A must contain the matrix to be factorized.
                     On exit, the leading M-by-M upper triangular part of A
                     contains the upper triangular matrix R, and elements N-L+1 to
                     N of the first M rows of A, with the array TAU, represent the
                     orthogonal matrix Z as a product of M elementary reflectors.

           LDA       (input)
                     LDA is INTEGER
                     The leading dimension of the array A.  LDA >= max(1,M).

           TAU       (output)
                     TAU is REAL array, dimension (M)
                     The scalar factors of the elementary reflectors.

           WORK      (output)
                     WORK is REAL array, dimension (M)








FURTHER DETAILS
             The factorization is obtained by Householder's method.  The kth
             transformation matrix, Z( k ), which is used to introduce zeros into
             the ( m - k + 1 )th row of A, is given in the form

                Z( k ) = ( I     0   ),
                         ( 0  T( k ) )

             where

                T( k ) = I - tau*u( k )*u( k )**T,   u( k ) = (   1    ),
                                                            (   0    )
                                                            ( z( k ) )

             tau is a scalar and z( k ) is an l element vector. tau and z( k )
             are chosen to annihilate the elements of the kth row of A2.

             The scalar tau is returned in the kth element of TAU and the vector
             u( k ) in the kth row of A2, such that the elements of z( k ) are
             in  a( k, l + 1 ), ..., a( k, n ). The elements of R are returned in
             the upper triangular part of A1.

             Z is given by

                Z =  Z( 1 ) * Z( 2 ) * ... * Z( m ).



LAPACK routine                  31 October 2017                      SLATRZ(3)