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