210 SUBROUTINE zckgqr( NM, MVAL, NP, PVAL, NN, NVAL, NMATS, ISEED,
211 $ THRESH, NMAX, A, AF, AQ, AR, TAUA, B, BF, BZ,
212 $ BT, BWK, TAUB, WORK, RWORK, NIN, NOUT, INFO )
220 INTEGER INFO, NIN, NM, NMATS, NMAX, NN, NOUT, NP
221 DOUBLE PRECISION THRESH
224 INTEGER ISEED( 4 ), MVAL( * ), NVAL( * ), PVAL( * )
225 DOUBLE PRECISION RWORK( * )
226 COMPLEX*16 A( * ), AF( * ), AQ( * ), AR( * ), B( * ),
227 $ bf( * ), bt( * ), bwk( * ), bz( * ), taua( * ),
228 $ taub( * ), work( * )
235 parameter( ntests = 7 )
237 parameter( ntypes = 8 )
241 CHARACTER DISTA, DISTB, TYPE
243 INTEGER I, IINFO, IM, IMAT, IN, IP, KLA, KLB, KUA, KUB,
244 $ lda, ldb, lwork, m, modea, modeb, n, nfail,
246 DOUBLE PRECISION ANORM, BNORM, CNDNMA, CNDNMB
249 LOGICAL DOTYPE( ntypes )
250 DOUBLE PRECISION RESULT( ntests )
268 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
288 DO 30 imat = 1, ntypes
292 IF( .NOT.dotype( imat ) )
300 CALL dlatb9(
'GRQ', imat, m, p, n,
TYPE, KLA, KUA,
301 $ klb, kub, anorm, bnorm, modea, modeb,
302 $ cndnma, cndnmb, dista, distb )
304 CALL zlatms( m, n, dista, iseed,
TYPE, RWORK, MODEA,
305 $ cndnma, anorm, kla, kua,
'No packing', a,
307 IF( iinfo.NE.0 )
THEN 308 WRITE( nout, fmt = 9999 )iinfo
313 CALL zlatms( p, n, distb, iseed,
TYPE, RWORK, MODEB,
314 $ cndnmb, bnorm, klb, kub,
'No packing', b,
316 IF( iinfo.NE.0 )
THEN 317 WRITE( nout, fmt = 9999 )iinfo
324 CALL zgrqts( m, p, n, a, af, aq, ar, lda, taua, b, bf,
325 $ bz, bt, bwk, ldb, taub, work, lwork,
332 IF( result( i ).GE.thresh )
THEN 333 IF( nfail.EQ.0 .AND. firstt )
THEN 335 CALL alahdg( nout,
'GRQ' )
337 WRITE( nout, fmt = 9998 )m, p, n, imat, i,
349 CALL dlatb9(
'GQR', imat, m, p, n,
TYPE, KLA, KUA,
350 $ klb, kub, anorm, bnorm, modea, modeb,
351 $ cndnma, cndnmb, dista, distb )
353 CALL zlatms( n, m, dista, iseed,
TYPE, RWORK, MODEA,
354 $ cndnma, anorm, kla, kua,
'No packing', a,
356 IF( iinfo.NE.0 )
THEN 357 WRITE( nout, fmt = 9999 )iinfo
362 CALL zlatms( n, p, distb, iseed,
TYPE, RWORK, MODEA,
363 $ cndnma, bnorm, klb, kub,
'No packing', b,
365 IF( iinfo.NE.0 )
THEN 366 WRITE( nout, fmt = 9999 )iinfo
373 CALL zgqrts( n, m, p, a, af, aq, ar, lda, taua, b, bf,
374 $ bz, bt, bwk, ldb, taub, work, lwork,
381 IF( result( i ).GE.thresh )
THEN 382 IF( nfail.EQ.0 .AND. firstt )
THEN 386 WRITE( nout, fmt = 9997 )n, m, p, imat, i,
400 CALL alasum( path, nout, nfail, nrun, 0 )
402 9999
FORMAT(
' ZLATMS in ZCKGQR: INFO = ', i5 )
403 9998
FORMAT(
' M=', i4,
' P=', i4,
', N=', i4,
', type ', i2,
404 $
', test ', i2,
', ratio=', g13.6 )
405 9997
FORMAT(
' N=', i4,
' M=', i4,
', P=', i4,
', type ', i2,
406 $
', test ', i2,
', ratio=', g13.6 )
subroutine zgrqts(M, P, N, A, AF, Q, R, LDA, TAUA, B, BF, Z, T, BWK, LDB, TAUB, WORK, LWORK, RWORK, RESULT)
ZGRQTS
subroutine zckgqr(NM, MVAL, NP, PVAL, NN, NVAL, NMATS, ISEED, THRESH, NMAX, A, AF, AQ, AR, TAUA, B, BF, BZ, BT, BWK, TAUB, WORK, RWORK, NIN, NOUT, INFO)
ZCKGQR
subroutine alareq(PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT)
ALAREQ
subroutine dlatb9(PATH, IMAT, M, P, N, TYPE, KLA, KUA, KLB, KUB, ANORM, BNORM, MODEA, MODEB, CNDNMA, CNDNMB, DISTA, DISTB)
DLATB9
subroutine zlatms(M, N, DIST, ISEED, SYM, D, MODE, COND, DMAX, KL, KU, PACK, A, LDA, WORK, INFO)
ZLATMS
subroutine zgqrts(N, M, P, A, AF, Q, R, LDA, TAUA, B, BF, Z, T, BWK, LDB, TAUB, WORK, LWORK, RWORK, RESULT)
ZGQRTS
subroutine alahdg(IOUNIT, PATH)
ALAHDG
subroutine alasum(TYPE, NOUT, NFAIL, NRUN, NERRS)
ALASUM