1458 parameter ( zero = ( 0.0, 0.0 ) )
1460 parameter ( rone = 1.0, rzero = 0.0 )
1463 INTEGER nalf, nbet, nidim, nmax, nout, ntra, iorder
1464 LOGICAL fatal, rewi, trace
1467 COMPLEX a( nmax, nmax ), aa( nmax*nmax ), alf( nalf ),
1468 $ as( nmax*nmax ), b( nmax, nmax ),
1469 $ bb( nmax*nmax ), bet( nbet ), bs( nmax*nmax ),
1470 $ c( nmax, nmax ), cc( nmax*nmax ),
1471 $ cs( nmax*nmax ), ct( nmax )
1473 INTEGER idim( nidim )
1475 COMPLEX alpha, als, beta, bets
1476 REAL err, errmax, ralpha, rals, rbeta, rbets
1477 INTEGER i, ia, ib, ict, icu, ik, in, j, jc, jj, k, ks,
1478 $ laa, lcc, lda, ldas, ldc, ldcs, lj, ma, n, na,
1480 LOGICAL conj, null, reset, same, tran, upper
1481 CHARACTER*1 trans, transs, transt, uplo, uplos
1482 CHARACTER*2 icht, ichu
1491 INTRINSIC cmplx, max, real
1493 INTEGER infot, noutc
1496 COMMON /infoc/infot, noutc, ok, lerr
1498 DATA icht/
'NC'/, ichu/
'UL'/
1500 conj = sname( 8: 9 ).EQ.
'he'
1507 DO 100 in = 1, nidim
1522 trans = icht( ict: ict )
1524 IF( tran.AND..NOT.conj )
1544 CALL cmake(
'ge',
' ',
' ', ma, na, a, nmax, aa, lda,
1548 uplo = ichu( icu: icu )
1554 ralpha =
REAL( alpha )
1555 alpha = cmplx( ralpha, rzero )
1561 rbeta =
REAL( beta )
1562 beta = cmplx( rbeta, rzero )
1566 $ null = null.OR.( ( k.LE.0.OR.ralpha.EQ.
1567 $ rzero ).AND.rbeta.EQ.rone )
1571 CALL cmake( sname( 8: 9 ), uplo,
' ', n, n, c,
1572 $ nmax, cc, ldc, reset, zero )
1605 $
CALL cprcn6( ntra, nc, sname, iorder,
1606 $ uplo, trans, n, k, ralpha, lda, rbeta,
1610 CALL ccherk( iorder, uplo, trans, n, k,
1611 $ ralpha, aa, lda, rbeta, cc,
1615 $
CALL cprcn4( ntra, nc, sname, iorder,
1616 $ uplo, trans, n, k, alpha, lda, beta, ldc)
1619 CALL ccsyrk( iorder, uplo, trans, n, k,
1620 $ alpha, aa, lda, beta, cc, ldc )
1626 WRITE( nout, fmt = 9992 )
1633 isame( 1 ) = uplos.EQ.uplo
1634 isame( 2 ) = transs.EQ.trans
1635 isame( 3 ) = ns.EQ.n
1636 isame( 4 ) = ks.EQ.k
1638 isame( 5 ) = rals.EQ.ralpha
1640 isame( 5 ) = als.EQ.alpha
1642 isame( 6 ) =
lce( as, aa, laa )
1643 isame( 7 ) = ldas.EQ.lda
1645 isame( 8 ) = rbets.EQ.rbeta
1647 isame( 8 ) = bets.EQ.beta
1650 isame( 9 ) =
lce( cs, cc, lcc )
1652 isame( 9 ) =
lceres( sname( 8: 9 ), uplo, n,
1655 isame( 10 ) = ldcs.EQ.ldc
1662 same = same.AND.isame( i )
1663 IF( .NOT.isame( i ) )
1664 $
WRITE( nout, fmt = 9998 )i
1690 CALL cmmch( transt,
'N', lj, 1, k,
1691 $ alpha, a( 1, jj ), nmax,
1692 $ a( 1, j ), nmax, beta,
1693 $ c( jj, j ), nmax, ct, g,
1694 $ cc( jc ), ldc, eps, err,
1695 $ fatal, nout, .true. )
1697 CALL cmmch(
'N', transt, lj, 1, k,
1698 $ alpha, a( jj, 1 ), nmax,
1699 $ a( j, 1 ), nmax, beta,
1700 $ c( jj, j ), nmax, ct, g,
1701 $ cc( jc ), ldc, eps, err,
1702 $ fatal, nout, .true. )
1709 errmax = max( errmax, err )
1731 IF( errmax.LT.thresh )
THEN
1732 IF ( iorder.EQ.0)
WRITE( nout, fmt = 10000 )sname, nc
1733 IF ( iorder.EQ.1)
WRITE( nout, fmt = 10001 )sname, nc
1735 IF ( iorder.EQ.0)
WRITE( nout, fmt = 10002 )sname, nc, errmax
1736 IF ( iorder.EQ.1)
WRITE( nout, fmt = 10003 )sname, nc, errmax
1742 $
WRITE( nout, fmt = 9995 )j
1745 WRITE( nout, fmt = 9996 )sname
1747 CALL cprcn6( nout, nc, sname, iorder, uplo, trans, n, k, ralpha,
1750 CALL cprcn4( nout, nc, sname, iorder, uplo, trans, n, k, alpha,
1757 10003
FORMAT(
' ', a12,
' COMPLETED THE ROW-MAJOR COMPUTATIONAL ',
1758 $
'TESTS (', i6,
' CALLS)', /
' ******* BUT WITH MAXIMUM TEST ',
1759 $
'RATIO ', f8.2,
' - SUSPECT *******' )
1760 10002
FORMAT(
' ', a12,
' COMPLETED THE COLUMN-MAJOR COMPUTATIONAL ',
1761 $
'TESTS (', i6,
' CALLS)', /
' ******* BUT WITH MAXIMUM TEST ',
1762 $
'RATIO ', f8.2,
' - SUSPECT *******' )
1763 10001
FORMAT(
' ', a12,
' PASSED THE ROW-MAJOR COMPUTATIONAL TESTS',
1764 $
' (', i6,
' CALL',
'S)' )
1765 10000
FORMAT(
' ', a12,
' PASSED THE COLUMN-MAJOR COMPUTATIONAL TESTS',
1766 $
' (', i6,
' CALL',
'S)' )
1767 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1768 $
'ANGED INCORRECTLY *******' )
1769 9996
FORMAT(
' ******* ', a12,
' FAILED ON CALL NUMBER:' )
1770 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
1771 9994
FORMAT(1x, i6,
': ', a12,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
1772 $ f4.1,
', A,', i3,
',', f4.1,
', C,', i3,
') ',
1774 9993
FORMAT(1x, i6,
': ', a12,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
1775 $
'(', f4.1,
',', f4.1,
') , A,', i3,
',(', f4.1,
',', f4.1,
1776 $
'), C,', i3,
') .' )
1777 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
subroutine cprcn4(NOUT, NC, SNAME, IORDER, UPLO, TRANSA, N, K, ALPHA, LDA, BETA, LDC)
subroutine cmmch(TRANSA, TRANSB, M, N, KK, ALPHA, A, LDA, B, LDB, BETA, C, LDC, CT, G, CC, LDCC, EPS, ERR, FATAL, NOUT, MV)
subroutine cprcn6(NOUT, NC, SNAME, IORDER, UPLO, TRANSA, N, K, ALPHA, LDA, BETA, LDC)
logical function lce(RI, RJ, LR)
subroutine cmake(TYPE, UPLO, DIAG, M, N, A, NMAX, AA, LDA, KL, KU, RESET, TRANSL)
logical function lceres(TYPE, UPLO, M, N, AA, AS, LDA)