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 *',
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)