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 )