1431 parameter ( zero = 0.0 )
1434 INTEGER nalf, nbet, nidim, nmax, nout, ntra, iorder
1435 LOGICAL fatal, rewi, trace
1438 REAL a( nmax, nmax ), aa( nmax*nmax ), alf( nalf ),
1439 $ as( nmax*nmax ), b( nmax, nmax ),
1440 $ bb( nmax*nmax ), bet( nbet ), bs( nmax*nmax ),
1441 $ c( nmax, nmax ), cc( nmax*nmax ),
1442 $ cs( nmax*nmax ), ct( nmax ), g( nmax )
1443 INTEGER idim( nidim )
1445 REAL alpha, als, beta, bets, err, errmax
1446 INTEGER i, ia, ib, ict, icu, ik, in, j, jc, jj, k, ks,
1447 $ laa, lcc, lda, ldas, ldc, ldcs, lj, ma, n, na,
1449 LOGICAL null, reset, same, tran, upper
1450 CHARACTER*1 trans, transs, uplo, uplos
1463 INTEGER infot, noutc
1466 COMMON /infoc/infot, noutc, ok
1468 DATA icht/
'NTC'/, ichu/
'UL'/
1476 DO 100 in = 1, nidim
1492 trans = icht( ict: ict )
1493 tran = trans.EQ.
'T'.OR.trans.EQ.
'C'
1512 CALL smake(
'GE',
' ',
' ', ma, na, a, nmax, aa, lda,
1516 uplo = ichu( icu: icu )
1527 CALL smake(
'SY', uplo,
' ', n, n, c, nmax, cc,
1528 $ ldc, reset, zero )
1552 $
CALL sprcn4( ntra, nc, sname, iorder, uplo,
1553 $ trans, n, k, alpha, lda, beta, ldc)
1556 CALL cssyrk( iorder, uplo, trans, n, k, alpha,
1557 $ aa, lda, beta, cc, ldc )
1562 WRITE( nout, fmt = 9993 )
1569 isame( 1 ) = uplos.EQ.uplo
1570 isame( 2 ) = transs.EQ.trans
1571 isame( 3 ) = ns.EQ.n
1572 isame( 4 ) = ks.EQ.k
1573 isame( 5 ) = als.EQ.alpha
1574 isame( 6 ) =
lse( as, aa, laa )
1575 isame( 7 ) = ldas.EQ.lda
1576 isame( 8 ) = bets.EQ.beta
1578 isame( 9 ) =
lse( cs, cc, lcc )
1580 isame( 9 ) =
lseres(
'SY', uplo, n, n, cs,
1583 isame( 10 ) = ldcs.EQ.ldc
1590 same = same.AND.isame( i )
1591 IF( .NOT.isame( i ) )
1592 $
WRITE( nout, fmt = 9998 )i+1
1613 CALL smmch(
'T',
'N', lj, 1, k, alpha,
1615 $ a( 1, j ), nmax, beta,
1616 $ c( jj, j ), nmax, ct, g,
1617 $ cc( jc ), ldc, eps, err,
1618 $ fatal, nout, .true. )
1620 CALL smmch(
'N',
'T', lj, 1, k, alpha,
1622 $ a( j, 1 ), nmax, beta,
1623 $ c( jj, j ), nmax, ct, g,
1624 $ cc( jc ), ldc, eps, err,
1625 $ fatal, nout, .true. )
1632 errmax = max( errmax, err )
1654 IF( errmax.LT.thresh )
THEN
1655 IF ( iorder.EQ.0)
WRITE( nout, fmt = 10000 )sname, nc
1656 IF ( iorder.EQ.1)
WRITE( nout, fmt = 10001 )sname, nc
1658 IF ( iorder.EQ.0)
WRITE( nout, fmt = 10002 )sname, nc, errmax
1659 IF ( iorder.EQ.1)
WRITE( nout, fmt = 10003 )sname, nc, errmax
1665 $
WRITE( nout, fmt = 9995 )j
1668 WRITE( nout, fmt = 9996 )sname
1669 CALL sprcn4( nout, nc, sname, iorder, uplo, trans, n, k, alpha,
1675 10003
FORMAT(
' ', a12,
' COMPLETED THE ROW-MAJOR COMPUTATIONAL ',
1676 $
'TESTS (', i6,
' CALLS)', /
' ******* BUT WITH MAXIMUM TEST ',
1677 $
'RATIO ', f8.2,
' - SUSPECT *******' )
1678 10002
FORMAT(
' ', a12,
' COMPLETED THE COLUMN-MAJOR COMPUTATIONAL ',
1679 $
'TESTS (', i6,
' CALLS)', /
' ******* BUT WITH MAXIMUM TEST ',
1680 $
'RATIO ', f8.2,
' - SUSPECT *******' )
1681 10001
FORMAT(
' ', a12,
' PASSED THE ROW-MAJOR COMPUTATIONAL TESTS',
1682 $
' (', i6,
' CALL',
'S)' )
1683 10000
FORMAT(
' ', a12,
' PASSED THE COLUMN-MAJOR COMPUTATIONAL TESTS',
1684 $
' (', i6,
' CALL',
'S)' )
1685 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1686 $
'ANGED INCORRECTLY *******' )
1687 9996
FORMAT(
' ******* ', a12,
' FAILED ON CALL NUMBER:' )
1688 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
1689 9994
FORMAT( 1x, i6,
': ', a12,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
1690 $ f4.1,
', A,', i3,
',', f4.1,
', C,', i3,
') .' )
1691 9993
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
subroutine sprcn4(NOUT, NC, SNAME, IORDER, UPLO, TRANSA, N, K, ALPHA, LDA, BETA, LDC)
subroutine smake(TYPE, UPLO, DIAG, M, N, A, NMAX, AA, LDA, KL, KU, RESET, TRANSL)
logical function lse(RI, RJ, LR)
logical function lseres(TYPE, UPLO, M, N, AA, AS, LDA)
subroutine smmch(TRANSA, TRANSB, M, N, KK, ALPHA, A, LDA, B, LDB, BETA, C, LDC, CT, G, CC, LDCC, EPS, ERR, FATAL, NOUT, MV)