Subroutine */
| 9124 | } /* dlaed0_ */ |
| 9125 | |
| 9126 | /* Subroutine */ int dlaed1_(integer *n, doublereal *d__, doublereal *q, |
| 9127 | integer *ldq, integer *indxq, doublereal *rho, integer *cutpnt, |
| 9128 | doublereal *work, integer *iwork, integer *info) |
| 9129 | { |
| 9130 | /* System generated locals */ |
| 9131 | integer q_dim1, q_offset, i__1, i__2; |
| 9132 | |
| 9133 | /* Local variables */ |
| 9134 | static integer i__, k, n1, n2, is, iw, iz, iq2, zpp1, indx, indxc; |
| 9135 | extern /* Subroutine */ int dcopy_(integer *, doublereal *, integer *, |
| 9136 | doublereal *, integer *); |
| 9137 | static integer indxp; |
| 9138 | extern /* Subroutine */ int dlaed2_(integer *, integer *, integer *, |
| 9139 | doublereal *, doublereal *, integer *, integer *, doublereal *, |
| 9140 | doublereal *, doublereal *, doublereal *, doublereal *, integer *, |
| 9141 | integer *, integer *, integer *, integer *), dlaed3_(integer *, |
| 9142 | integer *, integer *, doublereal *, doublereal *, integer *, |
| 9143 | doublereal *, doublereal *, doublereal *, integer *, integer *, |
| 9144 | doublereal *, doublereal *, integer *); |
| 9145 | static integer idlmda; |
| 9146 | extern /* Subroutine */ int dlamrg_(integer *, integer *, doublereal *, |
| 9147 | integer *, integer *, integer *), xerbla_(char *, integer *); |
| 9148 | static integer coltyp; |
| 9149 | |
| 9150 | |
| 9151 | /* |
| 9152 | -- LAPACK routine (version 3.2) -- |
| 9153 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 9154 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 9155 | November 2006 |
| 9156 | |
| 9157 | |
| 9158 | Purpose |
| 9159 | ======= |
| 9160 | |
| 9161 | DLAED1 computes the updated eigensystem of a diagonal |
| 9162 | matrix after modification by a rank-one symmetric matrix. This |
| 9163 | routine is used only for the eigenproblem which requires all |
| 9164 | eigenvalues and eigenvectors of a tridiagonal matrix. DLAED7 handles |
| 9165 | the case in which eigenvalues only or eigenvalues and eigenvectors |
| 9166 | of a full symmetric matrix (which was reduced to tridiagonal form) |
| 9167 | are desired. |
| 9168 | |
| 9169 | T = Q(in) ( D(in) + RHO * Z*Z' ) Q'(in) = Q(out) * D(out) * Q'(out) |
| 9170 | |
| 9171 | where Z = Q'u, u is a vector of length N with ones in the |
| 9172 | CUTPNT and CUTPNT + 1 th elements and zeros elsewhere. |
| 9173 | |
| 9174 | The eigenvectors of the original matrix are stored in Q, and the |
| 9175 | eigenvalues are in D. The algorithm consists of three stages: |
| 9176 | |
| 9177 | The first stage consists of deflating the size of the problem |
| 9178 | when there are multiple eigenvalues or if there is a zero in |
| 9179 | the Z vector. For each such occurence the dimension of the |
| 9180 | secular equation problem is reduced by one. This stage is |
| 9181 | performed by the routine DLAED2. |
| 9182 | |
| 9183 | The second stage consists of calculating the updated |