Subroutine */
| 16011 | } /* zlaqr3_ */ |
| 16012 | |
| 16013 | /* Subroutine */ int zlaqr4_(logical *wantt, logical *wantz, integer *n, |
| 16014 | integer *ilo, integer *ihi, doublecomplex *h__, integer *ldh, |
| 16015 | doublecomplex *w, integer *iloz, integer *ihiz, doublecomplex *z__, |
| 16016 | integer *ldz, doublecomplex *work, integer *lwork, integer *info) |
| 16017 | { |
| 16018 | /* System generated locals */ |
| 16019 | integer h_dim1, h_offset, z_dim1, z_offset, i__1, i__2, i__3, i__4, i__5; |
| 16020 | doublereal d__1, d__2, d__3, d__4, d__5, d__6, d__7, d__8; |
| 16021 | doublecomplex z__1, z__2, z__3, z__4, z__5; |
| 16022 | |
| 16023 | /* Local variables */ |
| 16024 | static integer i__, k; |
| 16025 | static doublereal s; |
| 16026 | static doublecomplex aa, bb, cc, dd; |
| 16027 | static integer ld, nh, it, ks, kt, ku, kv, ls, ns, nw; |
| 16028 | static doublecomplex tr2, det; |
| 16029 | static integer inf, kdu, nho, nve, kwh, nsr, nwr, kwv, ndec, ndfl, kbot, |
| 16030 | nmin; |
| 16031 | static doublecomplex swap; |
| 16032 | static integer ktop; |
| 16033 | static doublecomplex zdum[1] /* was [1][1] */; |
| 16034 | static integer kacc22, itmax, nsmax, nwmax, kwtop; |
| 16035 | extern /* Subroutine */ int zlaqr2_(logical *, logical *, integer *, |
| 16036 | integer *, integer *, integer *, doublecomplex *, integer *, |
| 16037 | integer *, integer *, doublecomplex *, integer *, integer *, |
| 16038 | integer *, doublecomplex *, doublecomplex *, integer *, integer *, |
| 16039 | doublecomplex *, integer *, integer *, doublecomplex *, integer * |
| 16040 | , doublecomplex *, integer *), zlaqr5_(logical *, logical *, |
| 16041 | integer *, integer *, integer *, integer *, integer *, |
| 16042 | doublecomplex *, doublecomplex *, integer *, integer *, integer *, |
| 16043 | doublecomplex *, integer *, doublecomplex *, integer *, |
| 16044 | doublecomplex *, integer *, integer *, doublecomplex *, integer *, |
| 16045 | integer *, doublecomplex *, integer *); |
| 16046 | static integer nibble; |
| 16047 | extern integer ilaenv_(integer *, char *, char *, integer *, integer *, |
| 16048 | integer *, integer *, ftnlen, ftnlen); |
| 16049 | static char jbcmpz[2]; |
| 16050 | static doublecomplex rtdisc; |
| 16051 | static integer nwupbd; |
| 16052 | static logical sorted; |
| 16053 | extern /* Subroutine */ int zlahqr_(logical *, logical *, integer *, |
| 16054 | integer *, integer *, doublecomplex *, integer *, doublecomplex *, |
| 16055 | integer *, integer *, doublecomplex *, integer *, integer *), |
| 16056 | zlacpy_(char *, integer *, integer *, doublecomplex *, integer *, |
| 16057 | doublecomplex *, integer *); |
| 16058 | static integer lwkopt; |
| 16059 | |
| 16060 | |
| 16061 | /* |
| 16062 | -- LAPACK auxiliary routine (version 3.2) -- |
| 16063 | Univ. of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd.. |
| 16064 | November 2006 |
| 16065 | |
| 16066 | |
| 16067 | This subroutine implements one level of recursion for ZLAQR0. |
| 16068 | It is a complete implementation of the small bulge multi-shift |
| 16069 | QR algorithm. It may be called by ZLAQR0 and, for large enough |
| 16070 | deflation window size, it may be called by ZLAQR3. This |