2066 COMPLEX zero, half, one
2067 parameter ( zero = ( 0.0, 0.0 ), half = ( 0.5, 0.0 ),
2068 $ one = ( 1.0, 0.0 ) )
2070 parameter ( rzero = 0.0 )
2073 INTEGER incmax, nalf, nidim, ninc, nmax, nout, ntra
2074 LOGICAL fatal, rewi, trace
2077 COMPLEX a( nmax, nmax ), aa( nmax*nmax ), alf( nalf ),
2078 $ as( nmax*nmax ), x( nmax ), xs( nmax*incmax ),
2079 $ xx( nmax*incmax ), y( nmax ),
2080 $ ys( nmax*incmax ), yt( nmax ),
2081 $ yy( nmax*incmax ), z( nmax, 2 )
2083 INTEGER idim( nidim ), inc( ninc )
2085 COMPLEX alpha, als, transl
2087 INTEGER i, ia, ic, in, incx, incxs, incy, incys, ix,
2088 $ iy, j, ja, jj, laa, lda, ldas, lj, lx, ly, n,
2090 LOGICAL full, null, packed, reset, same, upper
2091 CHARACTER*1 uplo, uplos
2102 INTRINSIC abs, conjg, max
2104 INTEGER infot, noutc
2107 COMMON /infoc/infot, noutc, ok, lerr
2111 full = sname( 3: 3 ).EQ.
'E'
2112 packed = sname( 3: 3 ).EQ.
'P'
2116 ELSE IF( packed )
THEN
2124 DO 140 in = 1, nidim
2134 laa = ( n*( n + 1 ) )/2
2140 uplo = ich( ic: ic )
2150 CALL cmake(
'GE',
' ',
' ', 1, n, x, 1, xx, abs( incx ),
2151 $ 0, n - 1, reset, transl )
2154 xx( 1 + abs( incx )*( n/2 - 1 ) ) = zero
2164 CALL cmake(
'GE',
' ',
' ', 1, n, y, 1, yy,
2165 $ abs( incy ), 0, n - 1, reset, transl )
2168 yy( 1 + abs( incy )*( n/2 - 1 ) ) = zero
2173 null = n.LE.0.OR.alpha.EQ.zero
2178 CALL cmake( sname( 2: 3 ), uplo,
' ', n, n, a,
2179 $ nmax, aa, lda, n - 1, n - 1, reset,
2206 $
WRITE( ntra, fmt = 9993 )nc, sname, uplo, n,
2207 $ alpha, incx, incy, lda
2210 CALL cher2( uplo, n, alpha, xx, incx, yy, incy,
2212 ELSE IF( packed )
THEN
2214 $
WRITE( ntra, fmt = 9994 )nc, sname, uplo, n,
2218 CALL chpr2( uplo, n, alpha, xx, incx, yy, incy,
2225 WRITE( nout, fmt = 9992 )
2232 isame( 1 ) = uplo.EQ.uplos
2233 isame( 2 ) = ns.EQ.n
2234 isame( 3 ) = als.EQ.alpha
2235 isame( 4 ) =
lce( xs, xx, lx )
2236 isame( 5 ) = incxs.EQ.incx
2237 isame( 6 ) =
lce( ys, yy, ly )
2238 isame( 7 ) = incys.EQ.incy
2240 isame( 8 ) =
lce( as, aa, laa )
2242 isame( 8 ) =
lceres( sname( 2: 3 ), uplo, n, n,
2245 IF( .NOT.packed )
THEN
2246 isame( 9 ) = ldas.EQ.lda
2253 same = same.AND.isame( i )
2254 IF( .NOT.isame( i ) )
2255 $
WRITE( nout, fmt = 9998 )i
2272 z( i, 1 ) = x( n - i + 1 )
2281 z( i, 2 ) = y( n - i + 1 )
2286 w( 1 ) = alpha*conjg( z( j, 2 ) )
2287 w( 2 ) = conjg( alpha )*conjg( z( j, 1 ) )
2295 CALL cmvch(
'N', lj, 2, one, z( jj, 1 ),
2296 $ nmax, w, 1, one, a( jj, j ), 1,
2297 $ yt, g, aa( ja ), eps, err, fatal,
2308 errmax = max( errmax, err )
2331 IF( errmax.LT.thresh )
THEN
2332 WRITE( nout, fmt = 9999 )sname, nc
2334 WRITE( nout, fmt = 9997 )sname, nc, errmax
2339 WRITE( nout, fmt = 9995 )j
2342 WRITE( nout, fmt = 9996 )sname
2344 WRITE( nout, fmt = 9993 )nc, sname, uplo, n, alpha, incx,
2346 ELSE IF( packed )
THEN
2347 WRITE( nout, fmt = 9994 )nc, sname, uplo, n, alpha, incx, incy
2353 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
2355 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
2356 $
'ANGED INCORRECTLY *******' )
2357 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
2358 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
2359 $
' - SUSPECT *******' )
2360 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
2361 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
2362 9994
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',(', f4.1,
',',
2363 $ f4.1,
'), X,', i2,
', Y,', i2,
', AP) ',
2365 9993
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',(', f4.1,
',',
2366 $ f4.1,
'), X,', i2,
', Y,', i2,
', A,', i3,
') ',
2368 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 chpr2(UPLO, N, ALPHA, X, INCX, Y, INCY, AP)
CHPR2
subroutine cmake(TYPE, UPLO, DIAG, M, N, A, NMAX, AA, LDA, KL, KU, RESET, TRANSL)
subroutine cher2(UPLO, N, ALPHA, X, INCX, Y, INCY, A, LDA)
CHER2
logical function lceres(TYPE, UPLO, M, N, AA, AS, LDA)