1425 DOUBLE PRECISION zero
1426 parameter ( zero = 0.0d0 )
1428 DOUBLE PRECISION eps, thresh
1429 INTEGER nalf, nbet, nidim, nmax, nout, ntra, iorder
1430 LOGICAL fatal, rewi, trace
1433 DOUBLE PRECISION a( nmax, nmax ), aa( nmax*nmax ), alf( nalf ),
1434 $ as( nmax*nmax ), b( nmax, nmax ),
1435 $ bb( nmax*nmax ), bet( nbet ), bs( nmax*nmax ),
1436 $ c( nmax, nmax ), cc( nmax*nmax ),
1437 $ cs( nmax*nmax ), ct( nmax ), g( nmax )
1438 INTEGER idim( nidim )
1440 DOUBLE PRECISION alpha, als, beta, bets, err, errmax
1441 INTEGER i, ia, ib, ict, icu, ik, in, j, jc, jj, k, ks,
1442 $ laa, lcc, lda, ldas, ldc, ldcs, lj, ma, n, na,
1444 LOGICAL null, reset, same, tran, upper
1445 CHARACTER*1 trans, transs, uplo, uplos
1458 INTEGER infot, noutc
1461 COMMON /infoc/infot, noutc, ok
1463 DATA icht/
'NTC'/, ichu/
'UL'/
1471 DO 100 in = 1, nidim
1487 trans = icht( ict: ict )
1488 tran = trans.EQ.
'T'.OR.trans.EQ.
'C'
1507 CALL dmake(
'GE',
' ',
' ', ma, na, a, nmax, aa, lda,
1511 uplo = ichu( icu: icu )
1522 CALL dmake(
'SY', uplo,
' ', n, n, c, nmax, cc,
1523 $ ldc, reset, zero )
1547 $
CALL dprcn4( ntra, nc, sname, iorder, uplo,
1548 $ trans, n, k, alpha, lda, beta, ldc)
1551 CALL cdsyrk( iorder, uplo, trans, n, k, alpha,
1552 $ aa, lda, beta, cc, ldc )
1557 WRITE( nout, fmt = 9993 )
1564 isame( 1 ) = uplos.EQ.uplo
1565 isame( 2 ) = transs.EQ.trans
1566 isame( 3 ) = ns.EQ.n
1567 isame( 4 ) = ks.EQ.k
1568 isame( 5 ) = als.EQ.alpha
1569 isame( 6 ) =
lde( as, aa, laa )
1570 isame( 7 ) = ldas.EQ.lda
1571 isame( 8 ) = bets.EQ.beta
1573 isame( 9 ) =
lde( cs, cc, lcc )
1575 isame( 9 ) =
lderes(
'SY', uplo, n, n, cs,
1578 isame( 10 ) = ldcs.EQ.ldc
1585 same = same.AND.isame( i )
1586 IF( .NOT.isame( i ) )
1587 $
WRITE( nout, fmt = 9998 )i
1608 CALL dmmch(
'T',
'N', lj, 1, k, alpha,
1610 $ a( 1, j ), nmax, beta,
1611 $ c( jj, j ), nmax, ct, g,
1612 $ cc( jc ), ldc, eps, err,
1613 $ fatal, nout, .true. )
1615 CALL dmmch(
'N',
'T', lj, 1, k, alpha,
1617 $ a( j, 1 ), nmax, beta,
1618 $ c( jj, j ), nmax, ct, g,
1619 $ cc( jc ), ldc, eps, err,
1620 $ fatal, nout, .true. )
1627 errmax = max( errmax, err )
1649 IF( errmax.LT.thresh )
THEN
1650 IF ( iorder.EQ.0)
WRITE( nout, fmt = 10000 )sname, nc
1651 IF ( iorder.EQ.1)
WRITE( nout, fmt = 10001 )sname, nc
1653 IF ( iorder.EQ.0)
WRITE( nout, fmt = 10002 )sname, nc, errmax
1654 IF ( iorder.EQ.1)
WRITE( nout, fmt = 10003 )sname, nc, errmax
1660 $
WRITE( nout, fmt = 9995 )j
1663 WRITE( nout, fmt = 9996 )sname
1664 CALL dprcn4( nout, nc, sname, iorder, uplo, trans, n, k, alpha,
1670 10003
FORMAT(
' ', a12,
' COMPLETED THE ROW-MAJOR COMPUTATIONAL ',
1671 $
'TESTS (', i6,
' CALLS)', /
' ******* BUT WITH MAXIMUM TEST ',
1672 $
'RATIO ', f8.2,
' - SUSPECT *******' )
1673 10002
FORMAT(
' ', a12,
' COMPLETED THE COLUMN-MAJOR COMPUTATIONAL ',
1674 $
'TESTS (', i6,
' CALLS)', /
' ******* BUT WITH MAXIMUM TEST ',
1675 $
'RATIO ', f8.2,
' - SUSPECT *******' )
1676 10001
FORMAT(
' ', a12,
' PASSED THE ROW-MAJOR COMPUTATIONAL TESTS',
1677 $
' (', i6,
' CALL',
'S)' )
1678 10000
FORMAT(
' ', a12,
' PASSED THE COLUMN-MAJOR COMPUTATIONAL TESTS',
1679 $
' (', i6,
' CALL',
'S)' )
1680 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1681 $
'ANGED INCORRECTLY *******' )
1682 9996
FORMAT(
' ******* ', a12,
' FAILED ON CALL NUMBER:' )
1683 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
1684 9994
FORMAT( 1x, i6,
': ', a12,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
1685 $ f4.1,
', A,', i3,
',', f4.1,
', C,', i3,
') .' )
1686 9993
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
subroutine dmake(TYPE, UPLO, DIAG, M, N, A, NMAX, AA, LDA, KL, KU, RESET, TRANSL)
subroutine dmmch(TRANSA, TRANSB, M, N, KK, ALPHA, A, LDA, B, LDB, BETA, C, LDC, CT, G, CC, LDCC, EPS, ERR, FATAL, NOUT, MV)
logical function lde(RI, RJ, LR)
subroutine dprcn4(NOUT, NC, SNAME, IORDER, UPLO, TRANSA, N, K, ALPHA, LDA, BETA, LDC)
logical function lderes(TYPE, UPLO, M, N, AA, AS, LDA)