Previous: lapack-d Up: ../lapack.html Next: lapack-l
NAME
ICMAX1 - find the index of the element whose real part has
maximum absolute value
SYNOPSIS
INTEGER FUNCTION ICMAX1( N, CX, INCX )
INTEGER INCX, N
COMPLEX CX( * )
PURPOSE
ICMAX1 finds the index of the element whose real part has
maximum absolute value.
Based on ICAMAX from Level 1 BLAS.
The change is to use the 'genuine' absolute value.
Contributed by Nick Higham for use with CLACON.
ARGUMENTS
N (input) INTEGER
The number of elements in the vector CX.
CX (input) COMPLEX array, dimension (N)
The vector whose elements will be summed.
INCX (input) INTEGER
The spacing between successive values of CX. INCX
>= 1.
NEXT LINE IS THE ONLY MODIFICATION.
CODE FOR INCREMENT NOT EQUAL TO 1
CODE FOR INCREMENT EQUAL TO 1
End of ICMAX1
NAME
ILAENV - i called from the LAPACK routines to choose
problem-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
problem-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 converted
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 cross-
over 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 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 cross-
over 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.
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 exam-
ple, 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 ille-
gal 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 )