1ILAENV ‐ called from the LAPACK routines to choose problem‐depen‐
2dent  parameters  for  the  local  environment  INTEGER  FUNCTION
3ILAENV( ISPEC, NAME, OPTS, N1, N2, N3, N4 )
4    CHARACTER*( * ) NAME, OPTS
5    INTEGER  ISPEC,  N1, N2, N3, N4 ILAENV is called from the LA‐
6PACK routines to choose problem‐dependent parameters for the  lo‐
7cal environment.  See ISPEC for a description of the parameters.
8
9ILAENV returns an INTEGER
10if  ILAENV >= 0: ILAENV returns the value of the parameter speci‐
11fied by ISPEC if ILAENV < 0:  if ILAENV = ‐k, the  k‐th  argument
12had an illegal value.
13
14This version provides a set of parameters which should give good,
15but not optimal, performance on many of the  currently  available
16computers.  Users are encouraged to modify this subroutine to set
17the tuning parameters for their particular machine using the  op‐
18tion and problem size information in the arguments.
19
20This  routine  will  not function correctly if it is converted to
21all lower case.  Converting it to all upper case is allowed.
22
23ISPEC   (input) INTEGER Specifies the parameter to be returned as
24the  value  of ILAENV.  = 1: the optimal blocksize; if this value
25is 1, an unblocked algorithm will give the best  performance.   =
262:  the  minimum block size for which the block routine should be
27used; if the usable block size is less than this  value,  an  un‐
28blocked  routine  should be used.  = 3: the crossover point (in a
29block routine, for N less than this value, an  unblocked  routine
30should be used) = 4: the number of shifts, used in the nonsymmet‐
31ric eigenvalue routines (DEPRECATED) = 5: the minimum column  di‐
32mension for blocking to be used; rectangular blocks must have di‐
33mension at least k by m, where k is given by ILAENV(2,...) and  m
34by  ILAENV(5,...)  = 6: the crossover point for the SVD (when re‐
35ducing an m by n matrix to bidiagonal form, if  max(m,n)/min(m,n)
36exceeds  this  value,  a QR factorization is used first to reduce
37the matrix to a triangular form.)  = 7: the number of processors
38= 8: the crossover point for the multishift QR method for nonsym‐
39metric  eigenvalue problems (DEPRECATED) = 9: maximum size of the
40subproblems at the bottom of the computation tree in the  divide‐
41and‐conquer  algorithm  (used by xGELSD and xGESDD) =10: ieee NaN
42arithmetic can be trusted not to trap
43=11: infinity arithmetic can be trusted not to trap
4412 <= ISPEC <= 16: xHSEQR or one of its subroutines,  see  IPARMQ
45for  detailed  explanation NAME    (input) CHARACTER*(*) The name
46of the calling subroutine, in either upper case  or  lower  case.
47OPTS     (input)  CHARACTER*(*) The character options to the sub‐
48routine NAME, concatenated into a single character  string.   For
49example, UPLO = 'U', TRANS = 'T', and DIAG = 'N' for a triangular
50routine would be specified as OPTS = 'UTN'.  N1      (input)  IN‐
51TEGER   N2        (input)  INTEGER  N3       (input)  INTEGER  N4
52(input) INTEGER Problem dimensions for the subroutine NAME; these
53may  not  all  be  required.  The following conventions have been
54used when calling ILAENV from the LAPACK routines:
551)  OPTS is a concatenation of all of the character options to
56    subroutine NAME, in the same order that they appear in the
57    argument list for NAME, even if they are not used  in  deter‐
58mining
59    the value of the parameter specified by ISPEC.
602)   The  problem  dimensions N1, N2, N3, N4 are specified in the
61order
62    that they appear in the argument list for NAME.  N1 is used
63    first, N2 second, and so on, and  unused  problem  dimensions
64are
65    passed a value of ‐1.
663)  The parameter value returned by ILAENV is checked for validi‐
67ty in
68    the calling subroutine.  For example, ILAENV is used  to  re‐
69trieve
70    the optimal blocksize for STRTRI as follows:
71
72    NB = ILAENV( 1, 'STRTRI', UPLO // DIAG, N, ‐1, ‐1, ‐1 )
73    IF( NB.LE.1 ) NB = MAX( 1, N )
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
Impressum