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 *',
subroutine cher(UPLO, N, ALPHA, X, INCX, A, LDA)
CHER
subroutine chpr(UPLO, N, ALPHA, X, INCX, AP)
CHPR
subroutine cmvch(TRANS, M, N, ALPHA, A, NMAX, X, INCX, BETA, Y, INCY, YT, G, YY, EPS, ERR, FATAL, NOUT, MV)
logical function lce(RI, RJ, LR)
subroutine cmake(TYPE, UPLO, DIAG, M, N, A, NMAX, AA, LDA, KL, KU, RESET, TRANSL)
logical function lceres(TYPE, UPLO, M, N, AA, AS, LDA)