132 SUBROUTINE schktz( DOTYPE, NM, MVAL, NN, NVAL, THRESH, TSTERR, A,
133 $ copya, s, tau, work, nout )
147 INTEGER MVAL( * ), NVAL( * )
148 REAL A( * ), COPYA( * ), S( * ),
149 $ tau( * ), work( * )
156 parameter ( ntypes = 3 )
158 parameter ( ntests = 3 )
160 parameter ( one = 1.0e0, zero = 0.0e0 )
164 INTEGER I, IM, IMODE, IN, INFO, K, LDA, LWORK, M,
165 $ mnmin, mode, n, nerrs, nfail, nrun
169 INTEGER ISEED( 4 ), ISEEDY( 4 )
170 REAL RESULT( ntests )
173 REAL SLAMCH, SQRT12, SRZT01, SRZT02
174 EXTERNAL slamch, sqrt12, srzt01, srzt02
186 INTEGER INFOT, IOUNIT
189 COMMON / infoc / infot, iounit, ok, lerr
190 COMMON / srnamc / srnamt
193 DATA iseedy / 1988, 1989, 1990, 1991 /
199 path( 1: 1 ) =
'Single precision'
205 iseed( i ) = iseedy( i )
207 eps = slamch(
'Epsilon' )
212 $
CALL serrtz( path, nout )
228 lwork = max( 1, n*n+4*m+n, m*n+2*mnmin+4*n )
231 DO 50 imode = 1, ntypes
232 IF( .NOT.dotype( imode ) )
248 CALL slaset(
'Full', m, n, zero, zero, a, lda )
253 CALL slatms( m, n,
'Uniform', iseed,
254 $
'Nonsymmetric', s, imode,
255 $ one / eps, one, m, n,
'No packing', a,
257 CALL sgeqr2( m, n, a, lda, work, work( mnmin+1 ),
259 CALL slaset(
'Lower', m-1, n, zero, zero, a( 2 ),
261 CALL slaord(
'Decreasing', mnmin, s, 1 )
266 CALL slacpy(
'All', m, n, a, lda, copya, lda )
272 CALL stzrzf( m, n, a, lda, tau, work, lwork, info )
276 result( 1 ) = sqrt12( m, m, a, lda, s, work,
281 result( 2 ) = srzt01( m, n, copya, a, lda, tau, work,
286 result( 3 ) = srzt02( m, n, a, lda, tau, work, lwork )
292 IF( result( k ).GE.thresh )
THEN
293 IF( nfail.EQ.0 .AND. nerrs.EQ.0 )
294 $
CALL alahd( nout, path )
295 WRITE( nout, fmt = 9999 )m, n, imode, k,
308 CALL alasum( path, nout, nfail, nrun, nerrs )
310 9999
FORMAT(
' M =', i5,
', N =', i5,
', type ', i2,
', test ', i2,
311 $
', ratio =', g12.5 )
subroutine alahd(IOUNIT, PATH)
ALAHD
subroutine stzrzf(M, N, A, LDA, TAU, WORK, LWORK, INFO)
STZRZF
subroutine slacpy(UPLO, M, N, A, LDA, B, LDB)
SLACPY copies all or part of one two-dimensional array to another.
subroutine slatms(M, N, DIST, ISEED, SYM, D, MODE, COND, DMAX, KL, KU, PACK, A, LDA, WORK, INFO)
SLATMS
subroutine sgeqr2(M, N, A, LDA, TAU, WORK, INFO)
SGEQR2 computes the QR factorization of a general rectangular matrix using an unblocked algorithm...
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 schktz(DOTYPE, NM, MVAL, NN, NVAL, THRESH, TSTERR, A, COPYA, S, TAU, WORK, NOUT)
SCHKTZ
subroutine slaord(JOB, N, X, INCX)
SLAORD
subroutine serrtz(PATH, NUNIT)
SERRTZ
subroutine alasum(TYPE, NOUT, NFAIL, NRUN, NERRS)
ALASUM