ilaenv(3)
NAME
- ILAENV - i called from the LAPACK routines to choose prob
- lem-dependent parameters for the local environment
SYNOPSIS
INTEGER FUNCTION ILAENV( ISPEC, NAME, OPTS, N1, N2, N3, N4
)
CHARACTER*( * ) NAME, OPTS
INTEGER ISPEC, N1, N2, N3, N4
PURPOSE
- ILAENV is called from the LAPACK routines to choose prob
- lem-dependent parameters for the local environment. See ISPEC for
- a description of the parameters.
- This version provides a set of parameters which should
- give good, but not optimal, performance on many of the currently
- available computers. Users are encouraged to modify this subrou
- tine to set the tuning parameters for their particular machine
- using the option and problem size information in the arguments.
- This routine will not function correctly if it is convert
- ed to all lower case. Converting it to all upper case is al
- lowed.
ARGUMENTS
- ISPEC (input) INTEGER
- Specifies the parameter to be returned as the val
- ue of ILAENV. = 1: the optimal blocksize; if this value is 1, an
- unblocked algorithm will give the best performance. = 2: the
- minimum block size for which the block routine should be used; if
- the usable block size is less than this value, an unblocked rou
- tine should be used. = 3: the crossover point (in a block rou
- tine, for N less than this value, an unblocked routine should be
- used) = 4: the number of shifts, used in the nonsymmetric eigen
- value routines = 5: the minimum column dimension for blocking to
- be used; rectangular blocks must have dimension at least k by m,
- where k is given by ILAENV(2,...) and m by ILAENV(5,...) = 6:
- the crossover point for the SVD (when reducing an m by n matrix
- to bidiagonal form, if max(m,n)/min(m,n) exceeds this value, a QR
- factorization is used first to reduce the matrix to a triangular
- form.) = 7: the number of processors
= 8: the crossover point for the multishift QR and
- QZ methods for nonsymmetric eigenvalue problems. = 9: maximum
- size of the subproblems at the bottom of the computation tree in
- the divide-and-conquer algorithm (used by xGELSD and xGESDD) =10:
- ieee NaN arithmetic can be trusted not to trap
=11: infinity arithmetic can be trusted not to
- trap
- NAME (input) CHARACTER*(*)
- The name of the calling subroutine, in either up
- per case or lower case.
- OPTS (input) CHARACTER*(*)
- The character options to the subroutine NAME, con
- catenated into a single character string. For example, UPLO =
- 'U', TRANS = 'T', and DIAG = 'N' for a triangular routine would
- be specified as OPTS = 'UTN'.
- N1 (input) INTEGER
- N2 (input) INTEGER N3 (input) INTEGER N4
- (input) INTEGER Problem dimensions for the subroutine NAME; these
- may not all be required.
- >= 0: the value of the parameter specified by IS
- PEC < 0: if ILAENV = -k, the k-th argument had an illegal value.
FURTHER DETAILS
- The following conventions have been used when calling
- ILAENV from the LAPACK routines:
1) OPTS is a concatenation of all of the character op
- tions to
- subroutine NAME, in the same order that they appear in
- the
argument list for NAME, even if they are not used in
- determining
the value of the parameter specified by ISPEC.
- 2) The problem dimensions N1, N2, N3, N4 are specified in
- the order
- that they appear in the argument list for NAME. N1 is
- used
first, N2 second, and so on, and unused problem dimen
- sions are
passed a value of -1.
- 3) The parameter value returned by ILAENV is checked for
- validity in
- the calling subroutine. For example, ILAENV is used
- to retrieve
the optimal blocksize for STRTRI as follows:
- NB = ILAENV( 1, 'STRTRI', UPLO // DIAG, N, -1, -1, -1
- )
IF( NB.LE.1 ) NB = MAX( 1, N )
- LAPACK version 3.0 15 June 2000