version 1.17, 2016/08/27 15:34:29
|
version 1.21, 2018/05/29 07:17:58
|
Line 2
|
Line 2
|
* |
* |
* =========== 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 DLAQR5 + dependencies |
*> Download DLAQR5 + dependencies |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlaqr5.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlaqr5.f"> |
*> [TGZ]</a> |
*> [TGZ]</a> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlaqr5.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlaqr5.f"> |
*> [ZIP]</a> |
*> [ZIP]</a> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaqr5.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaqr5.f"> |
*> [TXT]</a> |
*> [TXT]</a> |
*> \endhtmlonly |
*> \endhtmlonly |
* |
* |
* Definition: |
* Definition: |
* =========== |
* =========== |
Line 21
|
Line 21
|
* SUBROUTINE DLAQR5( WANTT, WANTZ, KACC22, N, KTOP, KBOT, NSHFTS, |
* SUBROUTINE DLAQR5( WANTT, WANTZ, KACC22, N, KTOP, KBOT, NSHFTS, |
* SR, SI, H, LDH, ILOZ, IHIZ, Z, LDZ, V, LDV, U, |
* SR, SI, H, LDH, ILOZ, IHIZ, Z, LDZ, V, LDV, U, |
* LDU, NV, WV, LDWV, NH, WH, LDWH ) |
* LDU, NV, WV, LDWV, NH, WH, LDWH ) |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
* INTEGER IHIZ, ILOZ, KACC22, KBOT, KTOP, LDH, LDU, LDV, |
* INTEGER IHIZ, ILOZ, KACC22, KBOT, KTOP, LDH, LDU, LDV, |
* $ LDWH, LDWV, LDZ, N, NH, NSHFTS, NV |
* $ LDWH, LDWV, LDZ, N, NH, NSHFTS, NV |
Line 32
|
Line 32
|
* $ V( LDV, * ), WH( LDWH, * ), WV( LDWV, * ), |
* $ V( LDV, * ), WH( LDWH, * ), WV( LDWV, * ), |
* $ Z( LDZ, * ) |
* $ Z( LDZ, * ) |
* .. |
* .. |
* |
* |
* |
* |
*> \par Purpose: |
*> \par Purpose: |
* ============= |
* ============= |
Line 48
|
Line 48
|
* |
* |
*> \param[in] WANTT |
*> \param[in] WANTT |
*> \verbatim |
*> \verbatim |
*> WANTT is logical scalar |
*> WANTT is LOGICAL |
*> WANTT = .true. if the quasi-triangular Schur factor |
*> WANTT = .true. if the quasi-triangular Schur factor |
*> is being computed. WANTT is set to .false. otherwise. |
*> is being computed. WANTT is set to .false. otherwise. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[in] WANTZ |
*> \param[in] WANTZ |
*> \verbatim |
*> \verbatim |
*> WANTZ is logical scalar |
*> WANTZ is LOGICAL |
*> WANTZ = .true. if the orthogonal Schur factor is being |
*> WANTZ = .true. if the orthogonal Schur factor is being |
*> computed. WANTZ is set to .false. otherwise. |
*> computed. WANTZ is set to .false. otherwise. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[in] KACC22 |
*> \param[in] KACC22 |
*> \verbatim |
*> \verbatim |
*> KACC22 is integer with value 0, 1, or 2. |
*> KACC22 is INTEGER with value 0, 1, or 2. |
*> Specifies the computation mode of far-from-diagonal |
*> Specifies the computation mode of far-from-diagonal |
*> orthogonal updates. |
*> orthogonal updates. |
*> = 0: DLAQR5 does not accumulate reflections and does not |
*> = 0: DLAQR5 does not accumulate reflections and does not |
Line 78
|
Line 78
|
*> |
*> |
*> \param[in] N |
*> \param[in] N |
*> \verbatim |
*> \verbatim |
*> N is integer scalar |
*> N is INTEGER |
*> N is the order of the Hessenberg matrix H upon which this |
*> N is the order of the Hessenberg matrix H upon which this |
*> subroutine operates. |
*> subroutine operates. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[in] KTOP |
*> \param[in] KTOP |
*> \verbatim |
*> \verbatim |
*> KTOP is integer scalar |
*> KTOP is INTEGER |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[in] KBOT |
*> \param[in] KBOT |
*> \verbatim |
*> \verbatim |
*> KBOT is integer scalar |
*> KBOT is INTEGER |
*> These are the first and last rows and columns of an |
*> These are the first and last rows and columns of an |
*> isolated diagonal block upon which the QR sweep is to be |
*> isolated diagonal block upon which the QR sweep is to be |
*> applied. It is assumed without a check that |
*> applied. It is assumed without a check that |
Line 101
|
Line 101
|
*> |
*> |
*> \param[in] NSHFTS |
*> \param[in] NSHFTS |
*> \verbatim |
*> \verbatim |
*> NSHFTS is integer scalar |
*> NSHFTS is INTEGER |
*> NSHFTS gives the number of simultaneous shifts. NSHFTS |
*> NSHFTS gives the number of simultaneous shifts. NSHFTS |
*> must be positive and even. |
*> must be positive and even. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[in,out] SR |
*> \param[in,out] SR |
*> \verbatim |
*> \verbatim |
*> SR is DOUBLE PRECISION array of size (NSHFTS) |
*> SR is DOUBLE PRECISION array, dimension (NSHFTS) |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[in,out] SI |
*> \param[in,out] SI |
*> \verbatim |
*> \verbatim |
*> SI is DOUBLE PRECISION array of size (NSHFTS) |
*> SI is DOUBLE PRECISION array, dimension (NSHFTS) |
*> SR contains the real parts and SI contains the imaginary |
*> SR contains the real parts and SI contains the imaginary |
*> parts of the NSHFTS shifts of origin that define the |
*> parts of the NSHFTS shifts of origin that define the |
*> multi-shift QR sweep. On output SR and SI may be |
*> multi-shift QR sweep. On output SR and SI may be |
Line 122
|
Line 122
|
*> |
*> |
*> \param[in,out] H |
*> \param[in,out] H |
*> \verbatim |
*> \verbatim |
*> H is DOUBLE PRECISION array of size (LDH,N) |
*> H is DOUBLE PRECISION array, dimension (LDH,N) |
*> On input H contains a Hessenberg matrix. On output a |
*> On input H contains a Hessenberg matrix. On output a |
*> multi-shift QR sweep with shifts SR(J)+i*SI(J) is applied |
*> multi-shift QR sweep with shifts SR(J)+i*SI(J) is applied |
*> to the isolated diagonal block in rows and columns KTOP |
*> to the isolated diagonal block in rows and columns KTOP |
Line 131
|
Line 131
|
*> |
*> |
*> \param[in] LDH |
*> \param[in] LDH |
*> \verbatim |
*> \verbatim |
*> LDH is integer scalar |
*> LDH is INTEGER |
*> LDH is the leading dimension of H just as declared in the |
*> LDH is the leading dimension of H just as declared in the |
*> calling procedure. LDH.GE.MAX(1,N). |
*> calling procedure. LDH.GE.MAX(1,N). |
*> \endverbatim |
*> \endverbatim |
Line 150
|
Line 150
|
*> |
*> |
*> \param[in,out] Z |
*> \param[in,out] Z |
*> \verbatim |
*> \verbatim |
*> Z is DOUBLE PRECISION array of size (LDZ,IHIZ) |
*> Z is DOUBLE PRECISION array, dimension (LDZ,IHIZ) |
*> If WANTZ = .TRUE., then the QR Sweep orthogonal |
*> If WANTZ = .TRUE., then the QR Sweep orthogonal |
*> similarity transformation is accumulated into |
*> similarity transformation is accumulated into |
*> Z(ILOZ:IHIZ,ILOZ:IHIZ) from the right. |
*> Z(ILOZ:IHIZ,ILOZ:IHIZ) from the right. |
Line 159
|
Line 159
|
*> |
*> |
*> \param[in] LDZ |
*> \param[in] LDZ |
*> \verbatim |
*> \verbatim |
*> LDZ is integer scalar |
*> LDZ is INTEGER |
*> LDA is the leading dimension of Z just as declared in |
*> LDA is the leading dimension of Z just as declared in |
*> the calling procedure. LDZ.GE.N. |
*> the calling procedure. LDZ.GE.N. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[out] V |
*> \param[out] V |
*> \verbatim |
*> \verbatim |
*> V is DOUBLE PRECISION array of size (LDV,NSHFTS/2) |
*> V is DOUBLE PRECISION array, dimension (LDV,NSHFTS/2) |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[in] LDV |
*> \param[in] LDV |
*> \verbatim |
*> \verbatim |
*> LDV is integer scalar |
*> LDV is INTEGER |
*> LDV is the leading dimension of V as declared in the |
*> LDV is the leading dimension of V as declared in the |
*> calling procedure. LDV.GE.3. |
*> calling procedure. LDV.GE.3. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[out] U |
*> \param[out] U |
*> \verbatim |
*> \verbatim |
*> U is DOUBLE PRECISION array of size |
*> U is DOUBLE PRECISION array, dimension (LDU,3*NSHFTS-3) |
*> (LDU,3*NSHFTS-3) |
|
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[in] LDU |
*> \param[in] LDU |
*> \verbatim |
*> \verbatim |
*> LDU is integer scalar |
*> LDU is INTEGER |
*> LDU is the leading dimension of U just as declared in the |
*> LDU is the leading dimension of U just as declared in the |
*> in the calling subroutine. LDU.GE.3*NSHFTS-3. |
*> in the calling subroutine. LDU.GE.3*NSHFTS-3. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[in] NH |
*> \param[in] NH |
*> \verbatim |
*> \verbatim |
*> NH is integer scalar |
*> NH is INTEGER |
*> NH is the number of columns in array WH available for |
*> NH is the number of columns in array WH available for |
*> workspace. NH.GE.1. |
*> workspace. NH.GE.1. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[out] WH |
*> \param[out] WH |
*> \verbatim |
*> \verbatim |
*> WH is DOUBLE PRECISION array of size (LDWH,NH) |
*> WH is DOUBLE PRECISION array, dimension (LDWH,NH) |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[in] LDWH |
*> \param[in] LDWH |
*> \verbatim |
*> \verbatim |
*> LDWH is integer scalar |
*> LDWH is INTEGER |
*> Leading dimension of WH just as declared in the |
*> Leading dimension of WH just as declared in the |
*> calling procedure. LDWH.GE.3*NSHFTS-3. |
*> calling procedure. LDWH.GE.3*NSHFTS-3. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[in] NV |
*> \param[in] NV |
*> \verbatim |
*> \verbatim |
*> NV is integer scalar |
*> NV is INTEGER |
*> NV is the number of rows in WV agailable for workspace. |
*> NV is the number of rows in WV agailable for workspace. |
*> NV.GE.1. |
*> NV.GE.1. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[out] WV |
*> \param[out] WV |
*> \verbatim |
*> \verbatim |
*> WV is DOUBLE PRECISION array of size |
*> WV is DOUBLE PRECISION array, dimension (LDWV,3*NSHFTS-3) |
*> (LDWV,3*NSHFTS-3) |
|
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[in] LDWV |
*> \param[in] LDWV |
*> \verbatim |
*> \verbatim |
*> LDWV is integer scalar |
*> LDWV is INTEGER |
*> LDWV is the leading dimension of WV as declared in the |
*> LDWV is the leading dimension of WV as declared in the |
*> in the calling subroutine. LDWV.GE.NV. |
*> in the calling subroutine. LDWV.GE.NV. |
*> \endverbatim |
*> \endverbatim |
Line 231
|
Line 229
|
* 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 June 2016 |
*> \date June 2016 |
* |
* |
Line 259
|
Line 257
|
$ SR, SI, H, LDH, ILOZ, IHIZ, Z, LDZ, V, LDV, U, |
$ SR, SI, H, LDH, ILOZ, IHIZ, Z, LDZ, V, LDV, U, |
$ LDU, NV, WV, LDWV, NH, WH, LDWH ) |
$ LDU, NV, WV, LDWV, NH, WH, LDWH ) |
* |
* |
* -- LAPACK auxiliary routine (version 3.6.1) -- |
* -- LAPACK auxiliary routine (version 3.7.1) -- |
* -- 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..-- |
* June 2016 |
* June 2016 |