166 SUBROUTINE dckglm( NN, MVAL, PVAL, NVAL, NMATS, ISEED, THRESH,
167 $ nmax, a, af, b, bf, x, work, rwork, nin, nout,
176 INTEGER INFO, NIN, NMATS, NMAX, NN, NOUT
177 DOUBLE PRECISION THRESH
180 INTEGER ISEED( 4 ), MVAL( * ), NVAL( * ), PVAL( * )
181 DOUBLE PRECISION A( * ), AF( * ), B( * ), BF( * ), RWORK( * ),
189 parameter ( ntypes = 8 )
193 CHARACTER DISTA, DISTB, TYPE
195 INTEGER I, IINFO, IK, IMAT, KLA, KLB, KUA, KUB, LDA,
196 $ ldb, lwork, m, modea, modeb, n, nfail, nrun, p
197 DOUBLE PRECISION ANORM, BNORM, CNDNMA, CNDNMB, RESID
200 LOGICAL DOTYPE( ntypes )
203 DOUBLE PRECISION DLARND
221 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
232 IF( m.GT.n .OR. n.GT.m+p )
THEN
234 WRITE( nout, fmt = * )
237 WRITE( nout, fmt = 9997 )m, p, n
248 IF( m.GT.n .OR. n.GT.m+p )
251 DO 30 imat = 1, ntypes
255 IF( .NOT.dotype( imat ) )
261 CALL dlatb9( path, imat, m, p, n,
TYPE, KLA, KUA, KLB, KUB,
262 $ anorm, bnorm, modea, modeb, cndnma, cndnmb,
265 CALL dlatms( n, m, dista, iseed,
TYPE, RWORK, MODEA, CNDNMA,
266 $ anorm, kla, kua,
'No packing', a, lda, work,
268 IF( iinfo.NE.0 )
THEN
269 WRITE( nout, fmt = 9999 )iinfo
274 CALL dlatms( n, p, distb, iseed,
TYPE, RWORK, MODEB, CNDNMB,
275 $ bnorm, klb, kub,
'No packing', b, ldb, work,
277 IF( iinfo.NE.0 )
THEN
278 WRITE( nout, fmt = 9999 )iinfo
286 x( i ) = dlarnd( 2, iseed )
289 CALL dglmts( n, m, p, a, af, lda, b, bf, ldb, x,
290 $ x( nmax+1 ), x( 2*nmax+1 ), x( 3*nmax+1 ),
291 $ work, lwork, rwork, resid )
296 IF( resid.GE.thresh )
THEN
297 IF( nfail.EQ.0 .AND. firstt )
THEN
301 WRITE( nout, fmt = 9998 )n, m, p, imat, 1, resid
311 CALL alasum( path, nout, nfail, nrun, 0 )
313 9999
FORMAT(
' DLATMS in DCKGLM INFO = ', i5 )
314 9998
FORMAT(
' N=', i4,
' M=', i4,
', P=', i4,
', type ', i2,
315 $
', test ', i2,
', ratio=', g13.6 )
316 9997
FORMAT(
' *** Invalid input for GLM: M = ', i6,
', P = ', i6,
317 $
', N = ', i6,
';', /
' must satisfy M <= N <= M+P ',
318 $
'(this set of values will be skipped)' )
subroutine dglmts(N, M, P, A, AF, LDA, B, BF, LDB, D, DF, X, U, WORK, LWORK, RWORK, RESULT)
DGLMTS
subroutine dckglm(NN, MVAL, PVAL, NVAL, NMATS, ISEED, THRESH, NMAX, A, AF, B, BF, X, WORK, RWORK, NIN, NOUT, INFO)
DCKGLM
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 dlatms(M, N, DIST, ISEED, SYM, D, MODE, COND, DMAX, KL, KU, PACK, A, LDA, WORK, INFO)
DLATMS
subroutine alahdg(IOUNIT, PATH)
ALAHDG
subroutine alasum(TYPE, NOUT, NFAIL, NRUN, NERRS)
ALASUM