1DLAQR4(1)           LAPACK auxiliary routine (version 3.2)           DLAQR4(1)
2
3
4

NAME

6       DLAQR4  - DLAQR4 compute the eigenvalues of a Hessenberg matrix H  and,
7       optionally, the matrices T and Z from the Schur decomposition  H = Z  T
8       Z**T,  where  T  is an upper quasi-triangular matrix (the  Schur form),
9       and Z is the orthogonal matrix of Schur vectors
10

SYNOPSIS

12       SUBROUTINE DLAQR4( WANTT, WANTZ, N, ILO, IHI, H,  LDH,  WR,  WI,  ILOZ,
13                          IHIZ, Z, LDZ, WORK, LWORK, INFO )
14
15           INTEGER        IHI, IHIZ, ILO, ILOZ, INFO, LDH, LDZ, LWORK, N
16
17           LOGICAL        WANTT, WANTZ
18
19           DOUBLE         PRECISION  H( LDH, * ), WI( * ), WORK( * ), WR( * ),
20                          Z( LDZ, * )
21

PURPOSE

23          DLAQR4 computes the eigenvalues of a Hessenberg matrix H
24          and, optionally, the matrices T and Z from the Schur decomposition
25          H = Z T Z**T, where T is an upper quasi-triangular matrix (the
26          Schur form), and Z is the orthogonal matrix of Schur vectors.
27          Optionally Z may be postmultiplied into an input orthogonal
28          matrix Q so that this routine can give the Schur factorization
29          of a matrix A which has been reduced to the Hessenberg form H
30          by the orthogonal matrix Q:  A = Q*H*Q**T = (QZ)*T*(QZ)**T.
31

ARGUMENTS

