--- rpl/lapack/lapack/dlaqr5.f 2011/11/21 20:42:57 1.10 +++ rpl/lapack/lapack/dlaqr5.f 2020/05/21 21:46:00 1.22 @@ -1,19 +1,19 @@ -*> \brief \b DLAQR5 +*> \brief \b DLAQR5 performs a single small-bulge multi-shift QR sweep. * * =========== DOCUMENTATION =========== * -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ +* Online html documentation available at +* http://www.netlib.org/lapack/explore-html/ * *> \htmlonly -*> Download DLAQR5 + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> +*> Download DLAQR5 + dependencies +*> +*> [TGZ] +*> +*> [ZIP] +*> *> [TXT] -*> \endhtmlonly +*> \endhtmlonly * * Definition: * =========== @@ -21,7 +21,7 @@ * SUBROUTINE DLAQR5( WANTT, WANTZ, KACC22, N, KTOP, KBOT, NSHFTS, * SR, SI, H, LDH, ILOZ, IHIZ, Z, LDZ, V, LDV, U, * LDU, NV, WV, LDWV, NH, WH, LDWH ) -* +* * .. Scalar Arguments .. * INTEGER IHIZ, ILOZ, KACC22, KBOT, KTOP, LDH, LDU, LDV, * $ LDWH, LDWV, LDZ, N, NH, NSHFTS, NV @@ -32,7 +32,7 @@ * $ V( LDV, * ), WH( LDWH, * ), WV( LDWV, * ), * $ Z( LDZ, * ) * .. -* +* * *> \par Purpose: * ============= @@ -48,21 +48,21 @@ * *> \param[in] WANTT *> \verbatim -*> WANTT is logical scalar +*> WANTT is LOGICAL *> WANTT = .true. if the quasi-triangular Schur factor *> is being computed. WANTT is set to .false. otherwise. *> \endverbatim *> *> \param[in] WANTZ *> \verbatim -*> WANTZ is logical scalar +*> WANTZ is LOGICAL *> WANTZ = .true. if the orthogonal Schur factor is being *> computed. WANTZ is set to .false. otherwise. *> \endverbatim *> *> \param[in] KACC22 *> \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 *> orthogonal updates. *> = 0: DLAQR5 does not accumulate reflections and does not @@ -78,19 +78,19 @@ *> *> \param[in] N *> \verbatim -*> N is integer scalar +*> N is INTEGER *> N is the order of the Hessenberg matrix H upon which this *> subroutine operates. *> \endverbatim *> *> \param[in] KTOP *> \verbatim -*> KTOP is integer scalar +*> KTOP is INTEGER *> \endverbatim *> *> \param[in] KBOT *> \verbatim -*> KBOT is integer scalar +*> KBOT is INTEGER *> These are the first and last rows and columns of an *> isolated diagonal block upon which the QR sweep is to be *> applied. It is assumed without a check that @@ -101,19 +101,19 @@ *> *> \param[in] NSHFTS *> \verbatim -*> NSHFTS is integer scalar +*> NSHFTS is INTEGER *> NSHFTS gives the number of simultaneous shifts. NSHFTS *> must be positive and even. *> \endverbatim *> *> \param[in,out] SR *> \verbatim -*> SR is DOUBLE PRECISION array of size (NSHFTS) +*> SR is DOUBLE PRECISION array, dimension (NSHFTS) *> \endverbatim *> *> \param[in,out] SI *> \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 *> parts of the NSHFTS shifts of origin that define the *> multi-shift QR sweep. On output SR and SI may be @@ -122,7 +122,7 @@ *> *> \param[in,out] H *> \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 *> multi-shift QR sweep with shifts SR(J)+i*SI(J) is applied *> to the isolated diagonal block in rows and columns KTOP @@ -131,9 +131,9 @@ *> *> \param[in] LDH *> \verbatim -*> LDH is integer scalar +*> LDH is INTEGER *> LDH is the leading dimension of H just as declared in the -*> calling procedure. LDH.GE.MAX(1,N). +*> calling procedure. LDH >= MAX(1,N). *> \endverbatim *> *> \param[in] ILOZ @@ -145,98 +145,96 @@ *> \verbatim *> IHIZ is INTEGER *> 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 *> *> \param[in,out] Z *> \verbatim -*> Z is DOUBLE PRECISION array of size (LDZ,IHI) +*> Z is DOUBLE PRECISION array, dimension (LDZ,IHIZ) *> If WANTZ = .TRUE., then the QR Sweep orthogonal *> similarity transformation is accumulated into -*> Z(ILOZ:IHIZ,ILO:IHI) from the right. +*> Z(ILOZ:IHIZ,ILOZ:IHIZ) from the right. *> If WANTZ = .FALSE., then Z is unreferenced. *> \endverbatim *> *> \param[in] LDZ *> \verbatim -*> LDZ is integer scalar +*> LDZ is INTEGER *> LDA is the leading dimension of Z just as declared in -*> the calling procedure. LDZ.GE.N. +*> the calling procedure. LDZ >= N. *> \endverbatim *> *> \param[out] V *> \verbatim -*> V is DOUBLE PRECISION array of size (LDV,NSHFTS/2) +*> V is DOUBLE PRECISION array, dimension (LDV,NSHFTS/2) *> \endverbatim *> *> \param[in] LDV *> \verbatim -*> LDV is integer scalar +*> LDV is INTEGER *> LDV is the leading dimension of V as declared in the -*> calling procedure. LDV.GE.3. +*> calling procedure. LDV >= 3. *> \endverbatim *> *> \param[out] U *> \verbatim -*> U is DOUBLE PRECISION array of size -*> (LDU,3*NSHFTS-3) +*> U is DOUBLE PRECISION array, dimension (LDU,3*NSHFTS-3) *> \endverbatim *> *> \param[in] LDU *> \verbatim -*> LDU is integer scalar +*> LDU is INTEGER *> 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 >= 3*NSHFTS-3. *> \endverbatim *> -*> \param[in] NH +*> \param[in] NV *> \verbatim -*> NH is integer scalar -*> NH is the number of columns in array WH available for -*> workspace. NH.GE.1. +*> NV is INTEGER +*> NV is the number of rows in WV agailable for workspace. +*> NV >= 1. *> \endverbatim *> -*> \param[out] WH +*> \param[out] WV *> \verbatim -*> WH is DOUBLE PRECISION array of size (LDWH,NH) +*> WV is DOUBLE PRECISION array, dimension (LDWV,3*NSHFTS-3) *> \endverbatim *> -*> \param[in] LDWH +*> \param[in] LDWV *> \verbatim -*> LDWH is integer scalar -*> Leading dimension of WH just as declared in the -*> calling procedure. LDWH.GE.3*NSHFTS-3. +*> LDWV is INTEGER +*> LDWV is the leading dimension of WV as declared in the +*> in the calling subroutine. LDWV >= NV. *> \endverbatim -*> -*> \param[in] NV +* +*> \param[in] NH *> \verbatim -*> NV is integer scalar -*> NV is the number of rows in WV agailable for workspace. -*> NV.GE.1. +*> NH is INTEGER +*> NH is the number of columns in array WH available for +*> workspace. NH >= 1. *> \endverbatim *> -*> \param[out] WV +*> \param[out] WH *> \verbatim -*> WV is DOUBLE PRECISION array of size -*> (LDWV,3*NSHFTS-3) +*> WH is DOUBLE PRECISION array, dimension (LDWH,NH) *> \endverbatim *> -*> \param[in] LDWV +*> \param[in] LDWH *> \verbatim -*> LDWV is integer scalar -*> LDWV is the leading dimension of WV as declared in the -*> in the calling subroutine. LDWV.GE.NV. +*> LDWH is INTEGER +*> Leading dimension of WH just as declared in the +*> calling procedure. LDWH >= 3*NSHFTS-3. *> \endverbatim -* +*> * Authors: * ======== * -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. +*> \author Univ. of Tennessee +*> \author Univ. of California Berkeley +*> \author Univ. of Colorado Denver +*> \author NAG Ltd. * -*> \date November 2011 +*> \date June 2016 * *> \ingroup doubleOTHERauxiliary * @@ -259,10 +257,10 @@ $ SR, SI, H, LDH, ILOZ, IHIZ, Z, LDZ, V, LDV, U, $ LDU, NV, WV, LDWV, NH, WH, LDWH ) * -* -- LAPACK auxiliary routine (version 3.4.0) -- +* -- LAPACK auxiliary routine (version 3.7.1) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2011 +* June 2016 * * .. Scalar Arguments .. INTEGER IHIZ, ILOZ, KACC22, KBOT, KTOP, LDH, LDU, LDV,