1ZLAED8(1) LAPACK routine (version 3.2) ZLAED8(1)
2
3
4
6 ZLAED8 - merges the two sets of eigenvalues together into a single
7 sorted set
8
10 SUBROUTINE ZLAED8( K, N, QSIZ, Q, LDQ, D, RHO, CUTPNT, Z, DLAMDA, Q2,
11 LDQ2, W, INDXP, INDX, INDXQ, PERM, GIVPTR, GIVCOL,
12 GIVNUM, INFO )
13
14 INTEGER CUTPNT, GIVPTR, INFO, K, LDQ, LDQ2, N, QSIZ
15
16 DOUBLE PRECISION RHO
17
18 INTEGER GIVCOL( 2, * ), INDX( * ), INDXP( * ), INDXQ( * ),
19 PERM( * )
20
21 DOUBLE PRECISION D( * ), DLAMDA( * ), GIVNUM( 2, * ), W( *
22 ), Z( * )
23
24 COMPLEX*16 Q( LDQ, * ), Q2( LDQ2, * )
25
27 ZLAED8 merges the two sets of eigenvalues together into a single sorted
28 set. Then it tries to deflate the size of the problem. There are two
29 ways in which deflation can occur: when two or more eigenvalues are
30 close together or if there is a tiny element in the Z vector. For each
31 such occurrence the order of the related secular equation problem is
32 reduced by one.
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. CUTPNT (input) INTEGER Contains the loca‐
67 tion of the last eigenvalue in the leading sub-matrix. MIN(1,N)
68 <= CUTPNT <= N.
69
70 Z (input) DOUBLE PRECISION array, dimension (N)
71 On input this vector contains the updating vector (the last row
72 of the first sub-eigenvector matrix and the first row of the
73 second sub-eigenvector matrix). The contents of Z are destroyed
74 during the updating process. DLAMDA (output) DOUBLE PRECISION
75 array, dimension (N) Contains a copy of the first K eigenvalues
76 which will be used by DLAED3 to form the secular equation.
77
78 Q2 (output) COMPLEX*16 array, dimension (LDQ2,N)
79 If ICOMPQ = 0, Q2 is not referenced. Otherwise, Contains a copy
80 of the first K eigenvectors which will be used by DLAED7 in a
81 matrix multiply (DGEMM) to update the new eigenvectors.
82
83 LDQ2 (input) INTEGER
84 The leading dimension of the array Q2. LDQ2 >= max( 1, N ).
85
86 W (output) DOUBLE PRECISION array, dimension (N)
87 This will hold the first k values of the final deflation-altered
88 z-vector and will be passed to DLAED3.
89
90 INDXP (workspace) INTEGER array, dimension (N)
91 This will contain the permutation used to place deflated values
92 of D at the end of the array. On output INDXP(1:K)
93 points to the nondeflated D-values and INDXP(K+1:N) points to
94 the deflated eigenvalues.
95
96 INDX (workspace) INTEGER array, dimension (N)
97 This will contain the permutation used to sort the contents of D
98 into ascending order.
99
100 INDXQ (input) INTEGER array, dimension (N)
101 This contains the permutation which separately sorts the two
102 sub-problems in D into ascending order. Note that elements in
103 the second half of this permutation must first have CUTPNT added
104 to their values in order to be accurate.
105
106 PERM (output) INTEGER array, dimension (N)
107 Contains the permutations (from deflation and sorting) to be
108 applied to each eigenblock. GIVPTR (output) INTEGER Contains
109 the number of Givens rotations which took place in this subprob‐
110 lem. GIVCOL (output) INTEGER array, dimension (2, N) Each pair
111 of numbers indicates a pair of columns to take place in a Givens
112 rotation. GIVNUM (output) DOUBLE PRECISION array, dimension (2,
113 N) Each number indicates the S value to be used in the corre‐
114 sponding Givens rotation.
115
116 INFO (output) INTEGER
117 = 0: successful exit.
118 < 0: if INFO = -i, the i-th argument had an illegal value.
119
120
121
122 LAPACK routine (version 3.2) November 2008 ZLAED8(1)