Subroutine */
| 41122 | } /* dtrevc_ */ |
| 41123 | |
| 41124 | /* Subroutine */ int dtrexc_(char *compq, integer *n, doublereal *t, integer * |
| 41125 | ldt, doublereal *q, integer *ldq, integer *ifst, integer *ilst, |
| 41126 | doublereal *work, integer *info) |
| 41127 | { |
| 41128 | /* System generated locals */ |
| 41129 | integer q_dim1, q_offset, t_dim1, t_offset, i__1; |
| 41130 | |
| 41131 | /* Local variables */ |
| 41132 | static integer nbf, nbl, here; |
| 41133 | extern logical lsame_(char *, char *); |
| 41134 | static logical wantq; |
| 41135 | extern /* Subroutine */ int dlaexc_(logical *, integer *, doublereal *, |
| 41136 | integer *, doublereal *, integer *, integer *, integer *, integer |
| 41137 | *, doublereal *, integer *), xerbla_(char *, integer *); |
| 41138 | static integer nbnext; |
| 41139 | |
| 41140 | |
| 41141 | /* |
| 41142 | -- LAPACK routine (version 3.2) -- |
| 41143 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 41144 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 41145 | November 2006 |
| 41146 | |
| 41147 | |
| 41148 | Purpose |
| 41149 | ======= |
| 41150 | |
| 41151 | DTREXC reorders the real Schur factorization of a real matrix |
| 41152 | A = Q*T*Q**T, so that the diagonal block of T with row index IFST is |
| 41153 | moved to row ILST. |
| 41154 | |
| 41155 | The real Schur form T is reordered by an orthogonal similarity |
| 41156 | transformation Z**T*T*Z, and optionally the matrix Q of Schur vectors |
| 41157 | is updated by postmultiplying it with Z. |
| 41158 | |
| 41159 | T must be in Schur canonical form (as returned by DHSEQR), that is, |
| 41160 | block upper triangular with 1-by-1 and 2-by-2 diagonal blocks; each |
| 41161 | 2-by-2 diagonal block has its diagonal elements equal and its |
| 41162 | off-diagonal elements of opposite sign. |
| 41163 | |
| 41164 | Arguments |
| 41165 | ========= |
| 41166 | |
| 41167 | COMPQ (input) CHARACTER*1 |
| 41168 | = 'V': update the matrix Q of Schur vectors; |
| 41169 | = 'N': do not update Q. |
| 41170 | |
| 41171 | N (input) INTEGER |
| 41172 | The order of the matrix T. N >= 0. |
| 41173 | |
| 41174 | T (input/output) DOUBLE PRECISION array, dimension (LDT,N) |
| 41175 | On entry, the upper quasi-triangular matrix T, in Schur |
| 41176 | Schur canonical form. |
| 41177 | On exit, the reordered upper quasi-triangular matrix, again |
| 41178 | in Schur canonical form. |
| 41179 | |
| 41180 | LDT (input) INTEGER |
| 41181 | The leading dimension of the array T. LDT >= max(1,N). |