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

◆ 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.
!> 
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.

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 ..
137 REAL BADC1, BADC2, EPS, LARGE, SMALL
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* .. Save statement ..
149 SAVE eps, small, large, badc1, badc2, first
150* ..
151* .. Data statements ..
152 DATA first / .true. /
153* ..
154* .. Executable Statements ..
155*
156* Set some constants for use in the subroutine.
157*
158 IF( first ) THEN
159 first = .false.
160 eps = slamch( 'Precision' )
161 badc2 = tenth / eps
162 badc1 = sqrt( badc2 )
163 small = slamch( 'Safe minimum' )
164 large = one / small
165 small = shrink*( small / eps )
166 large = one / small
167 END IF
168*
169 c2 = path( 2: 3 )
170*
171* Set some parameters
172*
173 dist = 'S'
174 mode = 3
175*
176* Set TYPE, the type of matrix to be generated.
177*
178 TYPE = c2( 1: 1 )
179*
180* Set the lower and upper bandwidths.
181*
182 IF( imat.EQ.1 ) THEN
183 kl = 0
184 ELSE
185 kl = max( n-1, 0 )
186 END IF
187 ku = kl
188*
189* Set the condition number and norm.etc
190*
191 IF( imat.EQ.3 ) THEN
192 cndnum = 1.0e4
193 mode = 2
194 ELSE IF( imat.EQ.4 ) THEN
195 cndnum = 1.0e4
196 mode = 1
197 ELSE IF( imat.EQ.5 ) THEN
198 cndnum = 1.0e4
199 mode = 3
200 ELSE IF( imat.EQ.6 ) THEN
201 cndnum = badc1
202 ELSE IF( imat.EQ.7 ) THEN
203 cndnum = badc2
204 ELSE
205 cndnum = two
206 END IF
207*
208 IF( imat.EQ.8 ) THEN
209 anorm = small
210 ELSE IF( imat.EQ.9 ) THEN
211 anorm = large
212 ELSE
213 anorm = one
214 END IF
215*
216 IF( n.LE.1 )
217 $ cndnum = one
218*
219 RETURN
220*
221* End of SLATB5
222*
real function slamch(cmach)
SLAMCH
Definition slamch.f:68
Here is the caller graph for this function: