93 SUBROUTINE ddrvrf1( NOUT, NN, NVAL, THRESH, A, LDA, ARF, WORK )
100 INTEGER LDA, NN, NOUT
101 DOUBLE PRECISION THRESH
105 DOUBLE PRECISION A( LDA, * ), ARF( * ), WORK( * )
112 parameter( one = 1.0d+0 )
114 parameter( ntests = 1 )
117 CHARACTER UPLO, CFORM, NORM
118 INTEGER I, IFORM, IIN, IIT, INFO, INORM, IUPLO, J, N,
120 DOUBLE PRECISION EPS, LARGE, NORMA, NORMARF, SMALL
123 CHARACTER UPLOS( 2 ), FORMS( 2 ), NORMS( 4 )
124 INTEGER ISEED( 4 ), ISEEDY( 4 )
125 DOUBLE PRECISION RESULT( NTESTS )
128 DOUBLE PRECISION DLAMCH, DLANSY, DLANSF, DLARND
129 EXTERNAL dlamch, dlansy, dlansf, dlarnd
138 COMMON / srnamc / srnamt
141 DATA iseedy / 1988, 1989, 1990, 1991 /
142 DATA uplos /
'U',
'L' /
143 DATA forms /
'N',
'T' /
144 DATA norms /
'M',
'1',
'I',
'F' /
155 iseed( i ) = iseedy( i )
158 eps = dlamch(
'Precision' )
159 small = dlamch(
'Safe minimum' )
161 small = small * lda * lda
162 large = large / lda / lda
178 a( i, j) = dlarnd( 2, iseed )
185 a( i, j) = a( i, j ) * large
193 a( i, j) = a( i, j) * small
202 uplo = uplos( iuplo )
208 cform = forms( iform )
211 CALL dtrttf( cform, uplo, n, a, lda, arf, info )
216 IF( nfail.EQ.0 .AND. nerrs.EQ.0 )
THEN
218 WRITE( nout, fmt = 9999 )
220 WRITE( nout, fmt = 9998 ) srnamt, uplo, cform, n
229 norm = norms( inorm )
230 normarf = dlansf( norm, cform, uplo, n, arf, work )
231 norma = dlansy( norm, uplo, n, a, lda, work )
233 result(1) = ( norma - normarf ) / norma / eps
236 IF( result(1).GE.thresh )
THEN
237 IF( nfail.EQ.0 .AND. nerrs.EQ.0 )
THEN
239 WRITE( nout, fmt = 9999 )
241 WRITE( nout, fmt = 9997 )
'DLANSF',
242 + n, iit, uplo, cform, norm, result(1)
253 IF ( nfail.EQ.0 )
THEN
254 WRITE( nout, fmt = 9996 )
'DLANSF', nrun
256 WRITE( nout, fmt = 9995 )
'DLANSF', nfail, nrun
258 IF ( nerrs.NE.0 )
THEN
259 WRITE( nout, fmt = 9994 ) nerrs,
'DLANSF'
262 9999
FORMAT( 1x,
' *** Error(s) or Failure(s) while testing DLANSF
264 9998
FORMAT( 1x,
' Error in ',a6,
' with UPLO=''',a1,
''', FORM=''',
266 9997
FORMAT( 1x,
' Failure in ',a6,
' N=',i5,
' TYPE=',i5,
' UPLO=''',
267 + a1,
''', FORM =''',a1,
''', NORM=''',a1,
''', test=',g12.5)
268 9996
FORMAT( 1x,
'All tests for ',a6,
' auxiliary routine passed the ',
269 +
'threshold ( ',i5,
' tests run)')
270 9995
FORMAT( 1x, a6,
' auxiliary routine: ',i5,
' out of ',i5,
271 +
' tests failed to pass the threshold')
272 9994
FORMAT( 26x, i5,
' error message recorded (',a6,
')')
subroutine ddrvrf1(nout, nn, nval, thresh, a, lda, arf, work)
DDRVRF1
subroutine dtrttf(transr, uplo, n, a, lda, arf, info)
DTRTTF copies a triangular matrix from the standard full format (TR) to the rectangular full packed f...