167 SUBROUTINE zckglm( NN, NVAL, MVAL, PVAL, NMATS, ISEED, THRESH,
168 $ NMAX, A, AF, B, BF, X, WORK, RWORK, NIN, NOUT,
177 INTEGER INFO, NIN, NMATS, NMAX, NN, NOUT
178 DOUBLE PRECISION THRESH
181 INTEGER ISEED( 4 ), MVAL( * ), NVAL( * ), PVAL( * )
182 DOUBLE PRECISION RWORK( * )
183 COMPLEX*16 A( * ), AF( * ), B( * ), BF( * ), WORK( * ),
191 parameter( ntypes = 8 )
195 CHARACTER DISTA, DISTB, TYPE
197 INTEGER I, IINFO, IK, IMAT, KLA, KLB, KUA, KUB, LDA,
198 $ ldb, lwork, m, modea, modeb, n, nfail, nrun, p
199 DOUBLE PRECISION ANORM, BNORM, CNDNMA, CNDNMB, RESID
202 LOGICAL DOTYPE( ntypes )
223 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
234 IF( m.GT.n .OR. n.GT.m+p )
THEN 236 WRITE( nout, fmt = * )
239 WRITE( nout, fmt = 9997 )m, p, n
250 IF( m.GT.n .OR. n.GT.m+p )
253 DO 30 imat = 1, ntypes
257 IF( .NOT.dotype( imat ) )
263 CALL dlatb9( path, imat, m, p, n,
TYPE, KLA, KUA, KLB, KUB,
264 $ anorm, bnorm, modea, modeb, cndnma, cndnmb,
267 CALL zlatms( n, m, dista, iseed,
TYPE, RWORK, MODEA, CNDNMA,
268 $ anorm, kla, kua,
'No packing', a, lda, work,
270 IF( iinfo.NE.0 )
THEN 271 WRITE( nout, fmt = 9999 )iinfo
276 CALL zlatms( n, p, distb, iseed,
TYPE, RWORK, MODEB, CNDNMB,
277 $ bnorm, klb, kub,
'No packing', b, ldb, work,
279 IF( iinfo.NE.0 )
THEN 280 WRITE( nout, fmt = 9999 )iinfo
288 x( i ) = zlarnd( 2, iseed )
291 CALL zglmts( n, m, p, a, af, lda, b, bf, ldb, x,
292 $ x( nmax+1 ), x( 2*nmax+1 ), x( 3*nmax+1 ),
293 $ work, lwork, rwork, resid )
298 IF( resid.GE.thresh )
THEN 299 IF( nfail.EQ.0 .AND. firstt )
THEN 303 WRITE( nout, fmt = 9998 )n, m, p, imat, 1, resid
313 CALL alasum( path, nout, nfail, nrun, 0 )
315 9999
FORMAT(
' ZLATMS in ZCKGLM INFO = ', i5 )
316 9998
FORMAT(
' N=', i4,
' M=', i4,
', P=', i4,
', type ', i2,
317 $
', test ', i2,
', ratio=', g13.6 )
318 9997
FORMAT(
' *** Invalid input for GLM: M = ', i6,
', P = ', i6,
319 $
', N = ', i6,
';', /
' must satisfy M <= N <= M+P ',
320 $
'(this set of values will be skipped)' )
subroutine zckglm(NN, NVAL, MVAL, PVAL, NMATS, ISEED, THRESH, NMAX, A, AF, B, BF, X, WORK, RWORK, NIN, NOUT, INFO)
ZCKGLM
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 zglmts(N, M, P, A, AF, LDA, B, BF, LDB, D, DF, X, U, WORK, LWORK, RWORK, RESULT)
ZGLMTS
subroutine alahdg(IOUNIT, PATH)
ALAHDG
subroutine alasum(TYPE, NOUT, NFAIL, NRUN, NERRS)
ALASUM