summaryrefslogtreecommitdiff
path: root/SRC/shseqr.f
diff options
context:
space:
mode:
authorjulie <julielangou@users.noreply.github.com>2008-12-16 17:06:58 +0000
committerjulie <julielangou@users.noreply.github.com>2008-12-16 17:06:58 +0000
commitff981f106bde4ce6a74aa4f4a572c943f5a395b2 (patch)
treea386cad907bcaefd6893535c31d67ec9468e693e /SRC/shseqr.f
parente58b61578b55644f6391f3333262b72c1dc88437 (diff)
downloadlapack-ff981f106bde4ce6a74aa4f4a572c943f5a395b2.tar.gz
lapack-ff981f106bde4ce6a74aa4f4a572c943f5a395b2.tar.bz2
lapack-ff981f106bde4ce6a74aa4f4a572c943f5a395b2.zip
Diffstat (limited to 'SRC/shseqr.f')
-rw-r--r--SRC/shseqr.f55
1 files changed, 30 insertions, 25 deletions
diff --git a/SRC/shseqr.f b/SRC/shseqr.f
index 5f5ee19f..1a7adbbd 100644
--- a/SRC/shseqr.f
+++ b/SRC/shseqr.f
@@ -1,8 +1,8 @@
SUBROUTINE SHSEQR( JOB, COMPZ, N, ILO, IHI, H, LDH, WR, WI, Z,
$ LDZ, WORK, LWORK, INFO )
*
-* -- LAPACK driver routine (version 3.1) --
-* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
+* -- LAPACK driver routine (version 3.2) --
+* Univ. of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..
* November 2006
*
* .. Scalar Arguments ..
@@ -107,9 +107,11 @@
*
* LWORK (input) INTEGER
* The dimension of the array WORK. LWORK .GE. max(1,N)
-* is sufficient, but LWORK typically as large as 6*N may
-* be required for optimal performance. A workspace query
-* to determine the optimal workspace size is recommended.
+* is sufficient and delivers very good and sometimes
+* optimal performance. However, LWORK as large as 11*N
+* may be required for optimal performance. A workspace
+* query is recommended to determine the optimal workspace
+* size.
*
* If LWORK = -1, then SHSEQR does a workspace query.
* In this case, SHSEQR checks the input parameters and
@@ -164,46 +166,50 @@
* to attain best performance in each particular
* computational environment.
*
-* ISPEC=1: The SLAHQR vs SLAQR0 crossover point.
+* ISPEC=12: The SLAHQR vs SLAQR0 crossover point.
* Default: 75. (Must be at least 11.)
*
-* ISPEC=2: Recommended deflation window size.
+* ISPEC=13: Recommended deflation window size.
* This depends on ILO, IHI and NS. NS is the
* number of simultaneous shifts returned
-* by ILAENV(ISPEC=4). (See ISPEC=4 below.)
+* by ILAENV(ISPEC=15). (See ISPEC=15 below.)
* The default for (IHI-ILO+1).LE.500 is NS.
* The default for (IHI-ILO+1).GT.500 is 3*NS/2.
*
-* ISPEC=3: Nibble crossover point. (See ILAENV for
+* ISPEC=14: Nibble crossover point. (See IPARMQ for
* details.) Default: 14% of deflation window
* size.
*
-* ISPEC=4: Number of simultaneous shifts, NS, in
-* a multi-shift QR iteration.
+* ISPEC=15: Number of simultaneous shifts in a multishift
+* QR iteration.
*
* If IHI-ILO+1 is ...
*
* greater than ...but less ... the
* or equal to ... than default is
*
-* 1 30 NS - 2(+)
-* 30 60 NS - 4(+)
+* 1 30 NS = 2(+)
+* 30 60 NS = 4(+)
* 60 150 NS = 10(+)
* 150 590 NS = **
* 590 3000 NS = 64
* 3000 6000 NS = 128
* 6000 infinity NS = 256
*
-* (+) By default some or all matrices of this order
+* (+) By default some or all matrices of this order
* are passed to the implicit double shift routine
-* SLAHQR and NS is ignored. See ISPEC=1 above
-* and comments in IPARM for details.
+* SLAHQR and this parameter is ignored. See
+* ISPEC=12 above and comments in IPARMQ for
+* details.
*
-* The asterisks (**) indicate an ad-hoc
+* (**) The asterisks (**) indicate an ad-hoc
* function of N increasing from 10 to 64.
*
-* ISPEC=5: Select structured matrix multiply.
-* (See ILAENV for details.) Default: 3.
+* ISPEC=16: Select structured matrix multiply.
+* If the number of simultaneous shifts (specified
+* by ISPEC=15) is less than 14, then the default
+* for ISPEC=16 is 0. Otherwise the default for
+* ISPEC=16 is 2.
*
* ================================================================
* Based on contributions by
@@ -227,16 +233,15 @@
* ==== Matrices of order NTINY or smaller must be processed by
* . SLAHQR because of insufficient subdiagonal scratch space.
* . (This is a hard limit.) ====
+ INTEGER NTINY
+ PARAMETER ( NTINY = 11 )
*
* ==== NL allocates some local workspace to help small matrices
* . through a rare SLAHQR failure. NL .GT. NTINY = 11 is
-* . required and NL .LE. NMIN = ILAENV(ISPEC=1,...) is recom-
+* . required and NL .LE. NMIN = ILAENV(ISPEC=12,...) is recom-
* . mended. (The default value of NMIN is 75.) Using NL = 49
* . allows up to six simultaneous shifts and a 16-by-16
* . deflation window. ====
-*
- INTEGER NTINY
- PARAMETER ( NTINY = 11 )
INTEGER NL
PARAMETER ( NL = 49 )
REAL ZERO, ONE
@@ -341,8 +346,8 @@
*
* ==== SLAHQR/SLAQR0 crossover point ====
*
- NMIN = ILAENV( 1, 'SHSEQR', JOB( : 1 ) // COMPZ( : 1 ), N, ILO,
- $ IHI, LWORK )
+ NMIN = ILAENV( 12, 'SHSEQR', JOB( : 1 ) // COMPZ( : 1 ), N,
+ $ ILO, IHI, LWORK )
NMIN = MAX( NTINY, NMIN )
*
* ==== SLAQR0 for big matrices; SLAHQR for small ones ====