33       WANTT   (input) LOGICAL
34               = .TRUE. : the full Schur form T is required;
35               = .FALSE.: only eigenvalues are required.
36
37       WANTZ   (input) LOGICAL
38               = .TRUE. : the matrix of Schur vectors Z is required;
39               = .FALSE.: Schur vectors are not required.
40
41       N     (input) INTEGER
42             The order of the matrix H.  N .GE. 0.
43
44       ILO   (input) INTEGER
45             IHI   (input) INTEGER It is assumed that H is already upper  tri‐
46             angular in rows and columns 1:ILO-1 and IHI+1:N and, if ILO.GT.1,
47             H(ILO,ILO-1) is zero. ILO and IHI are normally set by a  previous
48             call  to DGEBAL, and then passed to DGEHRD when the matrix output
49             by DGEBAL is reduced to Hessenberg form.  Otherwise, ILO and  IHI
50             should  be  set  to  1  and  N,  respectively.   If  N.GT.0, then
51             1.LE.ILO.LE.IHI.LE.N.  If N = 0, then ILO = 1 and IHI = 0.
52
53       H     (input/output) DOUBLE PRECISION array, dimension (LDH,N)
54             On entry, the upper Hessenberg matrix H.  On exit, if  INFO  =  0
55             and  WANTT  is .TRUE., then H contains the upper quasi-triangular
56             matrix T from the Schur decomposition (the  Schur  form);  2-by-2
57             diagonal  blocks (corresponding to complex conjugate pairs of ei‐
58             genvalues)  are  returned  in  standard  form,  with   H(i,i)   =
59             H(i+1,i+1)  and  H(i+1,i)*H(i,i+1).LT.0. If INFO = 0 and WANTT is
60             .FALSE., then the contents of H are unspecified  on  exit.   (The
61             output  value  of H when INFO.GT.0 is given under the description
62             of INFO below.)  This subroutine may explicitly set  H(i,j)  =  0
63             for i.GT.j and j = 1, 2, ... ILO-1 or j = IHI+1, IHI+2, ... N.
64
65       LDH   (input) INTEGER
66             The leading dimension of the array H. LDH .GE. max(1,N).
67
68       WR    (output) DOUBLE PRECISION array, dimension (IHI)
69             WI     (output)  DOUBLE PRECISION array, dimension (IHI) The real
70             and imaginary parts, respectively, of the computed eigenvalues of
71             H(ILO:IHI,ILO:IHI) are stored in WR(ILO:IHI)
72             and  WI(ILO:IHI).  If  two  eigenvalues are computed as a complex
73             conjugate pair, they are stored in consecutive elements of WR and
74             WI,  say the i-th and (i+1)th, with WI(i) .GT. 0 and WI(i+1) .LT.
75             0. If WANTT is .TRUE., then the eigenvalues  are  stored  in  the
76             same  order  as  on the diagonal of the Schur form returned in H,
77             with WR(i) = H(i,i) and, if H(i:i+1,i:i+1) is a  2-by-2  diagonal
78             block, WI(i) = sqrt(-H(i+1,i)*H(i,i+1)) and WI(i+1) = -WI(i).
79
80       ILOZ     (input) INTEGER
81                IHIZ     (input) INTEGER Specify the rows of Z to which trans‐
82                formations must be applied if WANTZ is .TRUE..   1  .LE.  ILOZ
83                .LE. ILO; IHI .LE. IHIZ .LE. N.
84
85       Z     (input/output) DOUBLE PRECISION array, dimension (LDZ,IHI)
86             If  WANTZ  is  .FALSE.,  then  Z  is not referenced.  If WANTZ is
87             .TRUE., then Z(ILO:IHI,ILOZ:IHIZ) is
88             replaced by Z(ILO:IHI,ILOZ:IHIZ)*U where U is the
89             orthogonal Schur factor of H(ILO:IHI,ILO:IHI).  (The output value
90             of  Z  when  INFO.GT.0  is  given  under  the description of INFO
91             below.)
92
93       LDZ   (input) INTEGER
94             The leading dimension of the array Z.  if WANTZ is  .TRUE.   then
95             LDZ.GE.MAX(1,IHIZ).  Otherwize, LDZ.GE.1.
96
97       WORK  (workspace/output) DOUBLE PRECISION array, dimension LWORK
98             On  exit, if LWORK = -1, WORK(1) returns an estimate of the opti‐
99             mal value for LWORK.  LWORK (input) INTEGER The dimension of  the
100             array  WORK.   LWORK .GE. max(1,N) is sufficient, but LWORK typi‐
101             cally as large as 6*N may be required for optimal performance.  A
102             workspace query to determine the optimal workspace size is recom‐
103             mended.  If LWORK = -1, then DLAQR4 does a workspace  query.   In
104             this  case,  DLAQR4 checks the input parameters and estimates the
105             optimal workspace size for the given values of N,  ILO  and  IHI.
106             The estimate is returned in WORK(1).  No error message related to
107             LWORK is issued by XERBLA.  Neither H nor Z are accessed.
108
109       INFO  (output) INTEGER
110             =  0:  successful exit
111             the eigenvalues.  Elements 1:ilo-1 and i+1:n of WR and WI contain
112             those  eigenvalues which have been successfully computed.  (Fail‐
113             ures are rare.)  If INFO .GT. 0 and  WANT  is  .FALSE.,  then  on
114             exit, the remaining unconverged eigenvalues are the eigen- values
115             of the upper Hessenberg matrix rows and columns ILO through  INFO
116             of  the  final,  output  value of H.  If INFO .GT. 0 and WANTT is
117             .TRUE., then on exit
118
119       (*)  (initial value of H)*U  = U*(final value of H)
120            where U is an orthogonal matrix.  The final value of  H  is  upper
121            Hessenberg and quasi-triangular in rows and columns INFO+1 through
122            IHI.  If INFO .GT. 0 and WANTZ is  .TRUE.,  then  on  exit  (final
123            value    of    Z(ILO:IHI,ILOZ:IHIZ)    =     (initial   value   of
124            Z(ILO:IHI,ILOZ:IHIZ)*U where U is the  orthogonal  matrix  in  (*)
125            (regard- less of the value of WANTT.)  If INFO .GT. 0 and WANTZ is
126            .FALSE., then Z is not accessed.
127
128
129
130 LAPACK auxiliary routine (versionNo3v.e2m)ber 2008                       DLAQR4(1)
Impressum