164 SUBROUTINE dcklse( 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 ( NTESTS = 7 )
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,
197 DOUBLE PRECISION ANORM, BNORM, CNDNMA, CNDNMB
200 LOGICAL DOTYPE( NTYPES )
201 DOUBLE PRECISION RESULT( NTESTS )
219 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
230 IF( p.GT.n .OR. n.GT.m+p )
THEN
232 WRITE( nout, fmt = * )
235 WRITE( nout, fmt = 9997 )m, p, n
246 IF( p.GT.n .OR. n.GT.m+p )
249 DO 30 imat = 1, ntypes
253 IF( .NOT.dotype( imat ) )
259 CALL dlatb9( path, imat, m, p, n,
TYPE, kla, kua, klb, kub,
260 $ anorm, bnorm, modea, modeb, cndnma, cndnmb,
263 CALL dlatms( m, n, dista, iseed,
TYPE, rwork, modea, cndnma,
264 $ anorm, kla, kua,
'No packing', a, lda, work,
266 IF( iinfo.NE.0 )
THEN
267 WRITE( nout, fmt = 9999 )iinfo
272 CALL dlatms( p, n, distb, iseed,
TYPE, rwork, modeb, cndnmb,
273 $ bnorm, klb, kub,
'No packing', b, ldb, work,
275 IF( iinfo.NE.0 )
THEN
276 WRITE( nout, fmt = 9999 )iinfo
283 CALL dlarhs(
'DGE',
'New solution',
'Upper',
'N', m, n,
284 $ max( m-1, 0 ), max( n-1, 0 ), 1, a, lda,
285 $ x( 4*nmax+1 ), max( n, 1 ), x, max( m, 1 ),
288 CALL dlarhs(
'DGE',
'Computed',
'Upper',
'N', p, n,
289 $ max( p-1, 0 ), max( n-1, 0 ), 1, b, ldb,
290 $ x( 4*nmax+1 ), max( n, 1 ), x( 2*nmax+1 ),
291 $ max( p, 1 ), iseed, iinfo )
295 CALL dlsets( m, p, n, a, af, lda, b, bf, ldb, x,
296 $ x( nmax+1 ), x( 2*nmax+1 ), x( 3*nmax+1 ),
297 $ x( 4*nmax+1 ), work, lwork, rwork,
304 IF( result( i ).GE.thresh )
THEN
305 IF( nfail.EQ.0 .AND. firstt )
THEN
309 WRITE( nout, fmt = 9998 )m, p, n, imat, i,
321 CALL alasum( path, nout, nfail, nrun, 0 )
323 9999
FORMAT(
' DLATMS in DCKLSE INFO = ', i5 )
324 9998
FORMAT(
' M=', i4,
' P=', i4,
', N=', i4,
', type ', i2,
325 $
', test ', i2,
', ratio=', g13.6 )
326 9997
FORMAT(
' *** Invalid input for LSE: M = ', i6,
', P = ', i6,
327 $
', N = ', i6,
';', /
' must satisfy P <= N <= P+M ',
328 $
'(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 dlarhs(path, xtype, uplo, trans, m, n, kl, ku, nrhs, a, lda, x, ldx, b, ldb, iseed, info)
DLARHS
subroutine alahdg(iounit, path)
ALAHDG
subroutine dcklse(nn, mval, pval, nval, nmats, iseed, thresh, nmax, a, af, b, bf, x, work, rwork, nin, nout, info)
DCKLSE
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 dlsets(m, p, n, a, af, lda, b, bf, ldb, c, cf, d, df, x, work, lwork, rwork, result)
DLSETS