118 SUBROUTINE ddrvrf4( NOUT, NN, NVAL, THRESH, C1, C2, LDC, CRF, A,
119 + lda, d_work_dlange )
127 INTEGER lda, ldc, nn, nout
128 DOUBLE PRECISION thresh
132 DOUBLE PRECISION a( lda, * ), c1( ldc, * ), c2( ldc, *),
133 + crf( * ), d_work_dlange( * )
139 DOUBLE PRECISION zero, one
140 parameter( zero = 0.0d+0, one = 1.0d+0 )
142 parameter( ntests = 1 )
145 CHARACTER uplo, cform, trans
146 INTEGER i, iform, iik, iin, info, iuplo, j, k, n,
147 + nfail, nrun, ialpha, itrans
148 DOUBLE PRECISION alpha, beta, eps, norma, normc
151 CHARACTER uplos( 2 ), forms( 2 ), transs( 2 )
152 INTEGER iseed( 4 ), iseedy( 4 )
153 DOUBLE PRECISION result( ntests )
169 common / srnamc / srnamt
172 DATA iseedy / 1988, 1989, 1990, 1991 /
173 DATA uplos /
'U',
'L' /
174 DATA forms /
'N',
'T' /
175 DATA transs /
'N',
'T' /
185 iseed( i ) = iseedy( i )
187 eps =
dlamch(
'Precision' )
199 cform = forms( iform )
203 uplo = uplos( iuplo )
207 trans = transs( itrans )
211 IF ( ialpha.EQ. 1)
THEN
214 ELSE IF ( ialpha.EQ. 2)
THEN
217 ELSE IF ( ialpha.EQ. 3)
THEN
221 alpha =
dlarnd( 2, iseed )
232 IF ( itrans.EQ.1 )
THEN
238 a( i, j) =
dlarnd( 2, iseed )
242 norma =
dlange(
'I', n, k, a, lda,
252 a( i, j) =
dlarnd( 2, iseed )
256 norma =
dlange(
'I', k, n, a, lda,
268 c1( i, j) =
dlarnd( 2, iseed )
276 normc =
dlange(
'I', n, n, c1, ldc,
280 CALL
dtrttf( cform, uplo, n, c1, ldc, crf,
286 CALL
dsyrk( uplo, trans, n, k, alpha, a, lda,
292 CALL
dsfrk( cform, uplo, trans, n, k, alpha, a,
298 CALL
dtfttr( cform, uplo, n, crf, c2, ldc,
305 c1(i,j) = c1(i,j)-c2(i,j)
314 result(1) =
dlange(
'I', n, n, c1, ldc,
316 result(1) = result(1)
317 + / max( abs( alpha ) * norma
318 + + abs( beta ) , one )
319 + / max( n , 1 ) / eps
321 IF( result(1).GE.thresh )
THEN
322 IF( nfail.EQ.0 )
THEN
324 WRITE( nout, fmt = 9999 )
326 WRITE( nout, fmt = 9997 )
'DSFRK',
327 + cform, uplo, trans, n, k, result(1)
340 IF ( nfail.EQ.0 )
THEN
341 WRITE( nout, fmt = 9996 )
'DSFRK', nrun
343 WRITE( nout, fmt = 9995 )
'DSFRK', nfail, nrun
347 ' *** Error(s) or Failure(s) while testing DSFRK + ***')
348 9997 format( 1x,
' Failure in ',a5,
', CFORM=''',a1,
''',',
349 +
' UPLO=''',a1,
''',',
' TRANS=''',a1,
''',',
' N=',i3,
', K =', i3,
351 9996 format( 1x,
'All tests for ',a5,
' auxiliary routine passed the ',
352 +
'threshold ( ',i5,
' tests run)')
353 9995 format( 1x, a6,
' auxiliary routine: ',i5,
' out of ',i5,
354 +
' tests failed to pass the threshold')