![]() |
LAPACK 3.12.1
LAPACK: Linear Algebra PACKage
|
| integer function ilaenv | ( | integer | ispec, |
| character*( * ) | name, | ||
| character*( * ) | opts, | ||
| integer | n1, | ||
| integer | n2, | ||
| integer | n3, | ||
| integer | n4 ) |
ILAENV
!> !> ILAENV returns problem-dependent parameters for the local !> environment. See ISPEC for a description of the parameters. !> !> In this version, the problem-dependent parameters are contained in !> the integer array IPARMS in the common block CLAENV and the value !> with index ISPEC is copied to ILAENV. This version of ILAENV is !> to be used in conjunction with XLAENV in TESTING and TIMING. !>
| [in] | ISPEC | !> ISPEC is INTEGER !> Specifies the parameter to be returned as the value 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 routine should be used. !> = 3: the crossover point (in a block routine, for N less !> than this value, an unblocked routine should be used) !> = 4: the number of shifts, used in the nonsymmetric !> eigenvalue 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 !> =10: ieee NaN arithmetic can be trusted not to trap !> =11: infinity arithmetic can be trusted not to trap !> 12 <= ISPEC <= 16: !> xHSEQR or one of its subroutines, !> see IPARMQ for detailed explanation !> !> Other specifications (up to 100) can be added later. !> |
| [in] | NAME | !> NAME is CHARACTER*(*) !> The name of the calling subroutine. !> |
| [in] | OPTS | !> OPTS is CHARACTER*(*) !> The character options to the subroutine NAME, concatenated !> into a single character string. For example, UPLO = 'U', !> TRANS = 'T', and DIAG = 'N' for a triangular routine would !> be specified as OPTS = 'UTN'. !> |
| [in] | N1 | !> N1 is INTEGER !> |
| [in] | N2 | !> N2 is INTEGER !> |
| [in] | N3 | !> N3 is INTEGER !> |
| [in] | N4 | !> N4 is INTEGER !> !> Problem dimensions for the subroutine NAME; these may not all !> be required. !> |
!> ILAENV is INTEGER !> >= 0: the value of the parameter specified by ISPEC !> < 0: if ILAENV = -k, the k-th argument had an illegal value. !>
!> !> The following conventions have been used when calling ILAENV from the !> LAPACK routines: !> 1) OPTS is a concatenation of all of the character options 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 dimensions 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 ) !>
Definition at line 151 of file ilaenv.f.