1845 COMPLEX ZERO, HALF, ONE
1846 parameter( zero = ( 0.0, 0.0 ), half = ( 0.5, 0.0 ),
1847 $ one = ( 1.0, 0.0 ) )
1849 parameter( rzero = 0.0 )
1852 INTEGER INCMAX, NALF, NIDIM, NINC, NMAX, NOUT, NTRA,
1854 LOGICAL FATAL, REWI, TRACE
1857 COMPLEX A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
1858 $ AS( NMAX*NMAX ), X( NMAX ), XS( NMAX*INCMAX ),
1859 $ XX( NMAX*INCMAX ), Y( NMAX ),
1860 $ YS( NMAX*INCMAX ), YT( NMAX ),
1861 $ YY( NMAX*INCMAX ), Z( NMAX )
1863 INTEGER IDIM( NIDIM ), INC( NINC )
1865 COMPLEX ALPHA, TRANSL
1866 REAL ERR, ERRMAX, RALPHA, RALS
1867 INTEGER I, IA, IC, IN, INCX, INCXS, IX, J, JA, JJ, LAA,
1868 $ LDA, LDAS, LJ, LX, N, NARGS, NC, NS
1869 LOGICAL FULL, NULL, PACKED, RESET, SAME, UPPER
1870 CHARACTER*1 UPLO, UPLOS
1882 INTRINSIC abs, cmplx, conjg, max, real
1884 INTEGER INFOT, NOUTC
1887 COMMON /infoc/infot, noutc, ok
1891 full = sname( 9: 9 ).EQ.
'e'
1892 packed = sname( 9: 9 ).EQ.
'p'
1896 ELSE IF( packed )
THEN
1904 DO 100 in = 1, nidim
1914 laa = ( n*( n + 1 ) )/2
1920 uplo = ich( ic: ic )
1921 IF (uplo.EQ.
'U')
THEN
1922 cuplo =
' CblasUpper'
1924 cuplo =
' CblasLower'
1935 CALL cmake(
'ge',
' ',
' ', 1, n, x, 1, xx, abs( incx ),
1936 $ 0, n - 1, reset, transl )
1939 xx( 1 + abs( incx )*( n/2 - 1 ) ) = zero
1943 ralpha = real( alf( ia ) )
1944 alpha = cmplx( ralpha, rzero )
1945 null = n.LE.0.OR.ralpha.EQ.rzero
1950 CALL cmake( sname( 8: 9 ), uplo,
' ', n, n, a, nmax,
1951 $ aa, lda, n - 1, n - 1, reset, transl )
1973 $
WRITE( ntra, fmt = 9993 )nc, sname, cuplo, n,
1977 CALL ccher( iorder, uplo, n, ralpha, xx,
1979 ELSE IF( packed )
THEN
1981 $
WRITE( ntra, fmt = 9994 )nc, sname, cuplo, n,
1985 CALL cchpr( iorder, uplo, n, ralpha,
1992 WRITE( nout, fmt = 9992 )
1999 isame( 1 ) = uplo.EQ.uplos
2000 isame( 2 ) = ns.EQ.n
2001 isame( 3 ) = rals.EQ.ralpha
2002 isame( 4 ) =
lce( xs, xx, lx )
2003 isame( 5 ) = incxs.EQ.incx
2005 isame( 6 ) =
lce( as, aa, laa )
2007 isame( 6 ) =
lceres( sname( 8: 9 ), uplo, n, n, as,
2010 IF( .NOT.packed )
THEN
2011 isame( 7 ) = ldas.EQ.lda
2018 same = same.AND.isame( i )
2019 IF( .NOT.isame( i ) )
2020 $
WRITE( nout, fmt = 9998 )i
2037 z( i ) = x( n - i + 1 )
2042 w( 1 ) = conjg( z( j ) )
2050 CALL cmvch(
'N', lj, 1, alpha, z( jj ), lj, w,
2051 $ 1, one, a( jj, j ), 1, yt, g,
2052 $ aa( ja ), eps, err, fatal, nout,
2063 errmax = max( errmax, err )
2084 IF( errmax.LT.thresh )
THEN
2085 WRITE( nout, fmt = 9999 )sname, nc
2087 WRITE( nout, fmt = 9997 )sname, nc, errmax
2092 WRITE( nout, fmt = 9995 )j
2095 WRITE( nout, fmt = 9996 )sname
2097 WRITE( nout, fmt = 9993 )nc, sname, cuplo, n, ralpha, incx, lda
2098 ELSE IF( packed )
THEN
2099 WRITE( nout, fmt = 9994 )nc, sname, cuplo, n, ralpha, incx
2105 9999
FORMAT(
' ',a12,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
2107 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
2108 $
'ANGED INCORRECTLY *******' )
2109 9997
FORMAT(
' ',a12,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
2110 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
2111 $
' - SUSPECT *******' )
2112 9996
FORMAT(
' ******* ',a12,
' FAILED ON CALL NUMBER:' )
2113 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
2114 9994
FORMAT(1x, i6,
': ',a12,
'(', a14,
',', i3,
',', f4.1,
', X,',
2116 9993
FORMAT(1x, i6,
': ',a12,
'(', a14,
',', i3,
',', f4.1,
', X,',
2117 $ i2,
', A,', i3,
') .' )
2118 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',