LAPACK 3.12.0
LAPACK: Linear Algebra PACKage
Loading...
Searching...
No Matches

◆ ilaenv2stage()

integer function ilaenv2stage ( integer  ispec,
character*( * )  name,
character*( * )  opts,
integer  n1,
integer  n2,
integer  n3,
integer  n4 
)

ILAENV2STAGE

Download ILAENV2STAGE + dependencies [TGZ] [ZIP] [TXT]

Purpose:
 ILAENV2STAGE is called from the LAPACK routines to choose problem-dependent
 parameters for the local environment.  See ISPEC for a description of
 the parameters.
 It sets problem and machine dependent parameters useful for *_2STAGE and
 related subroutines.

 ILAENV2STAGE returns an INTEGER
 if ILAENV2STAGE >= 0: ILAENV2STAGE returns the value of the parameter
                       specified by ISPEC
 if ILAENV2STAGE < 0:  if ILAENV2STAGE = -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 for the 2-stage solvers. 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.
Parameters
[in]ISPEC
          ISPEC is INTEGER
          Specifies the parameter to be returned as the value of
          ILAENV2STAGE.
          = 1: the optimal blocksize nb for the reduction to BAND

          = 2: the optimal blocksize ib for the eigenvectors
               singular vectors update routine

          = 3: The length of the array that store the Housholder
               representation for the second stage
               Band to Tridiagonal or Bidiagonal

          = 4: The workspace needed for the routine in input.

          = 5: For future release.
[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.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Nick R. Papior
Further Details:
  The following conventions have been used when calling ILAENV2STAGE
 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 ILAENV2STAGE is checked for validity in
      the calling subroutine.

Definition at line 148 of file ilaenv2stage.f.

149*
150* -- LAPACK auxiliary routine --
151* -- LAPACK is a software package provided by Univ. of Tennessee, --
152* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
153* July 2017
154*
155* .. Scalar Arguments ..
156 CHARACTER*( * ) NAME, OPTS
157 INTEGER ISPEC, N1, N2, N3, N4
158* ..
159*
160* =====================================================================
161* ..
162* .. Local Scalars ..
163 INTEGER IISPEC
164* ..
165* .. External Functions ..
166 INTEGER IPARAM2STAGE
167 EXTERNAL iparam2stage
168* ..
169* .. Executable Statements ..
170*
171 GO TO ( 10, 10, 10, 10, 10 )ispec
172*
173* Invalid value for ISPEC
174*
175 ilaenv2stage = -1
176 RETURN
177*
178 10 CONTINUE
179*
180* 2stage eigenvalues and SVD or related subroutines.
181*
182 iispec = 16 + ispec
183 ilaenv2stage = iparam2stage( iispec, name, opts,
184 $ n1, n2, n3, n4 )
185 RETURN
186*
187* End of ILAENV2STAGE
188*
integer function ilaenv2stage(ispec, name, opts, n1, n2, n3, n4)
ILAENV2STAGE
integer function iparam2stage(ispec, name, opts, ni, nbi, ibi, nxi)
IPARAM2STAGE
Here is the call graph for this function:
Here is the caller graph for this function: