LAPACK 3.12.1
LAPACK: Linear Algebra PACKage
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
ilaenv2stage.f
Go to the documentation of this file.
1*> \brief \b ILAENV2STAGE
2*
3* =========== DOCUMENTATION ===========
4*
5* Online html documentation available at
6* http://www.netlib.org/lapack/explore-html/
7*
8*> Download ILAENV2STAGE + dependencies
9*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/ilaenv2stage.f">
10*> [TGZ]</a>
11*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/ilaenv2stage.f">
12*> [ZIP]</a>
13*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/ilaenv2stage.f">
14*> [TXT]</a>
15*
16* Definition:
17* ===========
18*
19* INTEGER FUNCTION ILAENV2STAGE( ISPEC, NAME, OPTS, N1, N2, N3, N4 )
20*
21* .. Scalar Arguments ..
22* CHARACTER*( * ) NAME, OPTS
23* INTEGER ISPEC, N1, N2, N3, N4
24* ..
25*
26*
27*> \par Purpose:
28* =============
29*>
30*> \verbatim
31*>
32*> ILAENV2STAGE is called from the LAPACK routines to choose problem-dependent
33*> parameters for the local environment. See ISPEC for a description of
34*> the parameters.
35*> It sets problem and machine dependent parameters useful for *_2STAGE and
36*> related subroutines.
37*>
38*> ILAENV2STAGE returns an INTEGER
39*> if ILAENV2STAGE >= 0: ILAENV2STAGE returns the value of the parameter
40*> specified by ISPEC
41*> if ILAENV2STAGE < 0: if ILAENV2STAGE = -k, the k-th argument had an
42*> illegal value.
43*>
44*> This version provides a set of parameters which should give good,
45*> but not optimal, performance on many of the currently available
46*> computers for the 2-stage solvers. Users are encouraged to modify this
47*> subroutine to set the tuning parameters for their particular machine using
48*> the option and problem size information in the arguments.
49*>
50*> This routine will not function correctly if it is converted to all
51*> lower case. Converting it to all upper case is allowed.
52*> \endverbatim
53*
54* Arguments:
55* ==========
56*
57*> \param[in] ISPEC
58*> \verbatim
59*> ISPEC is INTEGER
60*> Specifies the parameter to be returned as the value of
61*> ILAENV2STAGE.
62*> = 1: the optimal blocksize nb for the reduction to BAND
63*>
64*> = 2: the optimal blocksize ib for the eigenvectors
65*> singular vectors update routine
66*>
67*> = 3: The length of the array that store the Housholder
68*> representation for the second stage
69*> Band to Tridiagonal or Bidiagonal
70*>
71*> = 4: The workspace needed for the routine in input.
72*>
73*> = 5: For future release.
74*> \endverbatim
75*>
76*> \param[in] NAME
77*> \verbatim
78*> NAME is CHARACTER*(*)
79*> The name of the calling subroutine, in either upper case or
80*> lower case.
81*> \endverbatim
82*>
83*> \param[in] OPTS
84*> \verbatim
85*> OPTS is CHARACTER*(*)
86*> The character options to the subroutine NAME, concatenated
87*> into a single character string. For example, UPLO = 'U',
88*> TRANS = 'T', and DIAG = 'N' for a triangular routine would
89*> be specified as OPTS = 'UTN'.
90*> \endverbatim
91*>
92*> \param[in] N1
93*> \verbatim
94*> N1 is INTEGER
95*> \endverbatim
96*>
97*> \param[in] N2
98*> \verbatim
99*> N2 is INTEGER
100*> \endverbatim
101*>
102*> \param[in] N3
103*> \verbatim
104*> N3 is INTEGER
105*> \endverbatim
106*>
107*> \param[in] N4
108*> \verbatim
109*> N4 is INTEGER
110*> Problem dimensions for the subroutine NAME; these may not all
111*> be required.
112*> \endverbatim
113*
114* Authors:
115* ========
116*
117*> \author Univ. of Tennessee
118*> \author Univ. of California Berkeley
119*> \author Univ. of Colorado Denver
120*> \author NAG Ltd.
121*> \author Nick R. Papior
122*
123*> \ingroup ilaenv2stage
124*
125*> \par Further Details:
126* =====================
127*>
128*> \verbatim
129*>
130*> The following conventions have been used when calling ILAENV2STAGE
131*> from the LAPACK routines:
132*> 1) OPTS is a concatenation of all of the character options to
133*> subroutine NAME, in the same order that they appear in the
134*> argument list for NAME, even if they are not used in determining
135*> the value of the parameter specified by ISPEC.
136*> 2) The problem dimensions N1, N2, N3, N4 are specified in the order
137*> that they appear in the argument list for NAME. N1 is used
138*> first, N2 second, and so on, and unused problem dimensions are
139*> passed a value of -1.
140*> 3) The parameter value returned by ILAENV2STAGE is checked for validity in
141*> the calling subroutine.
142*>
143*> \endverbatim
144*>
145* =====================================================================
146 INTEGER FUNCTION ilaenv2stage( ISPEC, NAME, OPTS, N1, N2, N3,
147 $ N4 )
148*
149* -- LAPACK auxiliary routine --
150* -- LAPACK is a software package provided by Univ. of Tennessee, --
151* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
152* July 2017
153*
154* .. Scalar Arguments ..
155 CHARACTER*( * ) name, opts
156 INTEGER ispec, n1, n2, n3, n4
157* ..
158*
159* =====================================================================
160* ..
161* .. Local Scalars ..
162 INTEGER iispec
163* ..
164* .. External Functions ..
165 INTEGER iparam2stage
166 EXTERNAL iparam2stage
167* ..
168* .. Executable Statements ..
169*
170 GO TO ( 10, 10, 10, 10, 10 )ispec
171*
172* Invalid value for ISPEC
173*
174 ilaenv2stage = -1
175 RETURN
176*
177 10 CONTINUE
178*
179* 2stage eigenvalues and SVD or related subroutines.
180*
181 iispec = 16 + ispec
182 ilaenv2stage = iparam2stage( iispec, name, opts,
183 $ n1, n2, n3, n4 )
184 RETURN
185*
186* End of ILAENV2STAGE
187*
188 END
integer function ilaenv2stage(ispec, name, opts, n1, n2, n3, n4)
ILAENV2STAGE
integer function iparam2stage(ispec, name, opts, ni, nbi, ibi, nxi)
IPARAM2STAGE