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 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  con­
       verted to all lower case.  Converting it to all upper case
       is allowed.


ARGUMENTS

       ISPEC   (input) 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 non­
               symmetric eigenvalue routines  =  5:  the  minimum
               column  dimension for blocking to be used; rectan­
               gular 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

               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
               upper 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 subrou­
               tine NAME; these may not all be required.

               >= 0: the value  of  the  parameter  specified  by
               ISPEC  < 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
       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 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 )


Man(1) output converted with man2html