165 SUBROUTINE zckglm( NN, NVAL, MVAL, PVAL, NMATS, ISEED, THRESH,
166 $ NMAX, A, AF, B, BF, X, WORK, RWORK, NIN, NOUT,
174 INTEGER INFO, NIN, NMATS, NMAX, NN, NOUT
175 DOUBLE PRECISION THRESH
178 INTEGER ISEED( 4 ), MVAL( * ), NVAL( * ), PVAL( * )
179 DOUBLE PRECISION RWORK( * )
180 COMPLEX*16 A( * ), AF( * ), B( * ), BF( * ), WORK( * ),
188 PARAMETER ( NTYPES = 8 )
192 CHARACTER DISTA, DISTB, TYPE
194 INTEGER I, IINFO, IK, IMAT, KLA, KLB, KUA, KUB, LDA,
195 $ ldb, lwork, m, modea, modeb, n, nfail, nrun, p
196 DOUBLE PRECISION ANORM, BNORM, CNDNMA, CNDNMB, RESID
199 LOGICAL DOTYPE( NTYPES )
220 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
231 IF( m.GT.n .OR. n.GT.m+p )
THEN
233 WRITE( nout, fmt = * )
236 WRITE( nout, fmt = 9997 )m, p, n
247 IF( m.GT.n .OR. n.GT.m+p )
250 DO 30 imat = 1, ntypes
254 IF( .NOT.dotype( imat ) )
260 CALL dlatb9( path, imat, m, p, n,
TYPE, kla, kua, klb, kub,
261 $ anorm, bnorm, modea, modeb, cndnma, cndnmb,
264 CALL zlatms( n, m, dista, iseed,
TYPE, rwork, modea, cndnma,
265 $ anorm, kla, kua,
'No packing', a, lda, work,
267 IF( iinfo.NE.0 )
THEN
268 WRITE( nout, fmt = 9999 )iinfo
273 CALL zlatms( n, p, distb, iseed,
TYPE, rwork, modeb, cndnmb,
274 $ bnorm, klb, kub,
'No packing', b, ldb, work,
276 IF( iinfo.NE.0 )
THEN
277 WRITE( nout, fmt = 9999 )iinfo
285 x( i ) = zlarnd( 2, iseed )
288 CALL zglmts( n, m, p, a, af, lda, b, bf, ldb, x,
289 $ x( nmax+1 ), x( 2*nmax+1 ), x( 3*nmax+1 ),
290 $ work, lwork, rwork, resid )
295 IF( resid.GE.thresh )
THEN
296 IF( nfail.EQ.0 .AND. firstt )
THEN
300 WRITE( nout, fmt = 9998 )n, m, p, imat, 1, resid
310 CALL alasum( path, nout, nfail, nrun, 0 )
312 9999
FORMAT(
' ZLATMS in ZCKGLM INFO = ', i5 )
313 9998
FORMAT(
' N=', i4,
' M=', i4,
', P=', i4,
', type ', i2,
314 $
', test ', i2,
', ratio=', g13.6 )
315 9997
FORMAT(
' *** Invalid input for GLM: M = ', i6,
', P = ', i6,
316 $
', N = ', i6,
';', /
' must satisfy M <= N <= M+P ',
317 $
'(this set of values will be skipped)' )
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 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