1IPARMQ(1) LAPACK auxiliary routine (version 3.1) IPARMQ(1)
2
3
4
6 IPARMQ - program sets problem and machine dependent parameters useful
7 for xHSEQR and its subroutines
8
10 INTEGER FUNCTION IPARMQ( ISPEC, NAME, OPTS, N, ILO, IHI, LWORK )
11
12 INTEGER IHI, ILO, ISPEC, LWORK, N
13
14 CHARACTER NAME*( * ), OPTS*( * )
15
17 This program sets problem and machine dependent parameters
18 useful for xHSEQR and its subroutines. It is called whenever
19 ILAENV is called with 12 <= ISPEC <= 16
20
21
23 ISPEC (input) integer scalar
24 ISPEC specifies which tunable parameter IPARMQ should return.
25
26 ISPEC=12: (INMIN) Matrices of order nmin or less are sent
27 directly to xLAHQR, the implicit double shift QR algorithm.
28 NMIN must be at least 11.
29
30 ISPEC=13: (INWIN) Size of the deflation window. This is best
31 set greater than or equal to the number of simultaneous shifts
32 NS. Larger matrices benefit from larger deflation windows.
33
34 ISPEC=14: (INIBL) Determines when to stop nibbling and invest in
35 an (expensive) multi-shift QR sweep. If the aggressive early
36 deflation subroutine finds LD converged eigenvalues from an
37 order NW deflation window and LD.GT.(NW*NIBBLE)/100, then the
38 next QR sweep is skipped and early deflation is applied immedi‐
39 ately to the remaining active diagonal block. Setting
40 IPARMQ(ISPEC=14) = 0 causes TTQRE to skip a multi-shift QR sweep
41 whenever early deflation finds a converged eigenvalue. Setting
42 IPARMQ(ISPEC=14) greater than or equal to 100 prevents TTQRE
43 from skipping a multi-shift QR sweep.
44
45 ISPEC=15: (NSHFTS) The number of simultaneous shifts in a multi-
46 shift QR iteration.
47
48 ISPEC=16: (IACC22) IPARMQ is set to 0, 1 or 2 with the following
49 meanings. 0: During the multi-shift QR sweep, xLAQR5 does not
50 accumulate reflections and does not use matrix-matrix multiply
51 to update the far-from-diagonal matrix entries. 1: During the
52 multi-shift QR sweep, xLAQR5 and/or xLAQRaccumulates reflections
53 and uses matrix-matrix multiply to update the far-from-diagonal
54 matrix entries. 2: During the multi-shift QR sweep. xLAQR5
55 accumulates reflections and takes advantage of 2-by-2 block
56 structure during matrix-matrix multiplies. (If xTRMM is slower
57 than xGEMM, then IPARMQ(ISPEC=16)=1 may be more efficient than
58 IPARMQ(ISPEC=16)=2 despite the greater level of arithmetic work
59 implied by the latter choice.)
60
61 NAME (input) character string
62 Name of the calling subroutine
63
64 OPTS (input) character string
65 This is a concatenation of the string arguments to TTQRE.
66
67 N (input) integer scalar
68 N is the order of the Hessenberg matrix H.
69
70 ILO (input) INTEGER
71 IHI (input) INTEGER It is assumed that H is already upper
72 triangular in rows and columns 1:ILO-1 and IHI+1:N.
73
74 LWORK (input) integer scalar
75 The amount of workspace available.
76
78 Little is known about how best to choose these parameters.
79 It is possible to use different values of the parameters
80 for each of CHSEQR, DHSEQR, SHSEQR and ZHSEQR.
81
82 It is probably best to choose different parameters for
83 different matrices and different parameters at different
84 times during the iteration, but this has not been
85 implemented --- yet.
86
87
88 The best choices of most of the parameters depend
89 in an ill-understood way on the relative execution
90 rate of xLAQR3 and xLAQR5 and on the nature of each
91 particular eigenvalue problem. Experiment may be the
92 only practical way to determine which choices are most
93 effective.
94
95 Following is a list of default values supplied by IPARMQ.
96 These defaults may be adjusted in order to attain better
97 performance in any particular computational environment.
98
99 IPARMQ(ISPEC=12) The xLAHQR vs xLAQR0 crossover point.
100 Default: 75. (Must be at least 11.)
101
102 IPARMQ(ISPEC=13) Recommended deflation window size.
103 This depends on ILO, IHI and NS, the
104 number of simultaneous shifts returned
105 by IPARMQ(ISPEC=15). The default for
106 (IHI-ILO+1).LE.500 is NS. The default
107 for (IHI-ILO+1).GT.500 is 3*NS/2.
108
109 IPARMQ(ISPEC=14) Nibble crossover point. Default: 14.
110
111 IPARMQ(ISPEC=15) Number of simultaneous shifts, NS.
112 a multi-shift QR iteration.
113
114 If IHI-ILO+1 is ...
115
116 greater than ...but less ... the
117 or equal to ... than default is
118
119 0 30 NS = 2+
120 30 60 NS = 4+
121 60 150 NS = 10
122 150 590 NS = **
123 590 3000 NS = 64
124 3000 6000 NS = 128
125 6000 infinity NS = 256
126
127 (+) By default matrices of this order are
128 passed to the implicit double shift routine
129 xLAHQR. See IPARMQ(ISPEC=12) above. These
130 values of NS are used only in case of a rare
131 xLAHQR failure.
132
133 (**) The asterisks (**) indicate an ad-hoc
134 function increasing from 10 to 64.
135
136 IPARMQ(ISPEC=16) Select structured matrix multiply.
137 (See ISPEC=16 above for details.)
138 Default: 3.
139
140
141
142
143 LAPACK auxiliary routine (versionNo3v.e1m)ber 2006 IPARMQ(1)