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