Subroutine */
| 11586 | } /* dlaed6_ */ |
| 11587 | |
| 11588 | /* Subroutine */ int dlaed7_(integer *icompq, integer *n, integer *qsiz, |
| 11589 | integer *tlvls, integer *curlvl, integer *curpbm, doublereal *d__, |
| 11590 | doublereal *q, integer *ldq, integer *indxq, doublereal *rho, integer |
| 11591 | *cutpnt, doublereal *qstore, integer *qptr, integer *prmptr, integer * |
| 11592 | perm, integer *givptr, integer *givcol, doublereal *givnum, |
| 11593 | doublereal *work, integer *iwork, integer *info) |
| 11594 | { |
| 11595 | /* System generated locals */ |
| 11596 | integer q_dim1, q_offset, i__1, i__2; |
| 11597 | |
| 11598 | /* Local variables */ |
| 11599 | static integer i__, k, n1, n2, is, iw, iz, iq2, ptr, ldq2, indx, curr; |
| 11600 | extern /* Subroutine */ int dgemm_(char *, char *, integer *, integer *, |
| 11601 | integer *, doublereal *, doublereal *, integer *, doublereal *, |
| 11602 | integer *, doublereal *, doublereal *, integer *); |
| 11603 | static integer indxc, indxp; |
| 11604 | extern /* Subroutine */ int dlaed8_(integer *, integer *, integer *, |
| 11605 | integer *, doublereal *, doublereal *, integer *, integer *, |
| 11606 | doublereal *, integer *, doublereal *, doublereal *, doublereal *, |
| 11607 | integer *, doublereal *, integer *, integer *, integer *, |
| 11608 | doublereal *, integer *, integer *, integer *), dlaed9_(integer *, |
| 11609 | integer *, integer *, integer *, doublereal *, doublereal *, |
| 11610 | integer *, doublereal *, doublereal *, doublereal *, doublereal *, |
| 11611 | integer *, integer *), dlaeda_(integer *, integer *, integer *, |
| 11612 | integer *, integer *, integer *, integer *, integer *, doublereal |
| 11613 | *, doublereal *, integer *, doublereal *, doublereal *, integer *) |
| 11614 | ; |
| 11615 | static integer idlmda; |
| 11616 | extern /* Subroutine */ int dlamrg_(integer *, integer *, doublereal *, |
| 11617 | integer *, integer *, integer *), xerbla_(char *, integer *); |
| 11618 | static integer coltyp; |
| 11619 | |
| 11620 | |
| 11621 | /* |
| 11622 | -- LAPACK routine (version 3.2) -- |
| 11623 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 11624 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 11625 | November 2006 |
| 11626 | |
| 11627 | |
| 11628 | Purpose |
| 11629 | ======= |
| 11630 | |
| 11631 | DLAED7 computes the updated eigensystem of a diagonal |
| 11632 | matrix after modification by a rank-one symmetric matrix. This |
| 11633 | routine is used only for the eigenproblem which requires all |
| 11634 | eigenvalues and optionally eigenvectors of a dense symmetric matrix |
| 11635 | that has been reduced to tridiagonal form. DLAED1 handles |
| 11636 | the case in which all eigenvalues and eigenvectors of a symmetric |
| 11637 | tridiagonal matrix are desired. |
| 11638 | |
| 11639 | T = Q(in) ( D(in) + RHO * Z*Z' ) Q'(in) = Q(out) * D(out) * Q'(out) |
| 11640 | |
| 11641 | where Z = Q'u, u is a vector of length N with ones in the |
| 11642 | CUTPNT and CUTPNT + 1 th elements and zeros elsewhere. |
| 11643 | |
| 11644 | The eigenvectors of the original matrix are stored in Q, and the |
| 11645 | eigenvalues are in D. The algorithm consists of three stages: |