version 1.10, 2011/11/21 22:19:33
|
version 1.22, 2023/08/07 08:38:56
|
Line 1
|
Line 1
|
*> \brief \b DLAQR3 |
*> \brief \b DLAQR3 performs the orthogonal similarity transformation of a Hessenberg matrix to detect and deflate fully converged eigenvalues from a trailing principal submatrix (aggressive early deflation). |
* |
* |
* =========== DOCUMENTATION =========== |
* =========== DOCUMENTATION =========== |
* |
* |
* Online html documentation available at |
* Online html documentation available at |
* http://www.netlib.org/lapack/explore-html/ |
* http://www.netlib.org/lapack/explore-html/ |
* |
* |
*> \htmlonly |
*> \htmlonly |
*> Download DLAQR3 + dependencies |
*> Download DLAQR3 + dependencies |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlaqr3.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlaqr3.f"> |
*> [TGZ]</a> |
*> [TGZ]</a> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlaqr3.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlaqr3.f"> |
*> [ZIP]</a> |
*> [ZIP]</a> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaqr3.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaqr3.f"> |
*> [TXT]</a> |
*> [TXT]</a> |
*> \endhtmlonly |
*> \endhtmlonly |
* |
* |
* Definition: |
* Definition: |
* =========== |
* =========== |
Line 21
|
Line 21
|
* SUBROUTINE DLAQR3( WANTT, WANTZ, N, KTOP, KBOT, NW, H, LDH, ILOZ, |
* SUBROUTINE DLAQR3( WANTT, WANTZ, N, KTOP, KBOT, NW, H, LDH, ILOZ, |
* IHIZ, Z, LDZ, NS, ND, SR, SI, V, LDV, NH, T, |
* IHIZ, Z, LDZ, NS, ND, SR, SI, V, LDV, NH, T, |
* LDT, NV, WV, LDWV, WORK, LWORK ) |
* LDT, NV, WV, LDWV, WORK, LWORK ) |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
* INTEGER IHIZ, ILOZ, KBOT, KTOP, LDH, LDT, LDV, LDWV, |
* INTEGER IHIZ, ILOZ, KBOT, KTOP, LDH, LDT, LDV, LDWV, |
* $ LDZ, LWORK, N, ND, NH, NS, NV, NW |
* $ LDZ, LWORK, N, ND, NH, NS, NV, NW |
Line 32
|
Line 32
|
* $ V( LDV, * ), WORK( * ), WV( LDWV, * ), |
* $ V( LDV, * ), WORK( * ), WV( LDWV, * ), |
* $ Z( LDZ, * ) |
* $ Z( LDZ, * ) |
* .. |
* .. |
* |
* |
* |
* |
*> \par Purpose: |
*> \par Purpose: |
* ============= |
* ============= |
Line 100
|
Line 100
|
*> \param[in] NW |
*> \param[in] NW |
*> \verbatim |
*> \verbatim |
*> NW is INTEGER |
*> NW is INTEGER |
*> Deflation window size. 1 .LE. NW .LE. (KBOT-KTOP+1). |
*> Deflation window size. 1 <= NW <= (KBOT-KTOP+1). |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[in,out] H |
*> \param[in,out] H |
Line 116
|
Line 116
|
*> |
*> |
*> \param[in] LDH |
*> \param[in] LDH |
*> \verbatim |
*> \verbatim |
*> LDH is integer |
*> LDH is INTEGER |
*> Leading dimension of H just as declared in the calling |
*> Leading dimension of H just as declared in the calling |
*> subroutine. N .LE. LDH |
*> subroutine. N <= LDH |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[in] ILOZ |
*> \param[in] ILOZ |
Line 130
|
Line 130
|
*> \verbatim |
*> \verbatim |
*> IHIZ is INTEGER |
*> IHIZ is INTEGER |
*> Specify the rows of Z to which transformations must be |
*> Specify the rows of Z to which transformations must be |
*> applied if WANTZ is .TRUE.. 1 .LE. ILOZ .LE. IHIZ .LE. N. |
*> applied if WANTZ is .TRUE.. 1 <= ILOZ <= IHIZ <= N. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[in,out] Z |
*> \param[in,out] Z |
Line 138
|
Line 138
|
*> Z is DOUBLE PRECISION array, dimension (LDZ,N) |
*> Z is DOUBLE PRECISION array, dimension (LDZ,N) |
*> IF WANTZ is .TRUE., then on output, the orthogonal |
*> IF WANTZ is .TRUE., then on output, the orthogonal |
*> similarity transformation mentioned above has been |
*> similarity transformation mentioned above has been |
*> accumulated into Z(ILOZ:IHIZ,ILO:IHI) from the right. |
*> accumulated into Z(ILOZ:IHIZ,ILOZ:IHIZ) from the right. |
*> If WANTZ is .FALSE., then Z is unreferenced. |
*> If WANTZ is .FALSE., then Z is unreferenced. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[in] LDZ |
*> \param[in] LDZ |
*> \verbatim |
*> \verbatim |
*> LDZ is integer |
*> LDZ is INTEGER |
*> The leading dimension of Z just as declared in the |
*> The leading dimension of Z just as declared in the |
*> calling subroutine. 1 .LE. LDZ. |
*> calling subroutine. 1 <= LDZ. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[out] NS |
*> \param[out] NS |
*> \verbatim |
*> \verbatim |
*> NS is integer |
*> NS is INTEGER |
*> The number of unconverged (ie approximate) eigenvalues |
*> The number of unconverged (ie approximate) eigenvalues |
*> returned in SR and SI that may be used as shifts by the |
*> returned in SR and SI that may be used as shifts by the |
*> calling subroutine. |
*> calling subroutine. |
Line 159
|
Line 159
|
*> |
*> |
*> \param[out] ND |
*> \param[out] ND |
*> \verbatim |
*> \verbatim |
*> ND is integer |
*> ND is INTEGER |
*> The number of converged eigenvalues uncovered by this |
*> The number of converged eigenvalues uncovered by this |
*> subroutine. |
*> subroutine. |
*> \endverbatim |
*> \endverbatim |
Line 189
|
Line 189
|
*> |
*> |
*> \param[in] LDV |
*> \param[in] LDV |
*> \verbatim |
*> \verbatim |
*> LDV is integer scalar |
*> LDV is INTEGER |
*> The leading dimension of V just as declared in the |
*> The leading dimension of V just as declared in the |
*> calling subroutine. NW .LE. LDV |
*> calling subroutine. NW <= LDV |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[in] NH |
*> \param[in] NH |
*> \verbatim |
*> \verbatim |
*> NH is integer scalar |
*> NH is INTEGER |
*> The number of columns of T. NH.GE.NW. |
*> The number of columns of T. NH >= NW. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[out] T |
*> \param[out] T |
Line 207
|
Line 207
|
*> |
*> |
*> \param[in] LDT |
*> \param[in] LDT |
*> \verbatim |
*> \verbatim |
*> LDT is integer |
*> LDT is INTEGER |
*> The leading dimension of T just as declared in the |
*> The leading dimension of T just as declared in the |
*> calling subroutine. NW .LE. LDT |
*> calling subroutine. NW <= LDT |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[in] NV |
*> \param[in] NV |
*> \verbatim |
*> \verbatim |
*> NV is integer |
*> NV is INTEGER |
*> The number of rows of work array WV available for |
*> The number of rows of work array WV available for |
*> workspace. NV.GE.NW. |
*> workspace. NV >= NW. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[out] WV |
*> \param[out] WV |
Line 226
|
Line 226
|
*> |
*> |
*> \param[in] LDWV |
*> \param[in] LDWV |
*> \verbatim |
*> \verbatim |
*> LDWV is integer |
*> LDWV is INTEGER |
*> The leading dimension of W just as declared in the |
*> The leading dimension of W just as declared in the |
*> calling subroutine. NW .LE. LDV |
*> calling subroutine. NW <= LDV |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[out] WORK |
*> \param[out] WORK |
Line 240
|
Line 240
|
*> |
*> |
*> \param[in] LWORK |
*> \param[in] LWORK |
*> \verbatim |
*> \verbatim |
*> LWORK is integer |
*> LWORK is INTEGER |
*> The dimension of the work array WORK. LWORK = 2*NW |
*> The dimension of the work array WORK. LWORK = 2*NW |
*> suffices, but greater efficiency may result from larger |
*> suffices, but greater efficiency may result from larger |
*> values of LWORK. |
*> values of LWORK. |
Line 255
|
Line 255
|
* Authors: |
* Authors: |
* ======== |
* ======== |
* |
* |
*> \author Univ. of Tennessee |
*> \author Univ. of Tennessee |
*> \author Univ. of California Berkeley |
*> \author Univ. of California Berkeley |
*> \author Univ. of Colorado Denver |
*> \author Univ. of Colorado Denver |
*> \author NAG Ltd. |
*> \author NAG Ltd. |
* |
|
*> \date November 2011 |
|
* |
* |
*> \ingroup doubleOTHERauxiliary |
*> \ingroup doubleOTHERauxiliary |
* |
* |
Line 275
|
Line 273
|
$ IHIZ, Z, LDZ, NS, ND, SR, SI, V, LDV, NH, T, |
$ IHIZ, Z, LDZ, NS, ND, SR, SI, V, LDV, NH, T, |
$ LDT, NV, WV, LDWV, WORK, LWORK ) |
$ LDT, NV, WV, LDWV, WORK, LWORK ) |
* |
* |
* -- LAPACK auxiliary routine (version 3.4.0) -- |
* -- LAPACK auxiliary routine -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* November 2011 |
|
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
INTEGER IHIZ, ILOZ, KBOT, KTOP, LDH, LDT, LDV, LDWV, |
INTEGER IHIZ, ILOZ, KBOT, KTOP, LDH, LDT, LDV, LDWV, |