1
*> \brief \b SLAED9 used by sstedc. Finds the roots of the secular equation and updates the eigenvectors. Used when the original matrix is dense.
3
* =========== DOCUMENTATION ===========
5
* Online html documentation available at
6
* http://www.netlib.org/lapack/explore-html/
9
*> Download SLAED9 + dependencies
10
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/slaed9.f">
12
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/slaed9.f">
14
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/slaed9.f">
21
* SUBROUTINE SLAED9( K, KSTART, KSTOP, N, D, Q, LDQ, RHO, DLAMDA, W,
24
* .. Scalar Arguments ..
25
* INTEGER INFO, K, KSTART, KSTOP, LDQ, LDS, N
28
* .. Array Arguments ..
29
* REAL D( * ), DLAMDA( * ), Q( LDQ, * ), S( LDS, * ),
39
*> SLAED9 finds the roots of the secular equation, as defined by the
40
*> values in D, Z, and RHO, between KSTART and KSTOP. It makes the
41
*> appropriate calls to SLAED4 and then stores the new matrix of
42
*> eigenvectors for use in calculating the next level of Z vectors.
51
*> The number of terms in the rational function to be solved by
63
*> The updated eigenvalues Lambda(I), KSTART <= I <= KSTOP
64
*> are to be computed. 1 <= KSTART <= KSTOP <= K.
70
*> The number of rows and columns in the Q matrix.
71
*> N >= K (delation may result in N > K).
76
*> D is REAL array, dimension (N)
77
*> D(I) contains the updated eigenvalues
78
*> for KSTART <= I <= KSTOP.
83
*> Q is REAL array, dimension (LDQ,N)
89
*> The leading dimension of the array Q. LDQ >= max( 1, N ).
95
*> The value of the parameter in the rank one update equation.
101
*> DLAMDA is REAL array, dimension (K)
102
*> The first K elements of this array contain the old roots
103
*> of the deflated updating problem. These are the poles
104
*> of the secular equation.
109
*> W is REAL array, dimension (K)
110
*> The first K elements of this array contain the components
111
*> of the deflation-adjusted updating vector.
116
*> S is REAL array, dimension (LDS, K)
117
*> Will contain the eigenvectors of the repaired matrix which
118
*> will be stored for subsequent Z vector calculation and
119
*> multiplied by the previously accumulated eigenvectors
120
*> to update the system.
126
*> The leading dimension of S. LDS >= max( 1, K ).
132
*> = 0: successful exit.
133
*> < 0: if INFO = -i, the i-th argument had an illegal value.
134
*> > 0: if INFO = 1, an eigenvalue did not converge
140
*> \author Univ. of Tennessee
141
*> \author Univ. of California Berkeley
142
*> \author Univ. of Colorado Denver
145
*> \date September 2012
147
*> \ingroup auxOTHERcomputational
149
*> \par Contributors:
152
*> Jeff Rutter, Computer Science Division, University of California
155
* =====================================================================
1
156
SUBROUTINE SLAED9( K, KSTART, KSTOP, N, D, Q, LDQ, RHO, DLAMDA, W,
4
* -- LAPACK routine (version 3.0) --
5
* Univ. of Tennessee, Oak Ridge National Lab, Argonne National Lab,
6
* Courant Institute, NAG Ltd., and Rice University
159
* -- LAPACK computational routine (version 3.4.2) --
160
* -- LAPACK is a software package provided by Univ. of Tennessee, --
161
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
9
164
* .. Scalar Arguments ..
10
165
INTEGER INFO, K, KSTART, KSTOP, LDQ, LDS, N
21
* SLAED9 finds the roots of the secular equation, as defined by the
22
* values in D, Z, and RHO, between KSTART and KSTOP. It makes the
23
* appropriate calls to SLAED4 and then stores the new matrix of
24
* eigenvectors for use in calculating the next level of Z vectors.
30
* The number of terms in the rational function to be solved by
33
* KSTART (input) INTEGER
34
* KSTOP (input) INTEGER
35
* The updated eigenvalues Lambda(I), KSTART <= I <= KSTOP
36
* are to be computed. 1 <= KSTART <= KSTOP <= K.
39
* The number of rows and columns in the Q matrix.
40
* N >= K (delation may result in N > K).
42
* D (output) REAL array, dimension (N)
43
* D(I) contains the updated eigenvalues
44
* for KSTART <= I <= KSTOP.
46
* Q (workspace) REAL array, dimension (LDQ,N)
49
* The leading dimension of the array Q. LDQ >= max( 1, N ).
52
* The value of the parameter in the rank one update equation.
55
* DLAMDA (input) REAL array, dimension (K)
56
* The first K elements of this array contain the old roots
57
* of the deflated updating problem. These are the poles
58
* of the secular equation.
60
* W (input) REAL array, dimension (K)
61
* The first K elements of this array contain the components
62
* of the deflation-adjusted updating vector.
64
* S (output) REAL array, dimension (LDS, K)
65
* Will contain the eigenvectors of the repaired matrix which
66
* will be stored for subsequent Z vector calculation and
67
* multiplied by the previously accumulated eigenvectors
68
* to update the system.
71
* The leading dimension of S. LDS >= max( 1, K ).
73
* INFO (output) INTEGER
74
* = 0: successful exit.
75
* < 0: if INFO = -i, the i-th argument had an illegal value.
76
* > 0: if INFO = 1, an eigenvalue did not converge
81
* Based on contributions by
82
* Jeff Rutter, Computer Science Division, University of California
85
173
* =====================================================================
87
175
* .. Local Scalars ..