130 SUBROUTINE schktz( DOTYPE, NM, MVAL, NN, NVAL, THRESH, TSTERR, A,
131 $ COPYA, S, TAU, WORK, NOUT )
144 INTEGER MVAL( * ), NVAL( * )
145 REAL A( * ), COPYA( * ), S( * ),
146 $ tau( * ), work( * )
153 parameter( ntypes = 3 )
155 parameter( ntests = 3 )
157 parameter( one = 1.0e0, zero = 0.0e0 )
161 INTEGER I, IM, IMODE, IN, INFO, K, LDA, LWORK, M,
162 $ mnmin, mode, n, nerrs, nfail, nrun
166 INTEGER ISEED( 4 ), ISEEDY( 4 )
167 REAL RESULT( NTESTS )
170 REAL SLAMCH, SQRT12, SRZT01, SRZT02
171 EXTERNAL slamch, sqrt12, srzt01, srzt02
183 INTEGER INFOT, IOUNIT
186 COMMON / infoc / infot, iounit, ok, lerr
187 COMMON / srnamc / srnamt
190 DATA iseedy / 1988, 1989, 1990, 1991 /
196 path( 1: 1 ) =
'Single precision'
202 iseed( i ) = iseedy( i )
204 eps = slamch(
'Epsilon' )
209 $
CALL serrtz( path, nout )
225 lwork = max( 1, n*n+4*m+n, m*n+2*mnmin+4*n )
228 DO 50 imode = 1, ntypes
229 IF( .NOT.dotype( imode ) )
245 CALL slaset(
'Full', m, n, zero, zero, a, lda )
250 CALL slatms( m, n,
'Uniform', iseed,
251 $
'Nonsymmetric', s, imode,
252 $ one / eps, one, m, n,
'No packing', a,
254 CALL sgeqr2( m, n, a, lda, work, work( mnmin+1 ),
256 CALL slaset(
'Lower', m-1, n, zero, zero, a( 2 ),
258 CALL slaord(
'Decreasing', mnmin, s, 1 )
263 CALL slacpy(
'All', m, n, a, lda, copya, lda )
269 CALL stzrzf( m, n, a, lda, tau, work, lwork, info )
273 result( 1 ) = sqrt12( m, m, a, lda, s, work,
278 result( 2 ) = srzt01( m, n, copya, a, lda, tau, work,
283 result( 3 ) = srzt02( m, n, a, lda, tau, work, lwork )
289 IF( result( k ).GE.thresh )
THEN
290 IF( nfail.EQ.0 .AND. nerrs.EQ.0 )
291 $
CALL alahd( nout, path )
292 WRITE( nout, fmt = 9999 )m, n, imode, k,
305 CALL alasum( path, nout, nfail, nrun, nerrs )
307 9999
FORMAT(
' M =', i5,
', N =', i5,
', type ', i2,
', test ', i2,
308 $
', ratio =', g12.5 )
subroutine schktz(dotype, nm, mval, nn, nval, thresh, tsterr, a, copya, s, tau, work, nout)
SCHKTZ
subroutine slatms(m, n, dist, iseed, sym, d, mode, cond, dmax, kl, ku, pack, a, lda, work, info)
SLATMS