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 alasum(type, nout, nfail, nrun, nerrs)
ALASUM
subroutine alahd(iounit, path)
ALAHD
subroutine sgeqr2(m, n, a, lda, tau, work, info)
SGEQR2 computes the QR factorization of a general rectangular matrix using an unblocked algorithm.
subroutine slacpy(uplo, m, n, a, lda, b, ldb)
SLACPY copies all or part of one two-dimensional array to another.
subroutine slaset(uplo, m, n, alpha, beta, a, lda)
SLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values.
subroutine stzrzf(m, n, a, lda, tau, work, lwork, info)
STZRZF
subroutine schktz(dotype, nm, mval, nn, nval, thresh, tsterr, a, copya, s, tau, work, nout)
SCHKTZ
subroutine serrtz(path, nunit)
SERRTZ
subroutine slaord(job, n, x, incx)
SLAORD
subroutine slatms(m, n, dist, iseed, sym, d, mode, cond, dmax, kl, ku, pack, a, lda, work, info)
SLATMS