Subroutine */
| 10167 | } /* dlaed3_ */ |
| 10168 | |
| 10169 | /* Subroutine */ int dlaed4_(integer *n, integer *i__, doublereal *d__, |
| 10170 | doublereal *z__, doublereal *delta, doublereal *rho, doublereal *dlam, |
| 10171 | integer *info) |
| 10172 | { |
| 10173 | /* System generated locals */ |
| 10174 | integer i__1; |
| 10175 | doublereal d__1; |
| 10176 | |
| 10177 | /* Local variables */ |
| 10178 | static doublereal a, b, c__; |
| 10179 | static integer j; |
| 10180 | static doublereal w; |
| 10181 | static integer ii; |
| 10182 | static doublereal dw, zz[3]; |
| 10183 | static integer ip1; |
| 10184 | static doublereal del, eta, phi, eps, tau, psi; |
| 10185 | static integer iim1, iip1; |
| 10186 | static doublereal dphi, dpsi; |
| 10187 | static integer iter; |
| 10188 | static doublereal temp, prew, temp1, dltlb, dltub, midpt; |
| 10189 | static integer niter; |
| 10190 | static logical swtch; |
| 10191 | extern /* Subroutine */ int dlaed5_(integer *, doublereal *, doublereal *, |
| 10192 | doublereal *, doublereal *, doublereal *), dlaed6_(integer *, |
| 10193 | logical *, doublereal *, doublereal *, doublereal *, doublereal *, |
| 10194 | doublereal *, integer *); |
| 10195 | static logical swtch3; |
| 10196 | |
| 10197 | static logical orgati; |
| 10198 | static doublereal erretm, rhoinv; |
| 10199 | |
| 10200 | |
| 10201 | /* |
| 10202 | -- LAPACK routine (version 3.2) -- |
| 10203 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 10204 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 10205 | November 2006 |
| 10206 | |
| 10207 | |
| 10208 | Purpose |
| 10209 | ======= |
| 10210 | |
| 10211 | This subroutine computes the I-th updated eigenvalue of a symmetric |
| 10212 | rank-one modification to a diagonal matrix whose elements are |
| 10213 | given in the array d, and that |
| 10214 | |
| 10215 | D(i) < D(j) for i < j |
| 10216 | |
| 10217 | and that RHO > 0. This is arranged by the calling routine, and is |
| 10218 | no loss in generality. The rank-one modified system is thus |
| 10219 | |
| 10220 | diag( D ) + RHO * Z * Z_transpose. |
| 10221 | |
| 10222 | where we assume the Euclidean norm of Z is 1. |
| 10223 | |
| 10224 | The method consists of approximating the rational functions in the |
| 10225 | secular equation by simpler interpolating rational functions. |
| 10226 |