1743 DOUBLE PRECISION ZERO, HALF, ONE
1744 parameter( zero = 0.0d0, half = 0.5d0, one = 1.0d0 )
1746 DOUBLE PRECISION EPS, THRESH
1747 INTEGER INCMAX, NALF, NIDIM, NINC, NMAX, NOUT, NTRA
1748 LOGICAL FATAL, REWI, TRACE
1751 DOUBLE PRECISION A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
1752 $ AS( NMAX*NMAX ), G( NMAX ), X( NMAX ),
1753 $ XS( NMAX*INCMAX ), XX( NMAX*INCMAX ),
1754 $ Y( NMAX ), YS( NMAX*INCMAX ), YT( NMAX ),
1755 $ YY( NMAX*INCMAX ), Z( NMAX )
1756 INTEGER IDIM( NIDIM ), INC( NINC )
1758 DOUBLE PRECISION ALPHA, ALS, ERR, ERRMAX, TRANSL
1759 INTEGER I, IA, IC, IN, INCX, INCXS, IX, J, JA, JJ, LAA,
1760 $ LDA, LDAS, LJ, LX, N, NARGS, NC, NS
1761 LOGICAL FULL, NULL, PACKED, RESET, SAME, UPPER
1762 CHARACTER*1 UPLO, UPLOS
1765 DOUBLE PRECISION W( 1 )
1775 INTEGER INFOT, NOUTC
1778 COMMON /infoc/infot, noutc, ok, lerr
1782 full = sname( 3: 3 ).EQ.
'Y'
1783 packed = sname( 3: 3 ).EQ.
'P'
1787 ELSE IF( packed )
THEN
1795 DO 100 in = 1, nidim
1805 laa = ( n*( n + 1 ) )/2
1811 uplo = ich( ic: ic )
1821 CALL dmake(
'GE',
' ',
' ', 1, n, x, 1, xx, abs( incx ),
1822 $ 0, n - 1, reset, transl )
1825 xx( 1 + abs( incx )*( n/2 - 1 ) ) = zero
1830 null = n.LE.0.OR.alpha.EQ.zero
1835 CALL dmake( sname( 2: 3 ), uplo,
' ', n, n, a, nmax,
1836 $ aa, lda, n - 1, n - 1, reset, transl )
1858 $
WRITE( ntra, fmt = 9993 )nc, sname, uplo, n,
1862 CALL dsyr( uplo, n, alpha, xx, incx, aa, lda )
1863 ELSE IF( packed )
THEN
1865 $
WRITE( ntra, fmt = 9994 )nc, sname, uplo, n,
1869 CALL dspr( uplo, n, alpha, xx, incx, aa )
1875 WRITE( nout, fmt = 9992 )
1882 isame( 1 ) = uplo.EQ.uplos
1883 isame( 2 ) = ns.EQ.n
1884 isame( 3 ) = als.EQ.alpha
1885 isame( 4 ) =
lde( xs, xx, lx )
1886 isame( 5 ) = incxs.EQ.incx
1888 isame( 6 ) =
lde( as, aa, laa )
1890 isame( 6 ) =
lderes( sname( 2: 3 ), uplo, n, n, as,
1893 IF( .NOT.packed )
THEN
1894 isame( 7 ) = ldas.EQ.lda
1901 same = same.AND.isame( i )
1902 IF( .NOT.isame( i ) )
1903 $
WRITE( nout, fmt = 9998 )i
1920 z( i ) = x( n - i + 1 )
1933 CALL dmvch(
'N', lj, 1, alpha, z( jj ), lj, w,
1934 $ 1, one, a( jj, j ), 1, yt, g,
1935 $ aa( ja ), eps, err, fatal, nout,
1946 errmax = max( errmax, err )
1967 IF( errmax.LT.thresh )
THEN
1968 WRITE( nout, fmt = 9999 )sname, nc
1970 WRITE( nout, fmt = 9997 )sname, nc, errmax
1975 WRITE( nout, fmt = 9995 )j
1978 WRITE( nout, fmt = 9996 )sname
1980 WRITE( nout, fmt = 9993 )nc, sname, uplo, n, alpha, incx, lda
1981 ELSE IF( packed )
THEN
1982 WRITE( nout, fmt = 9994 )nc, sname, uplo, n, alpha, incx
1988 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1990 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1991 $
'ANGED INCORRECTLY *******' )
1992 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1993 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1994 $
' - SUSPECT *******' )
1995 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
1996 9995
FORMAT(
' THESE ARE THE RESULTS FOR COLUMN ', i3 )
1997 9994
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',', f4.1,
', X,',
1999 9993
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',', f4.1,
', X,',
2000 $ i2,
', A,', i3,
') .' )
2001 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
subroutine dmake(TYPE, UPLO, DIAG, M, N, A, NMAX, AA, LDA, KL, KU, RESET, TRANSL)
logical function lde(RI, RJ, LR)
logical function lderes(TYPE, UPLO, M, N, AA, AS, LDA)
subroutine dmvch(TRANS, M, N, ALPHA, A, NMAX, X, INCX, BETA, Y, INCY, YT, G, YY, EPS, ERR, FATAL, NOUT, MV)
subroutine dspr(UPLO, N, ALPHA, X, INCX, AP)
DSPR
subroutine dsyr(UPLO, N, ALPHA, X, INCX, A, LDA)
DSYR