1849 COMPLEX*16 zero, half, one
1850 parameter ( zero = ( 0.0d0, 0.0d0 ),
1851 $ half = ( 0.5d0, 0.0d0 ),
1852 $ one = ( 1.0d0, 0.0d0 ) )
1853 DOUBLE PRECISION rzero
1854 parameter ( rzero = 0.0d0 )
1856 DOUBLE PRECISION eps, thresh
1857 INTEGER incmax, nalf, nidim, ninc, nmax, nout, ntra,
1859 LOGICAL fatal, rewi, trace
1862 COMPLEX*16 a( nmax, nmax ), aa( nmax*nmax ), alf( nalf ),
1863 $ as( nmax*nmax ), x( nmax ), xs( nmax*incmax ),
1864 $ xx( nmax*incmax ), y( nmax ),
1865 $ ys( nmax*incmax ), yt( nmax ),
1866 $ yy( nmax*incmax ), z( nmax )
1867 DOUBLE PRECISION g( nmax )
1868 INTEGER idim( nidim ), inc( ninc )
1870 COMPLEX*16 alpha, transl
1871 DOUBLE PRECISION err, errmax, ralpha, rals
1872 INTEGER i, ia, ic, in, incx, incxs, ix, j, ja, jj, laa,
1873 $ lda, ldas, lj, lx, n, nargs, nc, ns
1874 LOGICAL full, null, packed, reset, same, upper
1875 CHARACTER*1 uplo, uplos
1887 INTRINSIC abs, dcmplx, dconjg, max, dble
1889 INTEGER infot, noutc
1892 COMMON /infoc/infot, noutc, ok
1896 full = sname( 9: 9 ).EQ.
'e'
1897 packed = sname( 9: 9 ).EQ.
'p'
1901 ELSE IF( packed )
THEN
1909 DO 100 in = 1, nidim
1919 laa = ( n*( n + 1 ) )/2
1925 uplo = ich( ic: ic )
1926 IF (uplo.EQ.
'U')
THEN
1927 cuplo =
' CblasUpper'
1929 cuplo =
' CblasLower'
1940 CALL zmake(
'ge',
' ',
' ', 1, n, x, 1, xx, abs( incx ),
1941 $ 0, n - 1, reset, transl )
1944 xx( 1 + abs( incx )*( n/2 - 1 ) ) = zero
1948 ralpha = dble( alf( ia ) )
1949 alpha = dcmplx( ralpha, rzero )
1950 null = n.LE.0.OR.ralpha.EQ.rzero
1955 CALL zmake( sname( 8: 9 ), uplo,
' ', n, n, a, nmax,
1956 $ aa, lda, n - 1, n - 1, reset, transl )
1978 $
WRITE( ntra, fmt = 9993 )nc, sname, cuplo, n,
1982 CALL czher( iorder, uplo, n, ralpha, xx,
1984 ELSE IF( packed )
THEN
1986 $
WRITE( ntra, fmt = 9994 )nc, sname, cuplo, n,
1990 CALL czhpr( iorder, uplo, n, ralpha,
1997 WRITE( nout, fmt = 9992 )
2004 isame( 1 ) = uplo.EQ.uplos
2005 isame( 2 ) = ns.EQ.n
2006 isame( 3 ) = rals.EQ.ralpha
2007 isame( 4 ) =
lze( xs, xx, lx )
2008 isame( 5 ) = incxs.EQ.incx
2010 isame( 6 ) =
lze( as, aa, laa )
2012 isame( 6 ) =
lzeres( sname( 8: 9 ), uplo, n, n, as,
2015 IF( .NOT.packed )
THEN
2016 isame( 7 ) = ldas.EQ.lda
2023 same = same.AND.isame( i )
2024 IF( .NOT.isame( i ) )
2025 $
WRITE( nout, fmt = 9998 )i
2042 z( i ) = x( n - i + 1 )
2047 w( 1 ) = dconjg( z( j ) )
2055 CALL zmvch(
'N', lj, 1, alpha, z( jj ), lj, w,
2056 $ 1, one, a( jj, j ), 1, yt, g,
2057 $ aa( ja ), eps, err, fatal, nout,
2068 errmax = max( errmax, err )
2089 IF( errmax.LT.thresh )
THEN
2090 WRITE( nout, fmt = 9999 )sname, nc
2092 WRITE( nout, fmt = 9997 )sname, nc, errmax
2097 WRITE( nout, fmt = 9995 )j
2100 WRITE( nout, fmt = 9996 )sname
2102 WRITE( nout, fmt = 9993 )nc, sname, cuplo, n, ralpha, incx, lda
2103 ELSE IF( packed )
THEN
2104 WRITE( nout, fmt = 9994 )nc, sname, cuplo, n, ralpha, incx
2110 9999
FORMAT(
' ',a12,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
2112 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
2113 $
'ANGED INCORRECTLY *******' )
2114 9997
FORMAT(
' ',a12,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
2115 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
2116 $
' - SUSPECT *******' )
2117 9996
FORMAT(
' ******* ',a12,
' FAILED ON CALL NUMBER:' )
2118 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
2119 9994
FORMAT(1x, i6,
': ',a12,
'(', a14,
',', i3,
',', f4.1,
', X,',
2121 9993
FORMAT(1x, i6,
': ',a12,
'(', a14,
',', i3,
',', f4.1,
', X,',
2122 $ i2,
', A,', i3,
') .' )
2123 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
logical function lzeres(TYPE, UPLO, M, N, AA, AS, LDA)
subroutine zmake(TYPE, UPLO, DIAG, M, N, A, NMAX, AA, LDA, KL, KU, RESET, TRANSL)
logical function lze(RI, RJ, LR)
subroutine zmvch(TRANS, M, N, ALPHA, A, NMAX, X, INCX, BETA, Y, INCY, YT, G, YY, EPS, ERR, FATAL, NOUT, MV)