195 SUBROUTINE cckgsv( NM, MVAL, PVAL, NVAL, NMATS, ISEED, THRESH,
196 $ NMAX, A, AF, B, BF, U, V, Q, ALPHA, BETA, R,
197 $ IWORK, WORK, RWORK, NIN, NOUT, INFO )
204 INTEGER INFO, NIN, NM, NMATS, NMAX, NOUT
208 INTEGER ISEED( 4 ), IWORK( * ), MVAL( * ), NVAL( * ),
210 REAL ALPHA( * ), BETA( * ), RWORK( * )
211 COMPLEX A( * ), AF( * ), B( * ), BF( * ), Q( * ),
212 $ r( * ), u( * ), v( * ), work( * )
219 PARAMETER ( NTESTS = 12 )
221 parameter( ntypes = 8 )
225 CHARACTER DISTA, DISTB, TYPE
227 INTEGER I, IINFO, IM, IMAT, KLA, KLB, KUA, KUB, LDA,
228 $ ldb, ldq, ldr, ldu, ldv, lwork, m, modea,
229 $ modeb, n, nfail, nrun, nt, p, k, l
230 REAL ANORM, BNORM, CNDNMA, CNDNMB
233 LOGICAL DOTYPE( NTYPES )
234 REAL RESULT( NTESTS )
251 CALL alareq( path, nmats, dotype, ntypes, nin, nout )
267 a(1:m*n) = cmplx(1.e0, 0.e0)
268 b(1:m*n) = cmplx(0.e0, 0.e0)
269 b(1+0*m) = cmplx(9.e19, 0.e0)
270 b(2+1*m) = cmplx(9.e18, 0.e0)
271 b(3+2*m) = cmplx(9.e17, 0.e0)
272 b(4+3*m) = cmplx(9.e16, 0.e0)
273 b(5+4*m) = cmplx(9.e15, 0.e0)
274 b(6+5*m) = cmplx(9.e14, 0.e0)
275 CALL cggsvd3(
'N',
'N',
'N', m, p, n, k, l, a, m, b, m,
276 $ alpha, beta, u, 1, v, 1, q, 1,
277 $ work, m*n, rwork, iwork, info)
281 IF( beta(i).NE.beta(i) )
THEN
287 IF( nfail.EQ.0 .AND. firstt )
THEN
291 WRITE( nout, fmt = 9997 ) -info
304 DO 20 imat = 1, ntypes
308 IF( .NOT.dotype( imat ) )
314 CALL slatb9( path, imat, m, p, n,
TYPE, kla, kua, klb, kub,
315 $ anorm, bnorm, modea, modeb, cndnma, cndnmb,
320 CALL clatms( m, n, dista, iseed,
TYPE, rwork, modea, cndnma,
321 $ anorm, kla, kua,
'No packing', a, lda, work,
323 IF( iinfo.NE.0 )
THEN
324 WRITE( nout, fmt = 9999 )iinfo
331 CALL clatms( p, n, distb, iseed,
TYPE, rwork, modeb, cndnmb,
332 $ bnorm, klb, kub,
'No packing', b, ldb, work,
334 IF( iinfo.NE.0 )
THEN
335 WRITE( nout, fmt = 9999 )iinfo
342 CALL cgsvts3( m, p, n, a, af, lda, b, bf, ldb, u, ldu, v,
343 $ ldv, q, ldq, alpha, beta, r, ldr, iwork, work,
344 $ lwork, rwork, result )
350 IF( result( i ).GE.thresh )
THEN
351 IF( nfail.EQ.0 .AND. firstt )
THEN
355 WRITE( nout, fmt = 9998 )m, p, n, imat, i,
367 CALL alasum( path, nout, nfail, nrun, 0 )
369 9999
FORMAT(
' CLATMS in CCKGSV INFO = ', i5 )
370 9998
FORMAT(
' M=', i4,
' P=', i4,
', N=', i4,
', type ', i2,
371 $
', test ', i2,
', ratio=', g13.6 )
372 9997
FORMAT(
' FOUND NaN in BETA(', i4,
')' )
subroutine alareq(path, nmats, dotype, ntypes, nin, nout)
ALAREQ
subroutine alasum(type, nout, nfail, nrun, nerrs)
ALASUM
subroutine alahdg(iounit, path)
ALAHDG
subroutine cckgsv(nm, mval, pval, nval, nmats, iseed, thresh, nmax, a, af, b, bf, u, v, q, alpha, beta, r, iwork, work, rwork, nin, nout, info)
CCKGSV
subroutine cgsvts3(m, p, n, a, af, lda, b, bf, ldb, u, ldu, v, ldv, q, ldq, alpha, beta, r, ldr, iwork, work, lwork, rwork, result)
CGSVTS3
subroutine clatms(m, n, dist, iseed, sym, d, mode, cond, dmax, kl, ku, pack, a, lda, work, info)
CLATMS
subroutine cggsvd3(jobu, jobv, jobq, m, n, p, k, l, a, lda, b, ldb, alpha, beta, u, ldu, v, ldv, q, ldq, work, lwork, rwork, iwork, info)
CGGSVD3 computes the singular value decomposition (SVD) for OTHER matrices
subroutine slatb9(path, imat, m, p, n, type, kla, kua, klb, kub, anorm, bnorm, modea, modeb, cndnma, cndnmb, dista, distb)
SLATB9