ZLAHQR - i an auxiliary routine called by ZHSEQR to update
       the eigenvalues and Schur decomposition  already  computed
       by  ZHSEQR,  by  dealing  with the Hessenberg submatrix in
       rows and columns ILO to IHI


SYNOPSIS

       SUBROUTINE ZLAHQR( WANTT, WANTZ, N, ILO, IHI, H,  LDH,  W,
                          ILOZ, IHIZ, Z, LDZ, INFO )

           LOGICAL        WANTT, WANTZ

           INTEGER        IHI, IHIZ, ILO, ILOZ, INFO, LDH, LDZ, N

           COMPLEX*16     H( LDH, * ), W( * ), Z( LDZ, * )


PURPOSE

       ZLAHQR is an auxiliary routine called by ZHSEQR to  update
       the  eigenvalues  and Schur decomposition already computed
       by ZHSEQR, by dealing with  the  Hessenberg  submatrix  in
       rows and columns ILO to IHI.


ARGUMENTS

       WANTT   (input) LOGICAL
               = .TRUE. : the full Schur form T is required;
               = .FALSE.: only eigenvalues are required.

       WANTZ   (input) LOGICAL
               =  .TRUE.  :  the  matrix  of  Schur  vectors Z is
               required;
               = .FALSE.: Schur vectors are not required.

       N       (input) INTEGER
               The order of the matrix H.  N >= 0.

       ILO     (input) INTEGER
               IHI     (input) INTEGER It is assumed  that  H  is
               already  upper  triangular  in  rows  and  columns
               IHI+1:N, and that H(ILO,ILO-1) = 0 (unless  ILO  =
               1).   ZLAHQR  works  primarily with the Hessenberg
               submatrix in rows and  columns  ILO  to  IHI,  but
               applies  transformations  to  all of H if WANTT is
               .TRUE..  1 <= ILO <= max(1,IHI); IHI <= N.

       H       (input/output) COMPLEX*16 array, dimension (LDH,N)
               On entry, the upper Hessenberg matrix H.  On exit,
               if WANTT is .TRUE., H is upper triangular in  rows
               and  columns  ILO:IHI,  with  any  2-by-2 diagonal
               blocks in standard form. If WANTT is .FALSE.,  the
               contents of H are unspecified on exit.

       LDH     (input) INTEGER
               The  leading  dimension  of  the  array  H. LDH >=
               max(1,N).

               The computed eigenvalues ILO to IHI are stored  in
               the  corresponding  elements  of  W.  If  WANTT is
               .TRUE., the eigenvalues are  stored  in  the  same
               order  as  on  the  diagonal  of  the  Schur  form
               returned in H, with W(i) = H(i,i).

       ILOZ    (input) INTEGER
               IHIZ    (input) INTEGER Specify the rows of  Z  to
               which  transformations must be applied if WANTZ is
               .TRUE..  1 <= ILOZ <= ILO; IHI <= IHIZ <= N.

       Z       (input/output) COMPLEX*16 array, dimension (LDZ,N)
               If  WANTZ  is  .TRUE., on entry Z must contain the
               current matrix Z of transformations accumulated by
               ZHSEQR,  and on exit Z has been updated; transfor­
               mations  are  applied  only   to   the   submatrix
               Z(ILOZ:IHIZ,ILO:IHI).   If  WANTZ is .FALSE., Z is
               not referenced.

       LDZ     (input) INTEGER
               The leading dimension  of  the  array  Z.  LDZ  >=
               max(1,N).

       INFO    (output) INTEGER
               = 0: successful exit
               > 0: if INFO = i, ZLAHQR failed to compute all the
               eigenvalues ILO to IHI  in  a  total  of  30*(IHI-
               ILO+1)  iterations;  elements i+1:ihi of W contain
               those eigenvalues  which  have  been  successfully
               computed.


Man(1) output converted with man2html