![]() |
LAPACK 3.12.0
LAPACK: Linear Algebra PACKage
|
| integer function ilaenv | ( | integer | ispec, |
| character*( * ) | name, | ||
| character*( * ) | opts, | ||
| integer | n1, | ||
| integer | n2, | ||
| integer | n3, | ||
| integer | n4 ) |
ILAENV
Download ILAENV + dependencies [TGZ] [ZIP] [TXT]
!> !> ILAENV is called from the LAPACK routines to choose problem-dependent !> parameters for the local environment. See ISPEC for a description of !> the parameters. !> !> ILAENV returns an INTEGER !> if ILAENV >= 0: ILAENV returns the value of the parameter specified by ISPEC !> if ILAENV < 0: if ILAENV = -k, the k-th argument had an illegal value. !> !> 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 subroutine 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 converted to all !> lower case. Converting it to all upper case is allowed. !>
| [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 (DEPRECATED) !> = 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 method !> for nonsymmetric eigenvalue problems (DEPRECATED) !> = 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 infinity and NaN arithmetic can be trusted not to trap !> =11: infinity arithmetic can be trusted not to trap !> 12 <= ISPEC <= 17: !> xHSEQR or related subroutines, !> see IPARMQ for detailed explanation !> |
| [in] | NAME | !> NAME is CHARACTER*(*) !> The name of the calling subroutine, in either upper case or !> lower case. !> |
| [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. !> |
!> !> 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 ) !>