CINVIT(3F)

CINVIT, SCINVIT - EISPACK routine. This subroutine finds those eigenvectors of A COMPLEX UPPER Hessenberg matrix corresponding to specified eigenvalues, using inverse iteration.

As shipped in IRIX 6.5.19. Unchanged since IRIX 6.5.

NAME
     CINVIT, SCINVIT  -  EISPACK routine.  This subroutine finds those
     eigenvectors of A COMPLEX UPPER Hessenberg matrix corresponding to
     specified eigenvalues, using inverse iteration.


SYNOPSYS
          subroutine  cinvit(nm, n, ar, ai, wr, wi, select, mm, m, zr, zi,
          1            ierr, rm1, rm2, rv1, rv2)
          integer          nm, n, mm, m, ierr
          double precision ar(nm,n),  ai(nm,n), wr(n), wi(n)
          double precision zr(nm,mm), zi(nm,mm)
          double precision rm1(n,n),  rm2(n,n), rv1(n), rv2(n)
          logical          select(n)

          subroutine scinvit(nm, n, ar, ai, wr, wi, select, mm, m, zr, zi,
          1            ierr, rm1, rm2, rv1, rv2)
          integer          nm, n, mm, m, ierr
          real             ar(nm,n),  ai(nm,n), wr(n), wi(n)
          real             zr(nm,mm), zi(nm,mm)
          real             rm1(n,n),  rm2(n,n), rv1(n), rv2(n)
          logical          select(n)



DESCRIPTION
     On INPUT

     NM must be set to the row dimension of two-dimensional array parameters
     as declared in the calling program dimension statement.

     N is the order of the matrix.

     AR and AI contain the real and imaginary parts, respectively, of the
     Hessenberg matrix.

     WR and WI contain the real and imaginary parts, respectively, of the
     eigenvalues of the matrix.  The eigenvalues must be stored in a manner
     identical to that of subroutine  COMLR, which recognizes possible
     splitting of the matrix.

     SELECT specifies the eigenvectors to be found.  The eigenvector
     corresponding to the J-th eigenvalue is specified by setting SELECT(J) to
     .TRUE.

     MM should be set to an upper bound for the number of eigenvectors to be
     found.  On OUTPUT

     AR , AI, WI, and SELECT are unaltered.

     WR may have been altered since close eigenvalues are perturbed slightly
     in searching for independent eigenvectors.
     M is the number of eigenvectors actually found.

     ZR and ZI contain the real and imaginary parts, respectively, of the
     eigenvectors.  The eigenvectors are normalized so that the component of
     largest magnitude is 1.  Any vector which fails the acceptance test is
     set to zero.

     IERR is set to Zero       for normal return, -(2*N+1)   if more than MM
     eigenvectors have been specified, -K         if the iteration
     corresponding to the K-th
        value fails, -(N+K)     if both error situations occur.

     RM1 , RM2, RV1, and RV2 are temporary storage arrays. The ALGOL procedure
     GUESSVEC appears in CINVIT in line.  Calls PYTHAG(A,B) for sqrt(A**2 +
     B**2).  Calls CDIV for complex division.  Questions and comments should
     be directed to B. S. Garbow, APPLIED MATHEMATICS DIVISION, ARGONNE
     NATIONAL LABORATORY