164 SUBROUTINE dckglm( NN, MVAL, PVAL, NVAL, NMATS, ISEED, THRESH,
165 $ NMAX, A, AF, B, BF, X, WORK, RWORK, NIN, NOUT,
173 INTEGER INFO, NIN, NMATS, NMAX, NN, NOUT
174 DOUBLE PRECISION THRESH
177 INTEGER ISEED( 4 ), MVAL( * ), NVAL( * ), PVAL( * )
178 DOUBLE PRECISION A( * ), AF( * ), B( * ), BF( * ), RWORK( * ),
186 PARAMETER ( NTYPES = 8 )
190 CHARACTER DISTA, DISTB, TYPE
192 INTEGER I, IINFO, IK, IMAT, KLA, KLB, KUA, KUB, LDA,
193 $ ldb, lwork, m, modea, modeb, n, nfail, nrun, p
194 DOUBLE PRECISION ANORM, BNORM, CNDNMA, CNDNMB, RESID
197 LOGICAL DOTYPE( NTYPES )
200 DOUBLE PRECISION DLARND
218 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
229 IF( m.GT.n .OR. n.GT.m+p )
THEN
231 WRITE( nout, fmt = * )
234 WRITE( nout, fmt = 9997 )m, p, n
245 IF( m.GT.n .OR. n.GT.m+p )
248 DO 30 imat = 1, ntypes
252 IF( .NOT.dotype( imat ) )
258 CALL dlatb9( path, imat, m, p, n,
TYPE, kla, kua, klb, kub,
259 $ anorm, bnorm, modea, modeb, cndnma, cndnmb,
262 CALL dlatms( n, m, dista, iseed,
TYPE, rwork, modea, cndnma,
263 $ anorm, kla, kua,
'No packing', a, lda, work,
265 IF( iinfo.NE.0 )
THEN
266 WRITE( nout, fmt = 9999 )iinfo
271 CALL dlatms( n, p, distb, iseed,
TYPE, rwork, modeb, cndnmb,
272 $ bnorm, klb, kub,
'No packing', b, ldb, work,
274 IF( iinfo.NE.0 )
THEN
275 WRITE( nout, fmt = 9999 )iinfo
283 x( i ) = dlarnd( 2, iseed )
286 CALL dglmts( n, m, p, a, af, lda, b, bf, ldb, x,
287 $ x( nmax+1 ), x( 2*nmax+1 ), x( 3*nmax+1 ),
288 $ work, lwork, rwork, resid )
293 IF( resid.GE.thresh )
THEN
294 IF( nfail.EQ.0 .AND. firstt )
THEN
298 WRITE( nout, fmt = 9998 )n, m, p, imat, 1, resid
308 CALL alasum( path, nout, nfail, nrun, 0 )
310 9999
FORMAT(
' DLATMS in DCKGLM INFO = ', i5 )
311 9998
FORMAT(
' N=', i4,
' M=', i4,
', P=', i4,
', type ', i2,
312 $
', test ', i2,
', ratio=', g13.6 )
313 9997
FORMAT(
' *** Invalid input for GLM: M = ', i6,
', P = ', i6,
314 $
', N = ', i6,
';', /
' must satisfy M <= N <= M+P ',
315 $
'(this set of values will be skipped)' )
subroutine dckglm(nn, mval, pval, nval, nmats, iseed, thresh, nmax, a, af, b, bf, x, work, rwork, nin, nout, info)
DCKGLM
subroutine dglmts(n, m, p, a, af, lda, b, bf, ldb, d, df, x, u, work, lwork, rwork, result)
DGLMTS
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