1782 COMPLEX ZERO, HALF, ONE
1783 parameter( zero = ( 0.0, 0.0 ), half = ( 0.5, 0.0 ),
1784 $ one = ( 1.0, 0.0 ) )
1786 parameter( rzero = 0.0 )
1789 INTEGER INCMAX, NALF, NIDIM, NINC, NMAX, NOUT, NTRA
1790 LOGICAL FATAL, REWI, TRACE
1793 COMPLEX A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
1794 $ AS( NMAX*NMAX ), X( NMAX ), XS( NMAX*INCMAX ),
1795 $ XX( NMAX*INCMAX ), Y( NMAX ),
1796 $ YS( NMAX*INCMAX ), YT( NMAX ),
1797 $ YY( NMAX*INCMAX ), Z( NMAX )
1799 INTEGER IDIM( NIDIM ), INC( NINC )
1801 COMPLEX ALPHA, TRANSL
1802 REAL ERR, ERRMAX, RALPHA, RALS
1803 INTEGER I, IA, IC, IN, INCX, INCXS, IX, J, JA, JJ, LAA,
1804 $ LDA, LDAS, LJ, LX, N, NARGS, NC, NS
1805 LOGICAL FULL, NULL, PACKED, RESET, SAME, UPPER
1806 CHARACTER*1 UPLO, UPLOS
1817 INTRINSIC abs, cmplx, conjg, max, real
1819 INTEGER INFOT, NOUTC
1822 COMMON /infoc/infot, noutc, ok, lerr
1826 full = sname( 3: 3 ).EQ.
'E'
1827 packed = sname( 3: 3 ).EQ.
'P'
1831 ELSE IF( packed )
THEN
1839 DO 100 in = 1, nidim
1849 laa = ( n*( n + 1 ) )/2
1855 uplo = ich( ic: ic )
1865 CALL cmake(
'GE',
' ',
' ', 1, n, x, 1, xx, abs( incx ),
1866 $ 0, n - 1, reset, transl )
1869 xx( 1 + abs( incx )*( n/2 - 1 ) ) = zero
1873 ralpha = real( alf( ia ) )
1874 alpha = cmplx( ralpha, rzero )
1875 null = n.LE.0.OR.ralpha.EQ.rzero
1880 CALL cmake( sname( 2: 3 ), uplo,
' ', n, n, a, nmax,
1881 $ aa, lda, n - 1, n - 1, reset, transl )
1903 $
WRITE( ntra, fmt = 9993 )nc, sname, uplo, n,
1907 CALL cher( uplo, n, ralpha, xx, incx, aa, lda )
1908 ELSE IF( packed )
THEN
1910 $
WRITE( ntra, fmt = 9994 )nc, sname, uplo, n,
1914 CALL chpr( uplo, n, ralpha, xx, incx, aa )
1920 WRITE( nout, fmt = 9992 )
1927 isame( 1 ) = uplo.EQ.uplos
1928 isame( 2 ) = ns.EQ.n
1929 isame( 3 ) = rals.EQ.ralpha
1930 isame( 4 ) =
lce( xs, xx, lx )
1931 isame( 5 ) = incxs.EQ.incx
1933 isame( 6 ) =
lce( as, aa, laa )
1935 isame( 6 ) =
lceres( sname( 2: 3 ), uplo, n, n, as,
1938 IF( .NOT.packed )
THEN
1939 isame( 7 ) = ldas.EQ.lda
1946 same = same.AND.isame( i )
1947 IF( .NOT.isame( i ) )
1948 $
WRITE( nout, fmt = 9998 )i
1965 z( i ) = x( n - i + 1 )
1970 w( 1 ) = conjg( z( j ) )
1978 CALL cmvch(
'N', lj, 1, alpha, z( jj ), lj, w,
1979 $ 1, one, a( jj, j ), 1, yt, g,
1980 $ aa( ja ), eps, err, fatal, nout,
1991 errmax = max( errmax, err )
2012 IF( errmax.LT.thresh )
THEN
2013 WRITE( nout, fmt = 9999 )sname, nc
2015 WRITE( nout, fmt = 9997 )sname, nc, errmax
2020 WRITE( nout, fmt = 9995 )j
2023 WRITE( nout, fmt = 9996 )sname
2025 WRITE( nout, fmt = 9993 )nc, sname, uplo, n, ralpha, incx, lda
2026 ELSE IF( packed )
THEN
2027 WRITE( nout, fmt = 9994 )nc, sname, uplo, n, ralpha, incx
2033 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
2035 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
2036 $
'ANGED INCORRECTLY *******' )
2037 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
2038 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
2039 $
' - SUSPECT *******' )
2040 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
2041 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
2042 9994
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',', f4.1,
', X,',
2044 9993
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',', f4.1,
', X,',
2045 $ i2,
', A,', i3,
') .' )
2046 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',