Subroutine */
| 9714 | } /* claed0_ */ |
| 9715 | |
| 9716 | /* Subroutine */ int claed7_(integer *n, integer *cutpnt, integer *qsiz, |
| 9717 | integer *tlvls, integer *curlvl, integer *curpbm, real *d__, complex * |
| 9718 | q, integer *ldq, real *rho, integer *indxq, real *qstore, integer * |
| 9719 | qptr, integer *prmptr, integer *perm, integer *givptr, integer * |
| 9720 | givcol, real *givnum, complex *work, real *rwork, integer *iwork, |
| 9721 | integer *info) |
| 9722 | { |
| 9723 | /* System generated locals */ |
| 9724 | integer q_dim1, q_offset, i__1, i__2; |
| 9725 | |
| 9726 | /* Local variables */ |
| 9727 | static integer i__, k, n1, n2, iq, iw, iz, ptr, indx, curr, indxc, indxp; |
| 9728 | extern /* Subroutine */ int claed8_(integer *, integer *, integer *, |
| 9729 | complex *, integer *, real *, real *, integer *, real *, real *, |
| 9730 | complex *, integer *, real *, integer *, integer *, integer *, |
| 9731 | integer *, integer *, integer *, real *, integer *), slaed9_( |
| 9732 | integer *, integer *, integer *, integer *, real *, real *, |
| 9733 | integer *, real *, real *, real *, real *, integer *, integer *), |
| 9734 | slaeda_(integer *, integer *, integer *, integer *, integer *, |
| 9735 | integer *, integer *, integer *, real *, real *, integer *, real * |
| 9736 | , real *, integer *); |
| 9737 | static integer idlmda; |
| 9738 | extern /* Subroutine */ int clacrm_(integer *, integer *, complex *, |
| 9739 | integer *, real *, integer *, complex *, integer *, real *), |
| 9740 | xerbla_(char *, integer *), slamrg_(integer *, integer *, |
| 9741 | real *, integer *, integer *, integer *); |
| 9742 | static integer coltyp; |
| 9743 | |
| 9744 | |
| 9745 | /* |
| 9746 | -- LAPACK routine (version 3.2) -- |
| 9747 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 9748 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 9749 | November 2006 |
| 9750 | |
| 9751 | |
| 9752 | Purpose |
| 9753 | ======= |
| 9754 | |
| 9755 | CLAED7 computes the updated eigensystem of a diagonal |
| 9756 | matrix after modification by a rank-one symmetric matrix. This |
| 9757 | routine is used only for the eigenproblem which requires all |
| 9758 | eigenvalues and optionally eigenvectors of a dense or banded |
| 9759 | Hermitian matrix that has been reduced to tridiagonal form. |
| 9760 | |
| 9761 | T = Q(in) ( D(in) + RHO * Z*Z' ) Q'(in) = Q(out) * D(out) * Q'(out) |
| 9762 | |
| 9763 | where Z = Q'u, u is a vector of length N with ones in the |
| 9764 | CUTPNT and CUTPNT + 1 th elements and zeros elsewhere. |
| 9765 | |
| 9766 | The eigenvectors of the original matrix are stored in Q, and the |
| 9767 | eigenvalues are in D. The algorithm consists of three stages: |
| 9768 | |
| 9769 | The first stage consists of deflating the size of the problem |
| 9770 | when there are multiple eigenvalues or if there is a zero in |
| 9771 | the Z vector. For each such occurence the dimension of the |
| 9772 | secular equation problem is reduced by one. This stage is |
| 9773 | performed by the routine SLAED2. |