Subroutine */
| 9770 | } /* zlaed0_ */ |
| 9771 | |
| 9772 | /* Subroutine */ int zlaed7_(integer *n, integer *cutpnt, integer *qsiz, |
| 9773 | integer *tlvls, integer *curlvl, integer *curpbm, doublereal *d__, |
| 9774 | doublecomplex *q, integer *ldq, doublereal *rho, integer *indxq, |
| 9775 | doublereal *qstore, integer *qptr, integer *prmptr, integer *perm, |
| 9776 | integer *givptr, integer *givcol, doublereal *givnum, doublecomplex * |
| 9777 | work, doublereal *rwork, integer *iwork, integer *info) |
| 9778 | { |
| 9779 | /* System generated locals */ |
| 9780 | integer q_dim1, q_offset, i__1, i__2; |
| 9781 | |
| 9782 | /* Local variables */ |
| 9783 | static integer i__, k, n1, n2, iq, iw, iz, ptr, indx, curr, indxc, indxp; |
| 9784 | extern /* Subroutine */ int dlaed9_(integer *, integer *, integer *, |
| 9785 | integer *, doublereal *, doublereal *, integer *, doublereal *, |
| 9786 | doublereal *, doublereal *, doublereal *, integer *, integer *), |
| 9787 | zlaed8_(integer *, integer *, integer *, doublecomplex *, integer |
| 9788 | *, doublereal *, doublereal *, integer *, doublereal *, |
| 9789 | doublereal *, doublecomplex *, integer *, doublereal *, integer *, |
| 9790 | integer *, integer *, integer *, integer *, integer *, |
| 9791 | doublereal *, integer *), dlaeda_(integer *, integer *, integer *, |
| 9792 | integer *, integer *, integer *, integer *, integer *, |
| 9793 | doublereal *, doublereal *, integer *, doublereal *, doublereal *, |
| 9794 | integer *); |
| 9795 | static integer idlmda; |
| 9796 | extern /* Subroutine */ int dlamrg_(integer *, integer *, doublereal *, |
| 9797 | integer *, integer *, integer *), xerbla_(char *, integer *), zlacrm_(integer *, integer *, doublecomplex *, integer *, |
| 9798 | doublereal *, integer *, doublecomplex *, integer *, doublereal * |
| 9799 | ); |
| 9800 | static integer coltyp; |
| 9801 | |
| 9802 | |
| 9803 | /* |
| 9804 | -- LAPACK routine (version 3.2) -- |
| 9805 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 9806 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 9807 | November 2006 |
| 9808 | |
| 9809 | |
| 9810 | Purpose |
| 9811 | ======= |
| 9812 | |
| 9813 | ZLAED7 computes the updated eigensystem of a diagonal |
| 9814 | matrix after modification by a rank-one symmetric matrix. This |
| 9815 | routine is used only for the eigenproblem which requires all |
| 9816 | eigenvalues and optionally eigenvectors of a dense or banded |
| 9817 | Hermitian matrix that has been reduced to tridiagonal form. |
| 9818 | |
| 9819 | T = Q(in) ( D(in) + RHO * Z*Z' ) Q'(in) = Q(out) * D(out) * Q'(out) |
| 9820 | |
| 9821 | where Z = Q'u, u is a vector of length N with ones in the |
| 9822 | CUTPNT and CUTPNT + 1 th elements and zeros elsewhere. |
| 9823 | |
| 9824 | The eigenvectors of the original matrix are stored in Q, and the |
| 9825 | eigenvalues are in D. The algorithm consists of three stages: |
| 9826 | |
| 9827 | The first stage consists of deflating the size of the problem |
| 9828 | when there are multiple eigenvalues or if there is a zero in |
| 9829 | the Z vector. For each such occurence the dimension of the |