SLAEIN  -  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 SLAEIN( RIGHTV,  NOINIT, N, H, LDH, WR, WI, VR,
                          VI, B, LDB, WORK, EPS3, SMLNUM, BIGNUM,
                          INFO )

           LOGICAL        NOINIT, RIGHTV

           INTEGER        INFO, LDB, LDH, N

           REAL           BIGNUM, EPS3, SMLNUM, WI, WR

           REAL           B(  LDB, * ), H( LDH, * ), VI( * ), VR(
                          * ), WORK( * )


PURPOSE

       SLAEIN 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) REAL 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) REAL
               WI      (input) REAL The real and imaginary  parts
               of  the  eigenvalue of H whose corresponding right
               or left eigenvector is to be computed.

       VR      (input/output) REAL array, dimension (N)
               VI      (input/output) REAL array,  dimension  (N)
               On  entry,  if  NOINIT  = .FALSE. and WI = 0.0, VR
               must contain a real starting  vector  for  inverse
               iteration  using the real eigenvalue WR; if NOINIT
               = .FALSE. and WI.ne.0.0, VR and  VI  must  contain

               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  eigenvector; if
               WI.ne.0.0 (complex eigenvalue), VR and VI  contain
               the  real and imaginary parts of the computed com­
               plex eigenvector. The eigenvector is normalized so
               that the component of largest magnitude has magni­
               tude 1; here the magnitude  of  a  complex  number
               (x,y)  is taken to be |x| + |y|.  VI is not refer­
               enced if WI = 0.0.

       B       (workspace) REAL array, dimension (LDB,N)

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

       WORK   (workspace) REAL array, dimension (N)

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

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

       BIGNUM  (input) REAL
               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