1SLAQR0(1)           LAPACK auxiliary routine (version 3.1)           SLAQR0(1)
2
3
4

NAME

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

SYNOPSIS

12       SUBROUTINE SLAQR0( 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           REAL           H(  LDH, * ), WI( * ), WORK( * ), WR( * ), Z( LDZ, *
20                          )
21

PURPOSE

23          SLAQR0 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
28          Optionally Z may be postmultiplied into an input orthogonal
29          matrix Q so that this routine can give the Schur factorization
30          of a matrix A which has been reduced to the Hessenberg form H
31          by the orthogonal matrix Q:  A = Q*H*Q**T = (QZ)*T*(QZ)**T.
32
33

ARGUMENTS

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