Previous: ch Up: ../eispad.html Next: combak


CINVIT(NM,N,AR,AI,WR,WI,SELECT,MM,M,ZR,ZI,

       SUBROUTINE CINVIT(NM,N,AR,AI,WR,WI,SELECT,MM,M,ZR,ZI,
      X                  IERR,RM1,RM2,RV1,RV2)
 C
       INTEGER I,J,K,M,N,S,II,MM,MP,NM,UK,IP1,ITS,KM1,IERR
       DOUBLE PRECISION AR(NM,N),AI(NM,N),WR(N),WI(N),ZR(NM,MM),
      X       ZI(NM,MM),RM1(N,N),RM2(N,N),RV1(N),RV2(N)
       DOUBLE PRECISION X,Y,EPS3,NORM,NORMV,EPSLON,GROWTO,ILAMBD,PYTHAG,
      X       RLAMBD,UKROOT
       LOGICAL SELECT(N)
 C
 C     THIS SUBROUTINE IS A TRANSLATION OF THE ALGOL PROCEDURE CX INVIT
 C     BY PETERS AND WILKINSON.
 C     HANDBOOK FOR AUTO. COMP. VOL.II-LINEAR ALGEBRA, 418-439(1971).
 C
 C     THIS SUBROUTINE FINDS THOSE EIGENVECTORS OF A COMPLEX UPPER
 C     HESSENBERG MATRIX CORRESPONDING TO SPECIFIED EIGENVALUES,
 C     USING INVERSE ITERATION.
 C
 C     ON INPUT
 C
 C        NM MUST BE SET TO THE ROW DIMENSION OF TWO-DIMENSIONAL
 C          ARRAY PARAMETERS AS DECLARED IN THE CALLING PROGRAM
 C          DIMENSION STATEMENT.
 C
 C        N IS THE ORDER OF THE MATRIX.
 C
 C        AR AND AI CONTAIN THE REAL AND IMAGINARY PARTS,
 C          RESPECTIVELY, OF THE HESSENBERG MATRIX.
 C
 C        WR AND WI CONTAIN THE REAL AND IMAGINARY PARTS, RESPECTIVELY,
 C          OF THE EIGENVALUES OF THE MATRIX.  THE EIGENVALUES MUST BE
 C          STORED IN A MANNER IDENTICAL TO THAT OF SUBROUTINE  COMLR,
 C          WHICH RECOGNIZES POSSIBLE SPLITTING OF THE MATRIX.
 C
 C        SELECT SPECIFIES THE EIGENVECTORS TO BE FOUND.  THE
 C          EIGENVECTOR CORRESPONDING TO THE J-TH EIGENVALUE IS
 C          SPECIFIED BY SETTING SELECT(J) TO .TRUE..
 C
 C        MM SHOULD BE SET TO AN UPPER BOUND FOR THE NUMBER OF
 C          EIGENVECTORS TO BE FOUND.
 C
 C     ON OUTPUT
 C
 C        AR, AI, WI, AND SELECT ARE UNALTERED.
 C
 C        WR MAY HAVE BEEN ALTERED SINCE CLOSE EIGENVALUES ARE PERTURBED
 C          SLIGHTLY IN SEARCHING FOR INDEPENDENT EIGENVECTORS.
 C
 C        M IS THE NUMBER OF EIGENVECTORS ACTUALLY FOUND.
 C
 C        ZR AND ZI CONTAIN THE REAL AND IMAGINARY PARTS, RESPECTIVELY,
 C          OF THE EIGENVECTORS.  THE EIGENVECTORS ARE NORMALIZED
 C          SO THAT THE COMPONENT OF LARGEST MAGNITUDE IS 1.
 C          ANY VECTOR WHICH FAILS THE ACCEPTANCE TEST IS SET TO ZERO.
 C
 C        IERR IS SET TO
 C          ZERO       FOR NORMAL RETURN,
 C          -(2*N+1)   IF MORE THAN MM EIGENVECTORS HAVE BEEN SPECIFIED,
 C          -K         IF THE ITERATION CORRESPONDING TO THE K-TH
 C                     VALUE FAILS,
 C          -(N+K)     IF BOTH ERROR SITUATIONS OCCUR.
 C
 C        RM1, RM2, RV1, AND RV2 ARE TEMPORARY STORAGE ARRAYS.
 C
 C     THE ALGOL PROCEDURE GUESSVEC APPEARS IN CINVIT IN LINE.
 C
 C     CALLS CDIV FOR COMPLEX DIVISION.
 C     CALLS PYTHAG FOR  DSQRT(A*A + B*B) .
 C
 C     QUESTIONS AND COMMENTS SHOULD BE DIRECTED TO BURTON S. GARBOW,
 C     MATHEMATICS AND COMPUTER SCIENCE DIV, ARGONNE NATIONAL LABORATORY
 C
 C     THIS VERSION DATED AUGUST 1983.
 C
 C     ------------------------------------------------------------------
 C