version 1.16, 2017/06/17 10:54:07
|
version 1.21, 2023/08/07 08:39:14
|
Line 41
|
Line 41
|
* |
* |
*> \param[in] ISPEC |
*> \param[in] ISPEC |
*> \verbatim |
*> \verbatim |
*> ISPEC is integer scalar |
*> ISPEC is INTEGER |
*> ISPEC specifies which tunable parameter IPARMQ should |
*> ISPEC specifies which tunable parameter IPARMQ should |
*> return. |
*> return. |
*> |
*> |
Line 60
|
Line 60
|
*> invest in an (expensive) multi-shift QR sweep. |
*> invest in an (expensive) multi-shift QR sweep. |
*> If the aggressive early deflation subroutine |
*> If the aggressive early deflation subroutine |
*> finds LD converged eigenvalues from an order |
*> finds LD converged eigenvalues from an order |
*> NW deflation window and LD.GT.(NW*NIBBLE)/100, |
*> NW deflation window and LD > (NW*NIBBLE)/100, |
*> then the next QR sweep is skipped and early |
*> then the next QR sweep is skipped and early |
*> deflation is applied immediately to the |
*> deflation is applied immediately to the |
*> remaining active diagonal block. Setting |
*> remaining active diagonal block. Setting |
Line 100
|
Line 100
|
*> IPARMQ(ISPEC=16)=1 may be more efficient than |
*> IPARMQ(ISPEC=16)=1 may be more efficient than |
*> IPARMQ(ISPEC=16)=2 despite the greater level of |
*> IPARMQ(ISPEC=16)=2 despite the greater level of |
*> arithmetic work implied by the latter choice.) |
*> arithmetic work implied by the latter choice.) |
|
*> |
|
*> ISPEC=17: (ICOST) An estimate of the relative cost of flops |
|
*> within the near-the-diagonal shift chase compared |
|
*> to flops within the BLAS calls of a QZ sweep. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[in] NAME |
*> \param[in] NAME |
*> \verbatim |
*> \verbatim |
*> NAME is character string |
*> NAME is CHARACTER string |
*> Name of the calling subroutine |
*> Name of the calling subroutine |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[in] OPTS |
*> \param[in] OPTS |
*> \verbatim |
*> \verbatim |
*> OPTS is character string |
*> OPTS is CHARACTER string |
*> This is a concatenation of the string arguments to |
*> This is a concatenation of the string arguments to |
*> TTQRE. |
*> TTQRE. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[in] N |
*> \param[in] N |
*> \verbatim |
*> \verbatim |
*> N is integer scalar |
*> N is INTEGER |
*> N is the order of the Hessenberg matrix H. |
*> N is the order of the Hessenberg matrix H. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
Line 135
|
Line 139
|
*> |
*> |
*> \param[in] LWORK |
*> \param[in] LWORK |
*> \verbatim |
*> \verbatim |
*> LWORK is integer scalar |
*> LWORK is INTEGER |
*> The amount of workspace available. |
*> The amount of workspace available. |
*> \endverbatim |
*> \endverbatim |
* |
* |
Line 147
|
Line 151
|
*> \author Univ. of Colorado Denver |
*> \author Univ. of Colorado Denver |
*> \author NAG Ltd. |
*> \author NAG Ltd. |
* |
* |
*> \date December 2016 |
|
* |
|
*> \ingroup OTHERauxiliary |
*> \ingroup OTHERauxiliary |
* |
* |
*> \par Further Details: |
*> \par Further Details: |
Line 184
|
Line 186
|
*> This depends on ILO, IHI and NS, the |
*> This depends on ILO, IHI and NS, the |
*> number of simultaneous shifts returned |
*> number of simultaneous shifts returned |
*> by IPARMQ(ISPEC=15). The default for |
*> by IPARMQ(ISPEC=15). The default for |
*> (IHI-ILO+1).LE.500 is NS. The default |
*> (IHI-ILO+1) <= 500 is NS. The default |
*> for (IHI-ILO+1).GT.500 is 3*NS/2. |
*> for (IHI-ILO+1) > 500 is 3*NS/2. |
*> |
*> |
*> IPARMQ(ISPEC=14) Nibble crossover point. Default: 14. |
*> IPARMQ(ISPEC=14) Nibble crossover point. Default: 14. |
*> |
*> |
Line 217
|
Line 219
|
*> IPARMQ(ISPEC=16) Select structured matrix multiply. |
*> IPARMQ(ISPEC=16) Select structured matrix multiply. |
*> (See ISPEC=16 above for details.) |
*> (See ISPEC=16 above for details.) |
*> Default: 3. |
*> Default: 3. |
|
*> |
|
*> IPARMQ(ISPEC=17) Relative cost heuristic for blocksize selection. |
|
*> Expressed as a percentage. |
|
*> Default: 10. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
* ===================================================================== |
* ===================================================================== |
INTEGER FUNCTION IPARMQ( ISPEC, NAME, OPTS, N, ILO, IHI, LWORK ) |
INTEGER FUNCTION IPARMQ( ISPEC, NAME, OPTS, N, ILO, IHI, LWORK ) |
* |
* |
* -- LAPACK auxiliary routine (version 3.7.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..-- |
* December 2016 |
|
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
INTEGER IHI, ILO, ISPEC, LWORK, N |
INTEGER IHI, ILO, ISPEC, LWORK, N |
Line 233
|
Line 238
|
* |
* |
* ================================================================ |
* ================================================================ |
* .. Parameters .. |
* .. Parameters .. |
INTEGER INMIN, INWIN, INIBL, ISHFTS, IACC22 |
INTEGER INMIN, INWIN, INIBL, ISHFTS, IACC22, ICOST |
PARAMETER ( INMIN = 12, INWIN = 13, INIBL = 14, |
PARAMETER ( INMIN = 12, INWIN = 13, INIBL = 14, |
$ ISHFTS = 15, IACC22 = 16 ) |
$ ISHFTS = 15, IACC22 = 16, ICOST = 17 ) |
INTEGER NMIN, K22MIN, KACMIN, NIBBLE, KNWSWP |
INTEGER NMIN, K22MIN, KACMIN, NIBBLE, KNWSWP, RCOST |
PARAMETER ( NMIN = 75, K22MIN = 14, KACMIN = 14, |
PARAMETER ( NMIN = 75, K22MIN = 14, KACMIN = 14, |
$ NIBBLE = 14, KNWSWP = 500 ) |
$ NIBBLE = 14, KNWSWP = 500, RCOST = 10 ) |
REAL TWO |
REAL TWO |
PARAMETER ( TWO = 2.0 ) |
PARAMETER ( TWO = 2.0 ) |
* .. |
* .. |
Line 384
|
Line 389
|
$ IPARMQ = 2 |
$ IPARMQ = 2 |
END IF |
END IF |
* |
* |
|
ELSE IF( ISPEC.EQ.ICOST ) THEN |
|
* |
|
* === Relative cost of near-the-diagonal chase vs |
|
* BLAS updates === |
|
* |
|
IPARMQ = RCOST |
ELSE |
ELSE |
* ===== invalid value of ispec ===== |
* ===== invalid value of ispec ===== |
IPARMQ = -1 |
IPARMQ = -1 |