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