2024 REAL ZERO, HALF, ONE
2025 parameter( zero = 0.0, half = 0.5, one = 1.0 )
2028 INTEGER INCMAX, NALF, NIDIM, NINC, NMAX, NOUT, NTRA
2029 LOGICAL FATAL, REWI, TRACE
2032 REAL A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
2033 $ AS( NMAX*NMAX ), G( NMAX ), X( NMAX ),
2034 $ XS( NMAX*INCMAX ), XX( NMAX*INCMAX ),
2035 $ Y( NMAX ), YS( NMAX*INCMAX ), YT( NMAX ),
2036 $ YY( NMAX*INCMAX ), Z( NMAX, 2 )
2037 INTEGER IDIM( NIDIM ), INC( NINC )
2039 REAL ALPHA, ALS, ERR, ERRMAX, TRANSL
2040 INTEGER I, IA, IC, IN, INCX, INCXS, INCY, INCYS, IX,
2041 $ IY, J, JA, JJ, LAA, LDA, LDAS, LJ, LX, LY, N,
2043 LOGICAL FULL, NULL, PACKED, RESET, SAME, UPPER
2044 CHARACTER*1 UPLO, UPLOS
2057 INTEGER INFOT, NOUTC
2060 COMMON /infoc/infot, noutc, ok, lerr
2064 full = sname( 3: 3 ).EQ.
'Y'
2065 packed = sname( 3: 3 ).EQ.
'P'
2069 ELSE IF( packed )
THEN
2077 DO 140 in = 1, nidim
2087 laa = ( n*( n + 1 ) )/2
2093 uplo = ich( ic: ic )
2103 CALL smake(
'GE',
' ',
' ', 1, n, x, 1, xx, abs( incx ),
2104 $ 0, n - 1, reset, transl )
2107 xx( 1 + abs( incx )*( n/2 - 1 ) ) = zero
2117 CALL smake(
'GE',
' ',
' ', 1, n, y, 1, yy,
2118 $ abs( incy ), 0, n - 1, reset, transl )
2121 yy( 1 + abs( incy )*( n/2 - 1 ) ) = zero
2126 null = n.LE.0.OR.alpha.EQ.zero
2131 CALL smake( sname( 2: 3 ), uplo,
' ', n, n, a,
2132 $ nmax, aa, lda, n - 1, n - 1, reset,
2159 $
WRITE( ntra, fmt = 9993 )nc, sname, uplo, n,
2160 $ alpha, incx, incy, lda
2163 CALL ssyr2( uplo, n, alpha, xx, incx, yy, incy,
2165 ELSE IF( packed )
THEN
2167 $
WRITE( ntra, fmt = 9994 )nc, sname, uplo, n,
2171 CALL sspr2( uplo, n, alpha, xx, incx, yy, incy,
2178 WRITE( nout, fmt = 9992 )
2185 isame( 1 ) = uplo.EQ.uplos
2186 isame( 2 ) = ns.EQ.n
2187 isame( 3 ) = als.EQ.alpha
2188 isame( 4 ) =
lse( xs, xx, lx )
2189 isame( 5 ) = incxs.EQ.incx
2190 isame( 6 ) =
lse( ys, yy, ly )
2191 isame( 7 ) = incys.EQ.incy
2193 isame( 8 ) =
lse( as, aa, laa )
2195 isame( 8 ) =
lseres( sname( 2: 3 ), uplo, n, n,
2198 IF( .NOT.packed )
THEN
2199 isame( 9 ) = ldas.EQ.lda
2206 same = same.AND.isame( i )
2207 IF( .NOT.isame( i ) )
2208 $
WRITE( nout, fmt = 9998 )i
2225 z( i, 1 ) = x( n - i + 1 )
2234 z( i, 2 ) = y( n - i + 1 )
2248 CALL smvch(
'N', lj, 2, alpha, z( jj, 1 ),
2249 $ nmax, w, 1, one, a( jj, j ), 1,
2250 $ yt, g, aa( ja ), eps, err, fatal,
2261 errmax = max( errmax, err )
2284 IF( errmax.LT.thresh )
THEN
2285 WRITE( nout, fmt = 9999 )sname, nc
2287 WRITE( nout, fmt = 9997 )sname, nc, errmax
2292 WRITE( nout, fmt = 9995 )j
2295 WRITE( nout, fmt = 9996 )sname
2297 WRITE( nout, fmt = 9993 )nc, sname, uplo, n, alpha, incx,
2299 ELSE IF( packed )
THEN
2300 WRITE( nout, fmt = 9994 )nc, sname, uplo, n, alpha, incx, incy
2306 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
2308 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
2309 $
'ANGED INCORRECTLY *******' )
2310 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
2311 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
2312 $
' - SUSPECT *******' )
2313 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
2314 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
2315 9994
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',', f4.1,
', X,',
2316 $ i2,
', Y,', i2,
', AP) .' )
2317 9993
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',', f4.1,
', X,',
2318 $ i2,
', Y,', i2,
', A,', i3,
') .' )
2319 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',