208 SUBROUTINE zckgqr( NM, MVAL, NP, PVAL, NN, NVAL, NMATS, ISEED,
209 $ THRESH, NMAX, A, AF, AQ, AR, TAUA, B, BF, BZ,
210 $ BT, BWK, TAUB, WORK, RWORK, NIN, NOUT, INFO )
217 INTEGER INFO, NIN, NM, NMATS, NMAX, NN, NOUT, NP
218 DOUBLE PRECISION THRESH
221 INTEGER ISEED( 4 ), MVAL( * ), NVAL( * ), PVAL( * )
222 DOUBLE PRECISION RWORK( * )
223 COMPLEX*16 A( * ), AF( * ), AQ( * ), AR( * ), B( * ),
224 $ bf( * ), bt( * ), bwk( * ), bz( * ), taua( * ),
225 $ taub( * ), work( * )
232 PARAMETER ( NTESTS = 7 )
234 parameter( ntypes = 8 )
238 CHARACTER DISTA, DISTB, TYPE
240 INTEGER I, IINFO, IM, IMAT, IN, IP, KLA, KLB, KUA, KUB,
241 $ lda, ldb, lwork, m, modea, modeb, n, nfail,
243 DOUBLE PRECISION ANORM, BNORM, CNDNMA, CNDNMB
246 LOGICAL DOTYPE( NTYPES )
247 DOUBLE PRECISION RESULT( NTESTS )
265 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
285 DO 30 imat = 1, ntypes
289 IF( .NOT.dotype( imat ) )
297 CALL dlatb9(
'GRQ', imat, m, p, n,
TYPE, kla, kua,
298 $ klb, kub, anorm, bnorm, modea, modeb,
299 $ cndnma, cndnmb, dista, distb )
301 CALL zlatms( m, n, dista, iseed,
TYPE, rwork, modea,
302 $ cndnma, anorm, kla, kua,
'No packing', a,
304 IF( iinfo.NE.0 )
THEN
305 WRITE( nout, fmt = 9999 )iinfo
310 CALL zlatms( p, n, distb, iseed,
TYPE, rwork, modeb,
311 $ cndnmb, bnorm, klb, kub,
'No packing', b,
313 IF( iinfo.NE.0 )
THEN
314 WRITE( nout, fmt = 9999 )iinfo
321 CALL zgrqts( m, p, n, a, af, aq, ar, lda, taua, b, bf,
322 $ bz, bt, bwk, ldb, taub, work, lwork,
329 IF( result( i ).GE.thresh )
THEN
330 IF( nfail.EQ.0 .AND. firstt )
THEN
332 CALL alahdg( nout,
'GRQ' )
334 WRITE( nout, fmt = 9998 )m, p, n, imat, i,
346 CALL dlatb9(
'GQR', imat, m, p, n,
TYPE, kla, kua,
347 $ klb, kub, anorm, bnorm, modea, modeb,
348 $ cndnma, cndnmb, dista, distb )
350 CALL zlatms( n, m, dista, iseed,
TYPE, rwork, modea,
351 $ cndnma, anorm, kla, kua,
'No packing', a,
353 IF( iinfo.NE.0 )
THEN
354 WRITE( nout, fmt = 9999 )iinfo
359 CALL zlatms( n, p, distb, iseed,
TYPE, rwork, modea,
360 $ cndnma, bnorm, klb, kub,
'No packing', b,
362 IF( iinfo.NE.0 )
THEN
363 WRITE( nout, fmt = 9999 )iinfo
370 CALL zgqrts( n, m, p, a, af, aq, ar, lda, taua, b, bf,
371 $ bz, bt, bwk, ldb, taub, work, lwork,
378 IF( result( i ).GE.thresh )
THEN
379 IF( nfail.EQ.0 .AND. firstt )
THEN
383 WRITE( nout, fmt = 9997 )n, m, p, imat, i,
397 CALL alasum( path, nout, nfail, nrun, 0 )
399 9999
FORMAT(
' ZLATMS in ZCKGQR: INFO = ', i5 )
400 9998
FORMAT(
' M=', i4,
' P=', i4,
', N=', i4,
', type ', i2,
401 $
', test ', i2,
', ratio=', g13.6 )
402 9997
FORMAT(
' N=', i4,
' M=', i4,
', P=', i4,
', type ', i2,
403 $
', test ', i2,
', ratio=', g13.6 )
subroutine alareq(path, nmats, dotype, ntypes, nin, nout)
ALAREQ
subroutine alasum(type, nout, nfail, nrun, nerrs)
ALASUM
subroutine alahdg(iounit, path)
ALAHDG
subroutine dlatb9(path, imat, m, p, n, type, kla, kua, klb, kub, anorm, bnorm, modea, modeb, cndnma, cndnmb, dista, distb)
DLATB9
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 zgqrts(n, m, p, a, af, q, r, lda, taua, b, bf, z, t, bwk, ldb, taub, work, lwork, rwork, result)
ZGQRTS
subroutine zgrqts(m, p, n, a, af, q, r, lda, taua, b, bf, z, t, bwk, ldb, taub, work, lwork, rwork, result)
ZGRQTS
subroutine zlatms(m, n, dist, iseed, sym, d, mode, cond, dmax, kl, ku, pack, a, lda, work, info)
ZLATMS