version 1.15, 2016/08/27 15:34:43
|
version 1.21, 2023/08/07 08:39:14
|
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 IPARMQ + dependencies |
*> Download IPARMQ + dependencies |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/iparmq.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/iparmq.f"> |
*> [TGZ]</a> |
*> [TGZ]</a> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/iparmq.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/iparmq.f"> |
*> [ZIP]</a> |
*> [ZIP]</a> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/iparmq.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/iparmq.f"> |
*> [TXT]</a> |
*> [TXT]</a> |
*> \endhtmlonly |
*> \endhtmlonly |
* |
* |
* Definition: |
* Definition: |
* =========== |
* =========== |
* |
* |
* INTEGER FUNCTION IPARMQ( ISPEC, NAME, OPTS, N, ILO, IHI, LWORK ) |
* INTEGER FUNCTION IPARMQ( ISPEC, NAME, OPTS, N, ILO, IHI, LWORK ) |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
* INTEGER IHI, ILO, ISPEC, LWORK, N |
* INTEGER IHI, ILO, ISPEC, LWORK, N |
* CHARACTER NAME*( * ), OPTS*( * ) |
* CHARACTER NAME*( * ), OPTS*( * ) |
* |
* |
* |
* |
*> \par Purpose: |
*> \par Purpose: |
* ============= |
* ============= |
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 |
* |
* |
* 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 2015 |
|
* |
* |
*> \ingroup auxOTHERauxiliary |
*> \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.6.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 2015 |
|
* |
* |
* .. 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 |