 LAPACK  3.10.0 LAPACK: Linear Algebra PACKage

## ◆ slatb5()

 subroutine slatb5 ( character*3 PATH, integer IMAT, integer N, character TYPE, integer KL, integer KU, real ANORM, integer MODE, real CNDNUM, character DIST )

SLATB5

Purpose:
``` SLATB5 sets parameters for the matrix generator based on the type
of matrix to be generated.```
Parameters
 [in] PATH ``` PATH is CHARACTER*3 The LAPACK path name.``` [in] IMAT ``` IMAT is INTEGER An integer key describing which matrix to generate for this path.``` [in] N ``` N is INTEGER The number of rows and columns in the matrix to be generated.``` [out] TYPE ``` TYPE is CHARACTER*1 The type of the matrix to be generated: = 'S': symmetric matrix = 'P': symmetric positive (semi)definite matrix = 'N': nonsymmetric matrix``` [out] KL ``` KL is INTEGER The lower band width of the matrix to be generated.``` [out] KU ``` KU is INTEGER The upper band width of the matrix to be generated.``` [out] ANORM ``` ANORM is REAL The desired norm of the matrix to be generated. The diagonal matrix of singular values or eigenvalues is scaled by this value.``` [out] MODE ``` MODE is INTEGER A key indicating how to choose the vector of eigenvalues.``` [out] CNDNUM ``` CNDNUM is REAL The desired condition number.``` [out] DIST ``` DIST is CHARACTER*1 The type of distribution to be used by the random number generator.```

Definition at line 112 of file slatb5.f.

114 *
115 * -- LAPACK test routine --
116 * -- LAPACK is a software package provided by Univ. of Tennessee, --
117 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
118 *
119 * .. Scalar Arguments ..
120  REAL ANORM, CNDNUM
121  INTEGER IMAT, KL, KU, MODE, N
122  CHARACTER DIST, TYPE
123  CHARACTER*3 PATH
124 * ..
125 *
126 * =====================================================================
127 *
128 * .. Parameters ..
129  REAL SHRINK, TENTH
130  parameter( shrink = 0.25e0, tenth = 0.1e+0 )
131  REAL ONE
132  parameter( one = 1.0e+0 )
133  REAL TWO
134  parameter( two = 2.0e+0 )
135 * ..
136 * .. Local Scalars ..
138  LOGICAL FIRST
139  CHARACTER*2 C2
140 * ..
141 * .. External Functions ..
142  REAL SLAMCH
143  EXTERNAL slamch
144 * ..
145 * .. Intrinsic Functions ..
146  INTRINSIC max, sqrt
147 * ..
148 * .. External Subroutines ..
150 * ..
151 * .. Save statement ..
153 * ..
154 * .. Data statements ..
155  DATA first / .true. /
156 * ..
157 * .. Executable Statements ..
158 *
159 * Set some constants for use in the subroutine.
160 *
161  IF( first ) THEN
162  first = .false.
163  eps = slamch( 'Precision' )
164  badc2 = tenth / eps
166  small = slamch( 'Safe minimum' )
167  large = one / small
168 *
169 * If it looks like we're on a Cray, take the square root of
170 * SMALL and LARGE to avoid overflow and underflow problems.
171 *
172  CALL slabad( small, large )
173  small = shrink*( small / eps )
174  large = one / small
175  END IF
176 *
177  c2 = path( 2: 3 )
178 *
179 * Set some parameters
180 *
181  dist = 'S'
182  mode = 3
183 *
184 * Set TYPE, the type of matrix to be generated.
185 *
186  TYPE = c2( 1: 1 )
187 *
188 * Set the lower and upper bandwidths.
189 *
190  IF( imat.EQ.1 ) THEN
191  kl = 0
192  ELSE
193  kl = max( n-1, 0 )
194  END IF
195  ku = kl
196 *
197 * Set the condition number and norm.etc
198 *
199  IF( imat.EQ.3 ) THEN
200  cndnum = 1.0e4
201  mode = 2
202  ELSE IF( imat.EQ.4 ) THEN
203  cndnum = 1.0e4
204  mode = 1
205  ELSE IF( imat.EQ.5 ) THEN
206  cndnum = 1.0e4
207  mode = 3
208  ELSE IF( imat.EQ.6 ) THEN
210  ELSE IF( imat.EQ.7 ) THEN
212  ELSE
213  cndnum = two
214  END IF
215 *
216  IF( imat.EQ.8 ) THEN
217  anorm = small
218  ELSE IF( imat.EQ.9 ) THEN
219  anorm = large
220  ELSE
221  anorm = one
222  END IF
223 *
224  IF( n.LE.1 )
225  \$ cndnum = one
226 *
227  RETURN
228 *
229 * End of SLATB5
230 *