2138 COMPLEX zero, half, one
2139 parameter ( zero = ( 0.0, 0.0 ), half = ( 0.5, 0.0 ),
2140 $ one = ( 1.0, 0.0 ) )
2142 parameter ( rzero = 0.0 )
2145 INTEGER incmax, nalf, nidim, ninc, nmax, nout, ntra,
2147 LOGICAL fatal, rewi, trace
2150 COMPLEX a( nmax, nmax ), aa( nmax*nmax ), alf( nalf ),
2151 $ as( nmax*nmax ), x( nmax ), xs( nmax*incmax ),
2152 $ xx( nmax*incmax ), y( nmax ),
2153 $ ys( nmax*incmax ), yt( nmax ),
2154 $ yy( nmax*incmax ), z( nmax, 2 )
2156 INTEGER idim( nidim ), inc( ninc )
2158 COMPLEX alpha, als, transl
2160 INTEGER i, ia, ic, in, incx, incxs, incy, incys, ix,
2161 $ iy, j, ja, jj, laa, lda, ldas, lj, lx, ly, n,
2163 LOGICAL full, null, packed, reset, same, upper
2164 CHARACTER*1 uplo, uplos
2176 INTRINSIC abs, conjg, max
2178 INTEGER infot, noutc
2181 COMMON /infoc/infot, noutc, ok
2185 full = sname( 9: 9 ).EQ.
'e'
2186 packed = sname( 9: 9 ).EQ.
'p'
2190 ELSE IF( packed )
THEN
2198 DO 140 in = 1, nidim
2208 laa = ( n*( n + 1 ) )/2
2214 uplo = ich( ic: ic )
2215 IF (uplo.EQ.
'U')
THEN
2216 cuplo =
' CblasUpper'
2218 cuplo =
' CblasLower'
2229 CALL cmake(
'ge',
' ',
' ', 1, n, x, 1, xx, abs( incx ),
2230 $ 0, n - 1, reset, transl )
2233 xx( 1 + abs( incx )*( n/2 - 1 ) ) = zero
2243 CALL cmake(
'ge',
' ',
' ', 1, n, y, 1, yy,
2244 $ abs( incy ), 0, n - 1, reset, transl )
2247 yy( 1 + abs( incy )*( n/2 - 1 ) ) = zero
2252 null = n.LE.0.OR.alpha.EQ.zero
2257 CALL cmake( sname( 8: 9 ), uplo,
' ', n, n, a,
2258 $ nmax, aa, lda, n - 1, n - 1, reset,
2285 $
WRITE( ntra, fmt = 9993 )nc, sname, cuplo, n,
2286 $ alpha, incx, incy, lda
2289 CALL ccher2( iorder, uplo, n, alpha, xx, incx,
2290 $ yy, incy, aa, lda )
2291 ELSE IF( packed )
THEN
2293 $
WRITE( ntra, fmt = 9994 )nc, sname, cuplo, n,
2297 CALL cchpr2( iorder, uplo, n, alpha, xx, incx,
2304 WRITE( nout, fmt = 9992 )
2311 isame( 1 ) = uplo.EQ.uplos
2312 isame( 2 ) = ns.EQ.n
2313 isame( 3 ) = als.EQ.alpha
2314 isame( 4 ) =
lce( xs, xx, lx )
2315 isame( 5 ) = incxs.EQ.incx
2316 isame( 6 ) =
lce( ys, yy, ly )
2317 isame( 7 ) = incys.EQ.incy
2319 isame( 8 ) =
lce( as, aa, laa )
2321 isame( 8 ) =
lceres( sname( 8: 9 ), uplo, n, n,
2324 IF( .NOT.packed )
THEN
2325 isame( 9 ) = ldas.EQ.lda
2332 same = same.AND.isame( i )
2333 IF( .NOT.isame( i ) )
2334 $
WRITE( nout, fmt = 9998 )i
2351 z( i, 1 ) = x( n - i + 1 )
2360 z( i, 2 ) = y( n - i + 1 )
2365 w( 1 ) = alpha*conjg( z( j, 2 ) )
2366 w( 2 ) = conjg( alpha )*conjg( z( j, 1 ) )
2374 CALL cmvch(
'N', lj, 2, one, z( jj, 1 ),
2375 $ nmax, w, 1, one, a( jj, j ), 1,
2376 $ yt, g, aa( ja ), eps, err, fatal,
2387 errmax = max( errmax, err )
2410 IF( errmax.LT.thresh )
THEN
2411 WRITE( nout, fmt = 9999 )sname, nc
2413 WRITE( nout, fmt = 9997 )sname, nc, errmax
2418 WRITE( nout, fmt = 9995 )j
2421 WRITE( nout, fmt = 9996 )sname
2423 WRITE( nout, fmt = 9993 )nc, sname, cuplo, n, alpha, incx,
2425 ELSE IF( packed )
THEN
2426 WRITE( nout, fmt = 9994 )nc, sname, cuplo, n, alpha, incx, incy
2432 9999
FORMAT(
' ',a12,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
2434 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
2435 $
'ANGED INCORRECTLY *******' )
2436 9997
FORMAT(
' ',a12,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
2437 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
2438 $
' - SUSPECT *******' )
2439 9996
FORMAT(
' ******* ',a12,
' FAILED ON CALL NUMBER:' )
2440 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
2441 9994
FORMAT(1x, i6,
': ',a12,
'(', a14,
',', i3,
',(', f4.1,
',',
2442 $ f4.1,
'), X,', i2,
', Y,', i2,
', AP) .' )
2443 9993
FORMAT(1x, i6,
': ',a12,
'(', a14,
',', i3,
',(', f4.1,
',',
2444 $ f4.1,
'), X,', i2,
', Y,', i2,
', A,', i3,
') .' )
2445 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)