1629 COMPLEX*16 ZERO, ONE
1630 parameter( zero = ( 0.0d0, 0.0d0 ),
1631 $ one = ( 1.0d0, 0.0d0 ) )
1632 DOUBLE PRECISION RONE, RZERO
1633 parameter( rone = 1.0d0, rzero = 0.0d0 )
1635 DOUBLE PRECISION EPS, THRESH
1636 INTEGER NALF, NBET, NIDIM, NMAX, NOUT, NTRA
1637 LOGICAL FATAL, REWI, TRACE
1640 COMPLEX*16 AA( NMAX*NMAX ), AB( 2*NMAX*NMAX ),
1641 $ ALF( NALF ), AS( NMAX*NMAX ), BB( NMAX*NMAX ),
1642 $ BET( NBET ), BS( NMAX*NMAX ), C( NMAX, NMAX ),
1643 $ CC( NMAX*NMAX ), CS( NMAX*NMAX ), CT( NMAX ),
1645 DOUBLE PRECISION G( NMAX )
1646 INTEGER IDIM( NIDIM )
1648 COMPLEX*16 ALPHA, ALS, BETA, BETS
1649 DOUBLE PRECISION ERR, ERRMAX, RBETA, RBETS
1650 INTEGER I, IA, IB, ICT, ICU, IK, IN, J, JC, JJ, JJAB,
1651 $ K, KS, LAA, LBB, LCC, LDA, LDAS, LDB, LDBS,
1652 $ LDC, LDCS, LJ, MA, N, NA, NARGS, NC, NS
1653 LOGICAL CONJ, NULL, RESET, SAME, TRAN, UPPER
1654 CHARACTER*1 TRANS, TRANSS, TRANST, UPLO, UPLOS
1655 CHARACTER*2 ICHT, ICHU
1664 INTRINSIC dcmplx, dconjg, max, dble
1666 INTEGER INFOT, NOUTC
1669 COMMON /infoc/infot, noutc, ok, lerr
1671 DATA icht/
'NC'/, ichu/
'UL'/
1673 conj = sname( 2: 3 ).EQ.
'HE'
1680 DO 130 in = 1, nidim
1691 DO 120 ik = 1, nidim
1695 trans = icht( ict: ict )
1697 IF( tran.AND..NOT.conj )
1718 CALL zmake(
'GE',
' ',
' ', ma, na, ab, 2*nmax, aa,
1719 $ lda, reset, zero )
1721 CALL zmake(
'GE',
' ',
' ', ma, na, ab, nmax, aa, lda,
1730 CALL zmake(
'GE',
' ',
' ', ma, na, ab( k + 1 ),
1731 $ 2*nmax, bb, ldb, reset, zero )
1733 CALL zmake(
'GE',
' ',
' ', ma, na, ab( k*nmax + 1 ),
1734 $ nmax, bb, ldb, reset, zero )
1738 uplo = ichu( icu: icu )
1747 rbeta = dble( beta )
1748 beta = dcmplx( rbeta, rzero )
1752 $ null = null.OR.( ( k.LE.0.OR.alpha.EQ.
1753 $ zero ).AND.rbeta.EQ.rone )
1757 CALL zmake( sname( 2: 3 ), uplo,
' ', n, n, c,
1758 $ nmax, cc, ldc, reset, zero )
1791 $
WRITE( ntra, fmt = 9994 )nc, sname, uplo,
1792 $ trans, n, k, alpha, lda, ldb, rbeta, ldc
1795 CALL zher2k( uplo, trans, n, k, alpha, aa,
1796 $ lda, bb, ldb, rbeta, cc, ldc )
1799 $
WRITE( ntra, fmt = 9993 )nc, sname, uplo,
1800 $ trans, n, k, alpha, lda, ldb, beta, ldc
1803 CALL zsyr2k( uplo, trans, n, k, alpha, aa,
1804 $ lda, bb, ldb, beta, cc, ldc )
1810 WRITE( nout, fmt = 9992 )
1817 isame( 1 ) = uplos.EQ.uplo
1818 isame( 2 ) = transs.EQ.trans
1819 isame( 3 ) = ns.EQ.n
1820 isame( 4 ) = ks.EQ.k
1821 isame( 5 ) = als.EQ.alpha
1822 isame( 6 ) =
lze( as, aa, laa )
1823 isame( 7 ) = ldas.EQ.lda
1824 isame( 8 ) =
lze( bs, bb, lbb )
1825 isame( 9 ) = ldbs.EQ.ldb
1827 isame( 10 ) = rbets.EQ.rbeta
1829 isame( 10 ) = bets.EQ.beta
1832 isame( 11 ) =
lze( cs, cc, lcc )
1834 isame( 11 ) =
lzeres(
'HE', uplo, n, n, cs,
1837 isame( 12 ) = ldcs.EQ.ldc
1844 same = same.AND.isame( i )
1845 IF( .NOT.isame( i ) )
1846 $
WRITE( nout, fmt = 9998 )i
1874 w( i ) = alpha*ab( ( j - 1 )*2*
1877 w( k + i ) = dconjg( alpha )*
1886 CALL zmmch( transt,
'N', lj, 1, 2*k,
1887 $ one, ab( jjab ), 2*nmax, w,
1888 $ 2*nmax, beta, c( jj, j ),
1889 $ nmax, ct, g, cc( jc ), ldc,
1890 $ eps, err, fatal, nout,
1895 w( i ) = alpha*dconjg( ab( ( k +
1896 $ i - 1 )*nmax + j ) )
1897 w( k + i ) = dconjg( alpha*
1898 $ ab( ( i - 1 )*nmax +
1901 w( i ) = alpha*ab( ( k + i - 1 )*
1904 $ ab( ( i - 1 )*nmax +
1908 CALL zmmch(
'N',
'N', lj, 1, 2*k, one,
1909 $ ab( jj ), nmax, w, 2*nmax,
1910 $ beta, c( jj, j ), nmax, ct,
1911 $ g, cc( jc ), ldc, eps, err,
1912 $ fatal, nout, .true. )
1919 $ jjab = jjab + 2*nmax
1921 errmax = max( errmax, err )
1943 IF( errmax.LT.thresh )
THEN
1944 WRITE( nout, fmt = 9999 )sname, nc
1946 WRITE( nout, fmt = 9997 )sname, nc, errmax
1952 $
WRITE( nout, fmt = 9995 )j
1955 WRITE( nout, fmt = 9996 )sname
1957 WRITE( nout, fmt = 9994 )nc, sname, uplo, trans, n, k, alpha,
1958 $ lda, ldb, rbeta, ldc
1960 WRITE( nout, fmt = 9993 )nc, sname, uplo, trans, n, k, alpha,
1961 $ lda, ldb, beta, ldc
1967 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1969 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1970 $
'ANGED INCORRECTLY *******' )
1971 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1972 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1973 $
' - SUSPECT *******' )
1974 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
1975 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
1976 9994
FORMAT( 1x, i6,
': ', a6,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
1977 $
'(', f4.1,
',', f4.1,
'), A,', i3,
', B,', i3,
',', f4.1,
1978 $
', C,', i3,
') .' )
1979 9993
FORMAT( 1x, i6,
': ', a6,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
1980 $
'(', f4.1,
',', f4.1,
'), A,', i3,
', B,', i3,
',(', f4.1,
1981 $
',', f4.1,
'), C,', i3,
') .' )
1982 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',