DLAEIN  -  use  inverse  iteration to find a right or left
       eigenvector corresponding to the eigenvalue (WR,WI)  of  a
       real upper Hessenberg matrix H


SYNOPSIS

       SUBROUTINE DLAEIN( RIGHTV,  NOINIT, N, H, LDH, WR, WI, VR,
                          VI, B, LDB, WORK, EPS3, SMLNUM, BIGNUM,
                          INFO )

           LOGICAL        NOINIT, RIGHTV

           INTEGER        INFO, LDB, LDH, N

           DOUBLE         PRECISION BIGNUM, EPS3, SMLNUM, WI, WR

           DOUBLE         PRECISION B( LDB, * ), H( LDH, * ), VI(
                          * ), VR( * ), WORK( * )


PURPOSE

       DLAEIN uses inverse iteration to  find  a  right  or  left
       eigenvector  corresponding  to the eigenvalue (WR,WI) of a
       real upper Hessenberg matrix H.


ARGUMENTS

       RIGHTV   (input) LOGICAL
                = .TRUE. : compute right eigenvector;
                = .FALSE.: compute left eigenvector.

       NOINIT   (input) LOGICAL
                = .TRUE. : no initial vector supplied in (VR,VI).
                = .FALSE.: initial vector supplied in (VR,VI).

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

       H       (input) DOUBLE PRECISION array, dimension (LDH,N)
               The upper Hessenberg matrix H.

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

       WR      (input) DOUBLE PRECISION
               WI      (input)  DOUBLE  PRECISION  The  real  and
               imaginary  parts of the eigenvalue of H whose cor­
               responding right or left eigenvector is to be com­
               puted.

       VR      (input/output) DOUBLE PRECISION array, dimension
               (N)
               VI       (input/output)  DOUBLE  PRECISION  array,
               dimension (N) On entry, if NOINIT = .FALSE. and WI
               = 0.0, VR must contain a real starting vector  for

               NOINIT = .FALSE. and WI.ne.0.0,  VR  and  VI  must
               contain  the real and imaginary parts of a complex
               starting vector for inverse  iteration  using  the
               complex  eigenvalue  (WR,WI);  otherwise VR and VI
               need not be set.  On  exit,  if  WI  =  0.0  (real
               eigenvalue),  VR contains the computed real eigen­
               vector; if WI.ne.0.0 (complex eigenvalue), VR  and
               VI  contain  the  real  and imaginary parts of the
               computed complex eigenvector. The  eigenvector  is
               normalized so that the component of largest magni­
               tude has magnitude 1; here the magnitude of a com­
               plex number (x,y) is taken to be |x| + |y|.  VI is
               not referenced if WI = 0.0.

       B       (workspace) DOUBLE PRECISION array, dimension
               (LDB,N)

       LDB     (input) INTEGER
               The leading dimension of the array B.  LDB >= N+1.

       WORK   (workspace) DOUBLE PRECISION array, dimension (N)

       EPS3    (input) DOUBLE PRECISION
               A small machine-dependent value which is  used  to
               perturb  close  eigenvalues,  and  to replace zero
               pivots.

       SMLNUM  (input) DOUBLE PRECISION
               A machine-dependent value close to  the  underflow
               threshold.

       BIGNUM  (input) DOUBLE PRECISION
               A  machine-dependent  value  close to the overflow
               threshold.

       INFO    (output) INTEGER
               = 0:  successful exit
               = 1:  inverse iteration did not  converge;  VR  is
               set   to  the  last  iterate,  and  so  is  VI  if
               WI.ne.0.0.


Man(1) output converted with man2html