116 SUBROUTINE sdrvrf3( NOUT, NN, NVAL, THRESH, A, LDA, ARF, B1, B2,
117 + S_WORK_SLANGE, S_WORK_SGEQRF, TAU )
129 REAL A( LDA, * ), ARF( * ), B1( LDA, * ),
131 + s_work_slange( * ), tau( * )
138 parameter( zero = ( 0.0e+0, 0.0e+0 ) ,
139 + one = ( 1.0e+0, 0.0e+0 ) )
141 parameter( ntests = 1 )
145INTEGER I, IFORM, IIM, IIN, INFO, IUPLO, J, M, N, NA,
146 + nfail, nrun, iside, idiag, ialpha, itrans
150 CHARACTER UPLOS( 2 ), FORMS( 2 ), TRANSS( 2 ),
152 INTEGER ISEED( 4 ), ISEEDY( 4 )
153 REAL RESULT( NTESTS )
156 REAL SLAMCH, SLANGE, SLARND
157 EXTERNAL slamch, slange, slarnd
169 COMMON / srnamc / srnamt
172 DATA iseedy / 1988, 1989, 1990, 1991 /
173 DATA uplos /
'U',
'L' /
174 DATA forms /
'N',
'T' /
175 DATA sides /
'L',
'R' /
176 DATA transs /
'N',
'T' /
177 DATA diags /
'N',
'U' /
187 iseed( i ) = iseedy( i )
189 eps = slamch(
'Precision' )
201 cform = forms( iform )
205 uplo = uplos( iuplo )
209 side = sides( iside )
213 trans = transs( itrans )
217 diag = diags( idiag )
221 IF ( ialpha.EQ. 1)
THEN
223 ELSE IF ( ialpha.EQ. 2)
THEN
226 alpha = slarnd( 2, iseed )
236 IF ( iside.EQ.1 )
THEN
262 a( i, j) = slarnd( 2, iseed )
266 IF ( iuplo.EQ.1 )
THEN
272 CALL sgeqrf( na, na, a, lda, tau,
273 + s_work_sgeqrf, lda,
281 CALL sgelqf( na, na, a, lda, tau,
282 + s_work_sgeqrf, lda,
289 CALL strttf( cform, uplo, na, a, lda, arf,
297 b1( i, j) = slarnd( 2, iseed )
298 b2( i, j) = b1( i, j)
306 CALL strsm( side, uplo, trans, diag, m, n,
307 + alpha, a, lda, b1, lda )
313 CALL stfsm( cform, side, uplo, trans,
314 + diag, m, n, alpha, arf, b2,
321 b1( i, j) = b2( i, j ) - b1( i, j )
325 result(1) = slange(
'I', m, n, b1, lda,
328 result(1) = result(1) / sqrt( eps )
331 IF( result(1).GE.thresh )
THEN
332 IF( nfail.EQ.0 )
THEN
334 WRITE( nout, fmt = 9999 )
336 WRITE( nout, fmt = 9997 )
'STFSM',
337 + cform, side, uplo, trans, diag, m,
353 IF ( nfail.EQ.0 )
THEN
354 WRITE( nout, fmt = 9996 )
'STFSM', nrun
356 WRITE( nout, fmt = 9995 )
'STFSM', nfail, nrun
359 9999
FORMAT( 1x,
' *** Error(s) or Failure(s) while testing STFSM
361 9997
FORMAT( 1x,
' Failure in ',a5,
', CFORM=''',a1,
''',',
362 +
' SIDE=''',a1,'
'',
',' uplo=
''',A1,''',
',' trans=
''',A1,''',
',
363 + ' diag=
''',A1,''',
',' m=
',I3,', n =
', I3,', test=
',G12.5)
364 9996 FORMAT( 1X, 'all tests
for ',A5,' auxiliary routine passed
the ',
365 + 'threshold(
',I5,' tests run)
')
366 9995 FORMAT( 1X, A6, ' auxiliary routine:
',I5,' out of
',I5,
367 + ' tests failed to pass
the threshold
')
subroutine strttf(transr, uplo, n, a, lda, arf, info)
STRTTF copies a triangular matrix from the standard full format (TR) to the rectangular full packed f...
subroutine stfsm(transr, side, uplo, trans, diag, m, n, alpha, a, b, ldb)
STFSM solves a matrix equation (one operand is a triangular matrix in RFP format).
subroutine strsm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
STRSM
subroutine sdrvrf3(nout, nn, nval, thresh, a, lda, arf, b1, b2, s_work_slange, s_work_sgeqrf, tau)
SDRVRF3