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 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 zckglm(NN, NVAL, MVAL, PVAL, NMATS, ISEED, THRESH, NMAX, A, AF, B, BF, X, WORK, RWORK, NIN, NOUT, INFO)
ZCKGLM
subroutine zglmts(N, M, P, A, AF, LDA, B, BF, LDB, D, DF, X, U, WORK, LWORK, RWORK, RESULT)
ZGLMTS
subroutine zlatms(M, N, DIST, ISEED, SYM, D, MODE, COND, DMAX, KL, KU, PACK, A, LDA, WORK, INFO)
ZLATMS
subroutine alahdg(IOUNIT, PATH)
ALAHDG
subroutine alasum(TYPE, NOUT, NFAIL, NRUN, NERRS)
ALASUM