112 SUBROUTINE zdrvrf4( NOUT, NN, NVAL, THRESH, C1, C2, LDC, CRF, A,
113 + LDA, D_WORK_ZLANGE )
120 INTEGER LDA, LDC, NN, NOUT
121 DOUBLE PRECISION THRESH
125 DOUBLE PRECISION D_WORK_ZLANGE( * )
126 COMPLEX*16 A( LDA, * ), C1( LDC, * ), C2( LDC, *),
133 DOUBLE PRECISION ZERO, ONE
134 parameter( zero = 0.0d+0, one = 1.0d+0 )
136 parameter( ntests = 1 )
139 CHARACTER UPLO, CFORM, TRANS
140 INTEGER I, IFORM, IIK, IIN, INFO, IUPLO, J, K, N,
141 + nfail, nrun, ialpha, itrans
142 DOUBLE PRECISION ALPHA, BETA, EPS, NORMA, NORMC
145 CHARACTER UPLOS( 2 ), FORMS( 2 ), TRANSS( 2 )
146 INTEGER ISEED( 4 ), ISEEDY( 4 )
147 DOUBLE PRECISION RESULT( NTESTS )
150 DOUBLE PRECISION DLAMCH, DLARND, ZLANGE
152 EXTERNAL dlamch, dlarnd, zlange, zlarnd
164 COMMON / srnamc / srnamt
167 DATA iseedy / 1988, 1989, 1990, 1991 /
168 DATA uplos /
'U',
'L' /
169 DATA forms /
'N',
'C' /
170 DATA transs /
'N',
'C' /
180 iseed( i ) = iseedy( i )
182 eps = dlamch(
'Precision' )
194 cform = forms( iform )
198 uplo = uplos( iuplo )
202 trans = transs( itrans )
206 IF ( ialpha.EQ. 1)
THEN
209 ELSE IF ( ialpha.EQ. 2)
THEN
212 ELSE IF ( ialpha.EQ. 3)
THEN
216 alpha = dlarnd( 2, iseed )
217 beta = dlarnd( 2, iseed )
227 IF ( itrans.EQ.1 )
THEN
233 a( i, j) = zlarnd( 4, iseed )
237 norma = zlange(
'I', n, k, a, lda,
246 a( i, j) = zlarnd( 4, iseed )
250 norma = zlange(
'I', k, n, a, lda,
263 c1( i, j) = zlarnd( 4, iseed )
271 normc = zlange(
'I', n, n, c1, ldc,
275 CALL ztrttf( cform, uplo, n, c1, ldc, crf,
281 CALL zherk( uplo, trans, n, k, alpha, a, lda,
287 CALL zhfrk( cform, uplo, trans, n, k, alpha, a,
293 CALL ztfttr( cform, uplo, n, crf, c2, ldc,
300 c1(i,j) = c1(i,j)-c2(i,j)
309 result(1) = zlange(
'I', n, n, c1, ldc,
311 result(1) = result(1)
312 + / max( dabs( alpha ) * norma * norma
313 + + dabs( beta ) * normc, one )
314 + / max( n , 1 ) / eps
316 IF( result(1).GE.thresh )
THEN
317 IF( nfail.EQ.0 )
THEN
319 WRITE( nout, fmt = 9999 )
321 WRITE( nout, fmt = 9997 )
'ZHFRK',
322 + cform, uplo, trans, n, k, result(1)
335 IF ( nfail.EQ.0 )
THEN
336 WRITE( nout, fmt = 9996 )
'ZHFRK', nrun
338 WRITE( nout, fmt = 9995 )
'ZHFRK', nfail, nrun
341 9999
FORMAT( 1x,
' *** Error(s) or Failure(s) while testing ZHFRK
343 9997
FORMAT( 1x,
' Failure in ',a5,
', CFORM=''',a1,
''',',
344 +
' UPLO=''',a1,
''',',
' TRANS=''',a1,
''',',
' N=',i3,
', K =', i3,
346 9996
FORMAT( 1x,
'All tests for ',a5,
' auxiliary routine passed the ',
347 +
'threshold ( ',i6,
' tests run)')
348 9995
FORMAT( 1x, a6,
' auxiliary routine: ',i6,
' out of ',i6,
349 +
' tests failed to pass the threshold')
subroutine zherk(uplo, trans, n, k, alpha, a, lda, beta, c, ldc)
ZHERK
subroutine zhfrk(transr, uplo, trans, n, k, alpha, a, lda, beta, c)
ZHFRK performs a Hermitian rank-k operation for matrix in RFP format.
subroutine ztfttr(transr, uplo, n, arf, a, lda, info)
ZTFTTR copies a triangular matrix from the rectangular full packed format (TF) to the standard full f...
subroutine ztrttf(transr, uplo, n, a, lda, arf, info)
ZTRTTF copies a triangular matrix from the standard full format (TR) to the rectangular full packed f...
subroutine zdrvrf4(nout, nn, nval, thresh, c1, c2, ldc, crf, a, lda, d_work_zlange)
ZDRVRF4