198 SUBROUTINE zchkrq( DOTYPE, NM, MVAL, NN, NVAL, NNB, NBVAL, NXVAL,
199 $ NRHS, THRESH, TSTERR, NMAX, A, AF, AQ, AR, AC,
200 $ B, X, XACT, TAU, WORK, RWORK, IWORK, NOUT )
208 INTEGER NM, NMAX, NN, NNB, NOUT, NRHS
209 DOUBLE PRECISION THRESH
213 INTEGER IWORK( * ), MVAL( * ), NBVAL( * ), NVAL( * ),
215 DOUBLE PRECISION RWORK( * )
216 COMPLEX*16 A( * ), AC( * ), ( * ), AQ( * ), AR( * ),
217 $ b( * ), tau( * ), work( * ), x( * ), xact( * )
224 PARAMETER ( NTESTS = 7 )
226 parameter( ntypes = 8 )
227 DOUBLE PRECISION ZERO
228 parameter( zero = 0.0d0 )
233 INTEGER I, IK, IM, , IN, INB, INFO, K, KL, KU, LDA,
234 $ lwork, m, minmn, mode, n, nb, nerrs, nfail, nk,
236 DOUBLE PRECISION ANORM, CNDNUM
239 INTEGER ISEED( 4 ), ISEEDY( 4 ), KVAL( 4 )
240 DOUBLE PRECISION RESULT( NTESTS )
256 COMMON / infoc / infot, nunit, ok, lerr
257 COMMON / srnamc / srnamt
260 DATA iseedy / 1988, 1989, 1990, 1991 /
266 path( 1: 1 ) =
'Zomplex precision'
272 iseed( i ) = iseedy( i )
278 $
CALL zerrrq( path, nout )
283 lwork = nmax*
max( nmax, nrhs )
295 DO 50 imat = 1, ntypes
299 IF( .NOT.dotype( imat ) )
305 CALL zlatb4( path, imat, m, n,
TYPE, kl, ku, anorm, mode,
309 CALL zlatms( m, n, dist, iseed,
TYPE, rwork, mode,
310 $ cndnum, anorm, kl, ku,
'No packing', a, lda,
316 CALL alaerh( path,
'ZLATMS', info, 0,
' ', m, n, -1,
317 $ -1, -1, imat, nfail, nerrs, nout )
328 kval( 4 ) = minmn / 2
329 IF( minmn.EQ.0 )
THEN
331 ELSE IF( minmn.EQ.1 )
THEN
333 ELSE IF( minmn.LE.3 )
THEN
359 CALL zrqt01( m, n, a, af, aq, ar, lda, tau,
360 $ work, lwork, rwork, result( 1 ) )
361 ELSE IF( m.LE.n )
THEN
366 CALL zrqt02( m, n, k, a, af, aq, ar, lda, tau,
367 $ work, lwork, rwork, result( 1 ) )
374 CALL zrqt03( m, n, k, af, ac, ar, aq, lda, tau,
375 $ work, lwork, rwork, result( 3 ) )
382 IF( k.EQ.m .AND. inb.EQ.1 )
THEN
388 CALL zlarhs( path,
'New',
'Full',
389 $
'No transpose', m, n, 0, 0,
390 $ nrhs, a, lda, xact, lda, b, lda,
393 CALL zlacpy(
'Full', m, nrhs, b, lda,
396 CALL zgerqs( m, n, nrhs, af, lda, tau, x,
397 $ lda, work, lwork, info )
402 $
CALL alaerh( path,
'ZGERQS', info, 0,
' ',
403 $ m, n, nrhs, -1, nb, imat,
404 $ nfail, nerrs, nout )
406 CALL zget02( 'no transpose
', M, N, NRHS, A,
407 $ LDA, X, LDA, B, LDA, RWORK,
417.GE.
IF( RESULT( I )THRESH ) THEN
418.EQ..AND..EQ.
IF( NFAIL0 NERRS0 )
419 $ CALL ALAHD( NOUT, PATH )
420 WRITE( NOUT, FMT = 9999 )M, N, K, NB, NX,
421 $ IMAT, I, RESULT( I )
434 CALL ALASUM( PATH, NOUT, NFAIL, NRUN, NERRS )
436 9999 FORMAT( ' m=
', I5, ', n=
', I5, ', k=
', I5, ', nb=
', I4, ', nx=
',
437 $ I5, ',
type ', I2, ', test(
', I2, ')=
', G12.5 )
subroutine zlarhs(path, xtype, uplo, trans, m, n, kl, ku, nrhs, a, lda, x, ldx, b, ldb, iseed, info)
ZLARHS
subroutine zchkrq(dotype, nm, mval, nn, nval, nnb, nbval, nxval, nrhs, thresh, tsterr, nmax, a, af, aq, ar, ac, b, x, xact, tau, work, rwork, iwork, nout)
ZCHKRQ
subroutine zlatms(m, n, dist, iseed, sym, d, mode, cond, dmax, kl, ku, pack, a, lda, work, info)
ZLATMS