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 *',