1868 COMPLEX*16 ZERO, ONE
1869 parameter( zero = ( 0.0d0, 0.0d0 ), one = ( 1.0d0, 0.0d0 ) )
1870 DOUBLE PRECISION RONE, RZERO
1871 parameter( rone = 1.0d0, rzero = 0.0d0 )
1873 DOUBLE PRECISION EPS, THRESH
1874 INTEGER NALF, NBET, NIDIM, NMAX, NOUT, NTRA, IORDER
1875 LOGICAL FATAL, REWI, TRACE
1878 COMPLEX*16 AA( NMAX*NMAX ), AB( 2*NMAX*NMAX ),
1879 $ ALF( NALF ), AS( NMAX*NMAX ), BB( NMAX*NMAX ),
1880 $ BET( NBET ), BS( NMAX*NMAX ), C( NMAX, NMAX ),
1881 $ CC( NMAX*NMAX ), CS( NMAX*NMAX ), CT( NMAX ),
1883 DOUBLE PRECISION G( NMAX )
1884 INTEGER IDIM( NIDIM )
1886 COMPLEX*16 ALPHA, ALS, BETA, BETS
1887 DOUBLE PRECISION ERR, ERRMAX, RBETA, RBETS
1888 INTEGER I, IA, IB, ICT, ICU, IK, IN, J, JC, JJ, JJAB,
1889 $ K, KS, LAA, LBB, LCC, LDA, LDAS, LDB, LDBS,
1890 $ LDC, LDCS, LJ, MA, N, NA, NARGS, NC, NS
1891 LOGICAL CONJ, NULL, RESET, SAME, TRAN, UPPER
1892 CHARACTER*1 TRANS, TRANSS, TRANST, UPLO, UPLOS
1893 CHARACTER*2 ICHT, ICHU
1902 INTRINSIC dcmplx, dconjg, max, dble
1904 INTEGER INFOT, NOUTC
1907 COMMON /infoc/infot, noutc, ok, lerr
1909 DATA icht/
'NC'/, ichu/
'UL'/
1911 conj = sname( 8: 9 ).EQ.
'he'
1918 DO 130 in = 1, nidim
1929 DO 120 ik = 1, nidim
1933 trans = icht( ict: ict )
1935 IF( tran.AND..NOT.conj )
1956 CALL zmake(
'ge',
' ',
' ', ma, na, ab, 2*nmax, aa,
1957 $ lda, reset, zero )
1959 CALL zmake(
'ge',
' ',
' ', ma, na, ab, nmax, aa, lda,
1968 CALL zmake(
'ge',
' ',
' ', ma, na, ab( k + 1 ),
1969 $ 2*nmax, bb, ldb, reset, zero )
1971 CALL zmake(
'ge',
' ',
' ', ma, na, ab( k*nmax + 1 ),
1972 $ nmax, bb, ldb, reset, zero )
1976 uplo = ichu( icu: icu )
1985 rbeta = dble( beta )
1986 beta = dcmplx( rbeta, rzero )
1990 $ null = null.OR.( ( k.LE.0.OR.alpha.EQ.
1991 $ zero ).AND.rbeta.EQ.rone )
1995 CALL zmake( sname( 8: 9 ), uplo,
' ', n, n, c,
1996 $ nmax, cc, ldc, reset, zero )
2029 $
CALL zprcn7( ntra, nc, sname, iorder,
2030 $ uplo, trans, n, k, alpha, lda, ldb,
2034 CALL czher2k( iorder, uplo, trans, n, k,
2035 $ alpha, aa, lda, bb, ldb, rbeta,
2039 $
CALL zprcn5( ntra, nc, sname, iorder,
2040 $ uplo, trans, n, k, alpha, lda, ldb,
2044 CALL czsyr2k( iorder, uplo, trans, n, k,
2045 $ alpha, aa, lda, bb, ldb, beta,
2052 WRITE( nout, fmt = 9992 )
2059 isame( 1 ) = uplos.EQ.uplo
2060 isame( 2 ) = transs.EQ.trans
2061 isame( 3 ) = ns.EQ.n
2062 isame( 4 ) = ks.EQ.k
2063 isame( 5 ) = als.EQ.alpha
2064 isame( 6 ) =
lze( as, aa, laa )
2065 isame( 7 ) = ldas.EQ.lda
2066 isame( 8 ) =
lze( bs, bb, lbb )
2067 isame( 9 ) = ldbs.EQ.ldb
2069 isame( 10 ) = rbets.EQ.rbeta
2071 isame( 10 ) = bets.EQ.beta
2074 isame( 11 ) =
lze( cs, cc, lcc )
2076 isame( 11 ) =
lzeres(
'he', uplo, n, n, cs,
2079 isame( 12 ) = ldcs.EQ.ldc
2086 same = same.AND.isame( i )
2087 IF( .NOT.isame( i ) )
2088 $
WRITE( nout, fmt = 9998 )i
2116 w( i ) = alpha*ab( ( j - 1 )*2*
2119 w( k + i ) = dconjg( alpha )*
2128 CALL zmmch( transt,
'N', lj, 1, 2*k,
2129 $ one, ab( jjab ), 2*nmax, w,
2130 $ 2*nmax, beta, c( jj, j ),
2131 $ nmax, ct, g, cc( jc ), ldc,
2132 $ eps, err, fatal, nout,
2137 w( i ) = alpha*dconjg( ab( ( k +
2138 $ i - 1 )*nmax + j ) )
2139 w( k + i ) = dconjg( alpha*
2140 $ ab( ( i - 1 )*nmax +
2143 w( i ) = alpha*ab( ( k + i - 1 )*
2146 $ ab( ( i - 1 )*nmax +
2150 CALL zmmch(
'N',
'N', lj, 1, 2*k, one,
2151 $ ab( jj ), nmax, w, 2*nmax,
2152 $ beta, c( jj, j ), nmax, ct,
2153 $ g, cc( jc ), ldc, eps, err,
2154 $ fatal, nout, .true. )
2161 $ jjab = jjab + 2*nmax
2163 errmax = max( errmax, err )
2185 IF( errmax.LT.thresh )
THEN
2186 IF ( iorder.EQ.0)
WRITE( nout, fmt = 10000 )sname, nc
2187 IF ( iorder.EQ.1)
WRITE( nout, fmt = 10001 )sname, nc
2189 IF ( iorder.EQ.0)
WRITE( nout, fmt = 10002 )sname, nc, errmax
2190 IF ( iorder.EQ.1)
WRITE( nout, fmt = 10003 )sname, nc, errmax
2196 $
WRITE( nout, fmt = 9995 )j
2199 WRITE( nout, fmt = 9996 )sname
2201 CALL zprcn7( nout, nc, sname, iorder, uplo, trans, n, k,
2202 $ alpha, lda, ldb, rbeta, ldc)
2204 CALL zprcn5( nout, nc, sname, iorder, uplo, trans, n, k,
2205 $ alpha, lda, ldb, beta, ldc)
2211 10003
FORMAT(
' ', a12,
' COMPLETED THE ROW-MAJOR COMPUTATIONAL ',
2212 $
'TESTS (', i6,
' CALLS)', /
' ******* BUT WITH MAXIMUM TEST ',
2213 $
'RATIO ', f8.2,
' - SUSPECT *******' )
2214 10002
FORMAT(
' ', a12,
' COMPLETED THE COLUMN-MAJOR COMPUTATIONAL ',
2215 $
'TESTS (', i6,
' CALLS)', /
' ******* BUT WITH MAXIMUM TEST ',
2216 $
'RATIO ', f8.2,
' - SUSPECT *******' )
2217 10001
FORMAT(
' ', a12,
' PASSED THE ROW-MAJOR COMPUTATIONAL TESTS',
2218 $
' (', i6,
' CALL',
'S)' )
2219 10000
FORMAT(
' ', a12,
' PASSED THE COLUMN-MAJOR COMPUTATIONAL TESTS',
2220 $
' (', i6,
' CALL',
'S)' )
2221 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
2222 $
'ANGED INCORRECTLY *******' )
2223 9996
FORMAT(
' ******* ', a12,
' FAILED ON CALL NUMBER:' )
2224 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
2225 9994
FORMAT(1x, i6,
': ', a12,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
2226 $
'(', f4.1,
',', f4.1,
'), A,', i3,
', B,', i3,
',', f4.1,
2227 $
', C,', i3,
') .' )
2228 9993
FORMAT(1x, i6,
': ', a12,
'(', 2(
'''', a1,
''',' ), 2( i3,
',' ),
2229 $
'(', f4.1,
',', f4.1,
'), A,', i3,
', B,', i3,
',(', f4.1,
2230 $
',', f4.1,
'), C,', i3,
') .' )
2231 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',