135 SUBROUTINE zchktz( DOTYPE, NM, MVAL, NN, NVAL, THRESH, TSTERR, A,
136 $ COPYA, S, TAU, WORK, RWORK, NOUT )
145 DOUBLE PRECISION THRESH
149 INTEGER MVAL( * ), NVAL( * )
150 DOUBLE PRECISION S( * ), RWORK( * )
151 COMPLEX*16 A( * ), COPYA( * ), TAU( * ), WORK( * )
158 parameter( ntypes = 3 )
160 parameter( ntests = 3 )
161 DOUBLE PRECISION ONE, ZERO
162 parameter( one = 1.0d0, zero = 0.0d0 )
166 INTEGER I, IM, IMODE, IN, INFO, K, LDA, LWORK, M,
167 $ mnmin, mode, n, nerrs, nfail, nrun
171 INTEGER ISEED( 4 ), ISEEDY( 4 )
172 DOUBLE PRECISION RESULT( NTESTS )
175 DOUBLE PRECISION DLAMCH, ZQRT12, ZRZT01, ZRZT02
176 EXTERNAL dlamch, zqrt12, zrzt01, zrzt02
183 INTRINSIC dcmplx, max, min
188 INTEGER INFOT, IOUNIT
191 COMMON / infoc / infot, iounit, ok, lerr
192 COMMON / srnamc / srnamt
195 DATA iseedy / 1988, 1989, 1990, 1991 /
201 path( 1: 1 ) =
'Zomplex precision'
207 iseed( i ) = iseedy( i )
209 eps = dlamch(
'Epsilon' )
214 $
CALL zerrtz( path, nout )
230 lwork = max( 1, n*n+4*m+n )
233 DO 50 imode = 1, ntypes
234 IF( .NOT.dotype( imode ) )
250 CALL zlaset(
'Full', m, n, dcmplx( zero ),
251 $ dcmplx( zero ), a, lda )
256 CALL zlatms( m, n,
'Uniform', iseed,
257 $
'Nonsymmetric', s, imode,
258 $ one / eps, one, m, n,
'No packing', a,
260 CALL zgeqr2( m, n, a, lda, work, work( mnmin+1 ),
262 CALL zlaset(
'Lower', m-1, n, dcmplx( zero ),
263 $ dcmplx( zero ), a( 2 ), lda )
264 CALL dlaord(
'Decreasing', mnmin, s, 1 )
269 CALL zlacpy(
'All', m, n, a, lda, copya, lda )
275 CALL ztzrzf( m, n, a, lda, tau, work, lwork, info )
279 result( 1 ) = zqrt12( m, m, a, lda, s, work,
284 result( 2 ) = zrzt01( m, n, copya, a, lda, tau, work,
289 result( 3 ) = zrzt02( m, n, a, lda, tau, work, lwork )
295 IF( result( k ).GE.thresh )
THEN
296 IF( nfail.EQ.0 .AND. nerrs.EQ.0 )
297 $
CALL alahd( nout, path )
298 WRITE( nout, fmt = 9999 )m, n, imode, k,
311 CALL alasum( path, nout, nfail, nrun, nerrs )
313 9999
FORMAT(
' M =', i5,
', N =', i5,
', type ', i2,
', test ', i2,
314 $
', ratio =', g12.5 )
subroutine zchktz(dotype, nm, mval, nn, nval, thresh, tsterr, a, copya, s, tau, work, rwork, nout)
ZCHKTZ
subroutine zlatms(m, n, dist, iseed, sym, d, mode, cond, dmax, kl, ku, pack, a, lda, work, info)
ZLATMS