1ZLAED8(1) LAPACK routine (version 3.1) ZLAED8(1)
2
3
4
6 ZLAED8 - the two sets of eigenvalues together into a single sorted set
7
9 SUBROUTINE ZLAED8( K, N, QSIZ, Q, LDQ, D, RHO, CUTPNT, Z, DLAMDA, Q2,
10 LDQ2, W, INDXP, INDX, INDXQ, PERM, GIVPTR, GIVCOL,
11 GIVNUM, INFO )
12
13 INTEGER CUTPNT, GIVPTR, INFO, K, LDQ, LDQ2, N, QSIZ
14
15 DOUBLE PRECISION RHO
16
17 INTEGER GIVCOL( 2, * ), INDX( * ), INDXP( * ), INDXQ( * ),
18 PERM( * )
19
20 DOUBLE PRECISION D( * ), DLAMDA( * ), GIVNUM( 2, * ), W( *
21 ), Z( * )
22
23 COMPLEX*16 Q( LDQ, * ), Q2( LDQ2, * )
24
26 ZLAED8 merges the two sets of eigenvalues together into a single sorted
27 set. Then it tries to deflate the size of the problem. There are two
28 ways in which deflation can occur: when two or more eigenvalues are
29 close together or if there is a tiny element in the Z vector. For each
30 such occurrence the order of the related secular equation problem is
31 reduced by one.
32
33
35 K (output) INTEGER
36 Contains the number of non-deflated eigenvalues. This is the
37 order of the related secular equation.
38
39 N (input) INTEGER
40 The dimension of the symmetric tridiagonal matrix. N >= 0.
41
42 QSIZ (input) INTEGER
43 The dimension of the unitary matrix used to reduce the dense or
44 band matrix to tridiagonal form. QSIZ >= N if ICOMPQ = 1.
45
46 Q (input/output) COMPLEX*16 array, dimension (LDQ,N)
47 On entry, Q contains the eigenvectors of the partially solved
48 system which has been previously updated in matrix multiplies
49 with other partially solved eigensystems. On exit, Q contains
50 the trailing (N-K) updated eigenvectors (those which were
51 deflated) in its last N-K columns.
52
53 LDQ (input) INTEGER
54 The leading dimension of the array Q. LDQ >= max( 1, N ).
55
56 D (input/output) DOUBLE PRECISION array, dimension (N)
57 On entry, D contains the eigenvalues of the two submatrices to
58 be combined. On exit, D contains the trailing (N-K) updated ei‐
59 genvalues (those which were deflated) sorted into increasing
60 order.
61
62 RHO (input/output) DOUBLE PRECISION
63 Contains the off diagonal element associated with the rank-1 cut
64 which originally split the two submatrices which are now being
65 recombined. RHO is modified during the computation to the value
66 required by DLAED3.
67
68 CUTPNT (input) INTEGER Contains the location of the last eigen‐
69 value in the leading sub-matrix. MIN(1,N) <= CUTPNT <= N.
70
71 Z (input) DOUBLE PRECISION array, dimension (N)
72 On input this vector contains the updating vector (the last row
73 of the first sub-eigenvector matrix and the first row of the
74 second sub-eigenvector matrix). The contents of Z are destroyed
75 during the updating process.
76
77 DLAMDA (output) DOUBLE PRECISION array, dimension (N) Contains a
78 copy of the first K eigenvalues which will be used by DLAED3 to
79 form the secular equation.
80
81 Q2 (output) COMPLEX*16 array, dimension (LDQ2,N)
82 If ICOMPQ = 0, Q2 is not referenced. Otherwise, Contains a copy
83 of the first K eigenvectors which will be used by DLAED7 in a
84 matrix multiply (DGEMM) to update the new eigenvectors.
85
86 LDQ2 (input) INTEGER
87 The leading dimension of the array Q2. LDQ2 >= max( 1, N ).
88
89 W (output) DOUBLE PRECISION array, dimension (N)
90 This will hold the first k values of the final deflation-altered
91 z-vector and will be passed to DLAED3.
92
93 INDXP (workspace) INTEGER array, dimension (N)
94 This will contain the permutation used to place deflated values
95 of D at the end of the array. On output INDXP(1:K)
96 points to the nondeflated D-values and INDXP(K+1:N) points to
97 the deflated eigenvalues.
98
99 INDX (workspace) INTEGER array, dimension (N)
100 This will contain the permutation used to sort the contents of D
101 into ascending order.
102
103 INDXQ (input) INTEGER array, dimension (N)
104 This contains the permutation which separately sorts the two
105 sub-problems in D into ascending order. Note that elements in
106 the second half of this permutation must first have CUTPNT added
107 to their values in order to be accurate.
108
109 PERM (output) INTEGER array, dimension (N)
110 Contains the permutations (from deflation and sorting) to be
111 applied to each eigenblock.
112
113 GIVPTR (output) INTEGER Contains the number of Givens rotations
114 which took place in this subproblem.
115
116 GIVCOL (output) INTEGER array, dimension (2, N) Each pair of
117 numbers indicates a pair of columns to take place in a Givens
118 rotation.
119
120 GIVNUM (output) DOUBLE PRECISION array, dimension (2, N) Each
121 number indicates the S value to be used in the corresponding
122 Givens rotation.
123
124 INFO (output) INTEGER
125 = 0: successful exit.
126 < 0: if INFO = -i, the i-th argument had an illegal value.
127
128
129
130 LAPACK routine (version 3.1) November 2006 ZLAED8(1)