DLAHRD  - reduce the first NB columns of a real general n-
       by-(n-k+1) matrix A so that elements below the k-th subdi­
       agonal are zero


SYNOPSIS

       SUBROUTINE DLAHRD( N, K, NB, A, LDA, TAU, T, LDT, Y, LDY )

           INTEGER        K, LDA, LDT, LDY, N, NB

           DOUBLE         PRECISION A( LDA, * ), T(  LDT,  NB  ),
                          TAU( NB ), Y( LDY, NB )


PURPOSE

       DLAHRD  reduces  the first NB columns of a real general n-
       by-(n-k+1) matrix A so that elements below the k-th subdi­
       agonal are zero. The reduction is performed by an orthogo­
       nal similarity transformation Q' *  A  *  Q.  The  routine
       returns  the matrices V and T which determine Q as a block
       reflector I - V*T*V', and also the matrix Y = A * V * T.

       This is an auxiliary routine called by DGEHRD.


ARGUMENTS

       N       (input) INTEGER
               The order of the matrix A.

       K       (input) INTEGER
               The offset for the reduction. Elements  below  the
               k-th  subdiagonal  in  the  first  NB  columns are
               reduced to zero.

       NB      (input) INTEGER
               The number of columns to be reduced.

       A       (input/output) DOUBLE PRECISION array, dimension
               (LDA,N- K+1)
               On entry, the n-by-(n-k+1) general matrix  A.   On
               exit, the elements on and above the k-th subdiago­
               nal in the first NB columns are  overwritten  with
               the  corresponding elements of the reduced matrix;
               the elements below the k-th subdiagonal, with  the
               array  TAU, represent the matrix Q as a product of
               elementary reflectors. The other columns of A  are
               unchanged.  See  Further Details.  LDA     (input)
               INTEGER The leading dimension of the array A.  LDA
               >= max(1,N).

       TAU     (output) DOUBLE PRECISION array, dimension (NB)
               The  scalar  factors of the elementary reflectors.
               See Further Details.

               (LDT,NB)
               The upper triangular matrix T.

       LDT     (input) INTEGER
               The  leading dimension of the array T.  LDT >= NB.

       Y       (output) DOUBLE PRECISION array, dimension
               (LDY,NB)
               The n-by-nb matrix Y.

       LDY     (input) INTEGER
               The leading dimension of the array Y. LDY >= N.


FURTHER DETAILS

       The  matrix Q is represented as a product of nb elementary
       reflectors

          Q = H(1) H(2) . . . H(nb).

       Each H(i) has the form

          H(i) = I - tau * v * v'

       where tau is a real scalar, and v is a real vector with
       v(1:i+k-1) = 0, v(i+k) = 1; v(i+k+1:n) is stored  on  exit
       in A(i+k+1:n,i), and tau in TAU(i).

       The  elements  of  the  vectors  v  together  form the (n-
       k+1)-by-nb matrix V which is needed,  with  T  and  Y,  to
       apply  the  transformation  to  the  unreduced part of the
       matrix, using an update of the form: A := (I -  V*T*V')  *
       (A - Y*V').

       The contents of A on exit are illustrated by the following
       example with n = 7, k = 3 and nb = 2:

          ( a   h   a   a   a )
          ( a   h   a   a   a )
          ( a   h   a   a   a )
          ( h   h   a   a   a )
          ( v1  h   a   a   a )
          ( v1  v2  a   a   a )
          ( v1  v2  a   a   a )

       where a denotes an element of the  original  matrix  A,  h
       denotes  a modified element of the upper Hessenberg matrix
       H, and vi denotes an element of the vector defining  H(i).


Man(1) output converted with man2html