1459 parameter( zero = ( 0.0d0, 0.0d0 ) )
1460 DOUBLE PRECISION RONE, RZERO
1461 parameter( rone = 1.0d0, rzero = 0.0d0 )
1463 DOUBLE PRECISION EPS, THRESH
1464 INTEGER NALF, NBET, NIDIM, NMAX, NOUT, NTRA, IORDER
1465 LOGICAL FATAL, REWI, TRACE
1468 COMPLEX*16 A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
1469 $ AS( NMAX*NMAX ), B( NMAX, NMAX ),
1470 $ BB( NMAX*NMAX ), BET( NBET ), BS( NMAX*NMAX ),
1471 $ C( NMAX, NMAX ), CC( NMAX*NMAX ),
1472 $ CS( NMAX*NMAX ), CT( NMAX )
1473 DOUBLE PRECISION G( NMAX )
1474 INTEGER IDIM( NIDIM )
1476 COMPLEX*16 ALPHA, ALS, BETA, BETS
1477 DOUBLE PRECISION ERR, ERRMAX, RALPHA, RALS, RBETA, RBETS
1478 INTEGER I, IA, IB, ICT, ICU, IK, IN, J, JC, JJ, K, KS,
1479 $ LAA, LCC, LDA, LDAS, LDC, LDCS, LJ, MA, N, NA,
1481 LOGICAL CONJ, NULL, RESET, SAME, TRAN, UPPER
1482 CHARACTER*1 TRANS, TRANSS, TRANST, UPLO, UPLOS
1483 CHARACTER*2 ICHT, ICHU
1492 INTRINSIC dcmplx, max, dble
1494 INTEGER INFOT, NOUTC
1497 COMMON /infoc/infot, noutc, ok, lerr
1499 DATA icht/
'NC'/, ichu/
'UL'/
1501 conj = sname( 8: 9 ).EQ.
'he'
1508 DO 100 in = 1, nidim
1523 trans = icht( ict: ict )
1525 IF( tran.AND..NOT.conj )
1545 CALL zmake(
'ge',
' ',
' ', ma, na, a, nmax, aa, lda,
1549 uplo = ichu( icu: icu )
1555 ralpha = dble( alpha )
1556 alpha = dcmplx( ralpha, rzero )
1562 rbeta = dble( beta )
1563 beta = dcmplx( rbeta, rzero )
1567 $ null = null.OR.( ( k.LE.0.OR.ralpha.EQ.
1568 $ rzero ).AND.rbeta.EQ.rone )
1572 CALL zmake( sname( 8: 9 ), uplo,
' ', n, n, c,
1573 $ nmax, cc, ldc, reset, zero )
1606 $
CALL zprcn6( ntra, nc, sname, iorder,
1607 $ uplo, trans, n, k, ralpha, lda, rbeta,
1611 CALL czherk( iorder, uplo, trans, n, k,
1612 $ ralpha, aa, lda, rbeta, cc,
1616 $
CALL zprcn4( ntra, nc, sname, iorder,
1617 $ uplo, trans, n, k, alpha, lda, beta, ldc)
1620 CALL czsyrk( iorder, uplo, trans, n, k,
1621 $ alpha, aa, lda, beta, cc, ldc )
1627 WRITE( nout, fmt = 9992 )
1634 isame( 1 ) = uplos.EQ.uplo
1635 isame( 2 ) = transs.EQ.trans
1636 isame( 3 ) = ns.EQ.n
1637 isame( 4 ) = ks.EQ.k
1639 isame( 5 ) = rals.EQ.ralpha
1641 isame( 5 ) = als.EQ.alpha
1643 isame( 6 ) =
lze( as, aa, laa )
1644 isame( 7 ) = ldas.EQ.lda
1646 isame( 8 ) = rbets.EQ.rbeta
1648 isame( 8 ) = bets.EQ.beta
1651 isame( 9 ) =
lze( cs, cc, lcc )
1653 isame( 9 ) =
lzeres( sname( 8: 9 ), uplo, n,
1656 isame( 10 ) = ldcs.EQ.ldc
1663 same = same.AND.isame( i )
1664 IF( .NOT.isame( i ) )
1665 $
WRITE( nout, fmt = 9998 )i
1691 CALL zmmch( transt,
'N', lj, 1, k,
1692 $ alpha, a( 1, jj ), nmax,
1693 $ a( 1, j ), nmax, beta,
1694 $ c( jj, j ), nmax, ct, g,
1695 $ cc( jc ), ldc, eps, err,
1696 $ fatal, nout, .true. )
1698 CALL zmmch(
'N', transt, lj, 1, k,
1699 $ alpha, a( jj, 1 ), nmax,
1700 $ a( j, 1 ), nmax, beta,
1701 $ c( jj, j ), nmax, ct, g,
1702 $ cc( jc ), ldc, eps, err,
1703 $ fatal, nout, .true. )
1710 errmax = max( errmax, err )
1732 IF( errmax.LT.thresh )
THEN
1733 IF ( iorder.EQ.0)
WRITE( nout, fmt = 10000 )sname, nc
1734 IF ( iorder.EQ.1)
WRITE( nout, fmt = 10001 )sname, nc
1736 IF ( iorder.EQ.0)
WRITE( nout, fmt = 10002 )sname, nc, errmax
1737 IF ( iorder.EQ.1)
WRITE( nout, fmt = 10003 )sname, nc, errmax
1743 $
WRITE( nout, fmt = 9995 )j
1746 WRITE( nout, fmt = 9996 )sname
1748 CALL zprcn6( nout, nc, sname, iorder, uplo, trans, n, k, ralpha,
1751 CALL zprcn4( nout, nc, sname, iorder, uplo, trans, n, k, alpha,
1758 10003
FORMAT(
' ', a12,
' COMPLETED THE ROW-MAJOR COMPUTATIONAL ',
1759 $
'TESTS (', i6,
' CALLS)', /
' ******* BUT WITH MAXIMUM TEST ',
1760 $
'RATIO ', f8.2,
' - SUSPECT *******' )
1761 10002
FORMAT(
' ', a12,
' COMPLETED THE COLUMN-MAJOR COMPUTATIONAL ',
1762 $
'TESTS (', i6,
' CALLS)', /
' ******* BUT WITH MAXIMUM TEST ',
1763 $
'RATIO ', f8.2,
' - SUSPECT *******' )
1764 10001
FORMAT(
' ', a12,
' PASSED THE ROW-MAJOR COMPUTATIONAL TESTS',
1765 $
' (', i6,
' CALL',
'S)' )
1766 10000
FORMAT(
' ', a12,
' PASSED THE COLUMN-MAJOR COMPUTATIONAL TESTS',
1767 $
' (', i6,
' CALL',
'S)' )
1768 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1769 $
'ANGED INCORRECTLY *******' )
1770 9996
FORMAT(
' ******* ', a12,
' FAILED ON CALL NUMBER:' )
1771 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
1772 9994
FORMAT(1x, i6,
': ', a12,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
1773 $ f4.1,
', A,', i3,
',', f4.1,
', C,', i3,
') ',
1775 9993
FORMAT(1x, i6,
': ', a12,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
1776 $
'(', f4.1,
',', f4.1,
') , A,', i3,
',(', f4.1,
',', f4.1,
1777 $
'), C,', i3,
') .' )
1778 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',