.TH "iparmq" 3 "Wed Feb 7 2024 11:30:40" "Version 3.12.0" "LAPACK" \" -*- nroff -*- .ad l .nh .SH NAME iparmq \- iparmq: set parameters for hseqr .SH SYNOPSIS .br .PP .SS "Functions" .in +1c .ti -1c .RI "integer function \fBiparmq\fP (ispec, name, opts, n, ilo, ihi, lwork)" .br .RI "\fBIPARMQ\fP " .in -1c .SH "Detailed Description" .PP .SH "Function Documentation" .PP .SS "integer function iparmq (integer ispec, character, dimension( * ) name, character, dimension( * ) opts, integer n, integer ilo, integer ihi, integer lwork)" .PP \fBIPARMQ\fP .PP \fBPurpose:\fP .RS 4 .PP .nf This program sets problem and machine dependent parameters useful for xHSEQR and related subroutines for eigenvalue problems\&. It is called whenever IPARMQ is called with 12 <= ISPEC <= 16 .fi .PP .RE .PP \fBParameters\fP .RS 4 \fIISPEC\fP .PP .nf ISPEC is INTEGER ISPEC specifies which tunable parameter IPARMQ should return\&. ISPEC=12: (INMIN) Matrices of order nmin or less are sent directly to xLAHQR, the implicit double shift QR algorithm\&. NMIN must be at least 11\&. ISPEC=13: (INWIN) Size of the deflation window\&. This is best set greater than or equal to the number of simultaneous shifts NS\&. Larger matrices benefit from larger deflation windows\&. ISPEC=14: (INIBL) Determines when to stop nibbling and invest in an (expensive) multi-shift QR sweep\&. If the aggressive early deflation subroutine finds LD converged eigenvalues from an order NW deflation window and LD > (NW*NIBBLE)/100, then the next QR sweep is skipped and early deflation is applied immediately to the remaining active diagonal block\&. Setting IPARMQ(ISPEC=14) = 0 causes TTQRE to skip a multi-shift QR sweep whenever early deflation finds a converged eigenvalue\&. Setting IPARMQ(ISPEC=14) greater than or equal to 100 prevents TTQRE from skipping a multi-shift QR sweep\&. ISPEC=15: (NSHFTS) The number of simultaneous shifts in a multi-shift QR iteration\&. ISPEC=16: (IACC22) IPARMQ is set to 0, 1 or 2 with the following meanings\&. 0: During the multi-shift QR/QZ sweep, blocked eigenvalue reordering, blocked Hessenberg-triangular reduction, reflections and/or rotations are not accumulated when updating the far-from-diagonal matrix entries\&. 1: During the multi-shift QR/QZ sweep, blocked eigenvalue reordering, blocked Hessenberg-triangular reduction, reflections and/or rotations are accumulated, and matrix-matrix multiplication is used to update the far-from-diagonal matrix entries\&. 2: During the multi-shift QR/QZ sweep, blocked eigenvalue reordering, blocked Hessenberg-triangular reduction, reflections and/or rotations are accumulated, and 2-by-2 block structure is exploited during matrix-matrix multiplies\&. (If xTRMM is slower than xGEMM, then IPARMQ(ISPEC=16)=1 may be more efficient than IPARMQ(ISPEC=16)=2 despite the greater level of 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\&. .fi .PP .br \fINAME\fP .PP .nf NAME is CHARACTER string Name of the calling subroutine .fi .PP .br \fIOPTS\fP .PP .nf OPTS is CHARACTER string This is a concatenation of the string arguments to TTQRE\&. .fi .PP .br \fIN\fP .PP .nf N is INTEGER N is the order of the Hessenberg matrix H\&. .fi .PP .br \fIILO\fP .PP .nf ILO is INTEGER .fi .PP .br \fIIHI\fP .PP .nf IHI is INTEGER It is assumed that H is already upper triangular in rows and columns 1:ILO-1 and IHI+1:N\&. .fi .PP .br \fILWORK\fP .PP .nf LWORK is INTEGER The amount of workspace available\&. .fi .PP .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBFurther Details:\fP .RS 4 .PP .nf Little is known about how best to choose these parameters\&. It is possible to use different values of the parameters for each of CHSEQR, DHSEQR, SHSEQR and ZHSEQR\&. It is probably best to choose different parameters for different matrices and different parameters at different times during the iteration, but this has not been implemented --- yet\&. The best choices of most of the parameters depend in an ill-understood way on the relative execution rate of xLAQR3 and xLAQR5 and on the nature of each particular eigenvalue problem\&. Experiment may be the only practical way to determine which choices are most effective\&. Following is a list of default values supplied by IPARMQ\&. These defaults may be adjusted in order to attain better performance in any particular computational environment\&. IPARMQ(ISPEC=12) The xLAHQR vs xLAQR0 crossover point\&. Default: 75\&. (Must be at least 11\&.) IPARMQ(ISPEC=13) Recommended deflation window size\&. This depends on ILO, IHI and NS, the number of simultaneous shifts returned by IPARMQ(ISPEC=15)\&. The default for (IHI-ILO+1) <= 500 is NS\&. The default for (IHI-ILO+1) > 500 is 3*NS/2\&. IPARMQ(ISPEC=14) Nibble crossover point\&. Default: 14\&. IPARMQ(ISPEC=15) Number of simultaneous shifts, NS\&. a multi-shift QR iteration\&. If IHI-ILO+1 is \&.\&.\&. greater than \&.\&.\&.but less \&.\&.\&. the or equal to \&.\&.\&. than default is 0 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 matrices of this order are passed to the implicit double shift routine xLAHQR\&. See IPARMQ(ISPEC=12) above\&. These values of NS are used only in case of a rare xLAHQR failure\&. (**) The asterisks (**) indicate an ad-hoc function increasing from 10 to 64\&. IPARMQ(ISPEC=16) Select structured matrix multiply\&. (See ISPEC=16 above for details\&.) Default: 3\&. IPARMQ(ISPEC=17) Relative cost heuristic for blocksize selection\&. Expressed as a percentage\&. Default: 10\&. .fi .PP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for LAPACK from the source code\&.