Subroutine */
| 13043 | } /* dlaev2_ */ |
| 13044 | |
| 13045 | /* Subroutine */ int dlaexc_(logical *wantq, integer *n, doublereal *t, |
| 13046 | integer *ldt, doublereal *q, integer *ldq, integer *j1, integer *n1, |
| 13047 | integer *n2, doublereal *work, integer *info) |
| 13048 | { |
| 13049 | /* System generated locals */ |
| 13050 | integer q_dim1, q_offset, t_dim1, t_offset, i__1; |
| 13051 | doublereal d__1, d__2, d__3; |
| 13052 | |
| 13053 | /* Local variables */ |
| 13054 | static doublereal d__[16] /* was [4][4] */; |
| 13055 | static integer k; |
| 13056 | static doublereal u[3], x[4] /* was [2][2] */; |
| 13057 | static integer j2, j3, j4; |
| 13058 | static doublereal u1[3], u2[3]; |
| 13059 | static integer nd; |
| 13060 | static doublereal cs, t11, t22, t33, sn, wi1, wi2, wr1, wr2, eps, tau, |
| 13061 | tau1, tau2; |
| 13062 | static integer ierr; |
| 13063 | static doublereal temp; |
| 13064 | extern /* Subroutine */ int drot_(integer *, doublereal *, integer *, |
| 13065 | doublereal *, integer *, doublereal *, doublereal *); |
| 13066 | static doublereal scale, dnorm, xnorm; |
| 13067 | extern /* Subroutine */ int dlanv2_(doublereal *, doublereal *, |
| 13068 | doublereal *, doublereal *, doublereal *, doublereal *, |
| 13069 | doublereal *, doublereal *, doublereal *, doublereal *), dlasy2_( |
| 13070 | logical *, logical *, integer *, integer *, integer *, doublereal |
| 13071 | *, integer *, doublereal *, integer *, doublereal *, integer *, |
| 13072 | doublereal *, doublereal *, integer *, doublereal *, integer *); |
| 13073 | extern doublereal dlamch_(char *), dlange_(char *, integer *, |
| 13074 | integer *, doublereal *, integer *, doublereal *); |
| 13075 | extern /* Subroutine */ int dlarfg_(integer *, doublereal *, doublereal *, |
| 13076 | integer *, doublereal *), dlacpy_(char *, integer *, integer *, |
| 13077 | doublereal *, integer *, doublereal *, integer *), |
| 13078 | dlartg_(doublereal *, doublereal *, doublereal *, doublereal *, |
| 13079 | doublereal *), dlarfx_(char *, integer *, integer *, doublereal *, |
| 13080 | doublereal *, doublereal *, integer *, doublereal *); |
| 13081 | static doublereal thresh, smlnum; |
| 13082 | |
| 13083 | |
| 13084 | /* |
| 13085 | -- LAPACK auxiliary routine (version 3.2.2) -- |
| 13086 | -- LAPACK is a software package provided by Univ. of Tennessee, -- |
| 13087 | -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
| 13088 | June 2010 |
| 13089 | |
| 13090 | |
| 13091 | Purpose |
| 13092 | ======= |
| 13093 | |
| 13094 | DLAEXC swaps adjacent diagonal blocks T11 and T22 of order 1 or 2 in |
| 13095 | an upper quasi-triangular matrix T by an orthogonal similarity |
| 13096 | transformation. |
| 13097 | |
| 13098 | T must be in Schur canonical form, that is, block upper triangular |
| 13099 | with 1-by-1 and 2-by-2 diagonal blocks; each 2-by-2 diagonal block |
| 13100 | has its diagonal elemnts equal and its off-diagonal elements of |
| 13101 | opposite sign. |
| 13102 |