783 parameter( zero = 0.0, half = 0.5 )
786 INTEGER INCMAX, NALF, NBET, NIDIM, NINC, NKB, NMAX,
788 LOGICAL FATAL, REWI, TRACE
791 REAL A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
792 $ AS( NMAX*NMAX ), BET( NBET ), G( NMAX ),
793 $ X( NMAX ), XS( NMAX*INCMAX ),
794 $ XX( NMAX*INCMAX ), Y( NMAX ),
795 $ YS( NMAX*INCMAX ), YT( NMAX ),
797 INTEGER IDIM( NIDIM ), INC( NINC ), KB( NKB )
799 REAL ALPHA, ALS, BETA, BLS, ERR, ERRMAX, TRANSL
800 INTEGER I, IA, IB, IC, IK, IN, INCX, INCXS, INCY,
801 $ INCYS, IX, IY, K, KS, LAA, LDA, LDAS, LX, LY,
802 $ N, NARGS, NC, NK, NS
803 LOGICAL BANDED, FULL, NULL, PACKED, RESET, SAME
804 CHARACTER*1 UPLO, UPLOS
819 COMMON /infoc/infot, noutc, ok, lerr
823 full = sname( 3: 3 ).EQ.
'Y'
824 banded = sname( 3: 3 ).EQ.
'B'
825 packed = sname( 3: 3 ).EQ.
'P'
829 ELSE IF( banded )
THEN
831 ELSE IF( packed )
THEN
865 laa = ( n*( n + 1 ) )/2
877 CALL smake( sname( 2: 3 ), uplo,
' ', n, n, a, nmax, aa,
878 $ lda, k, k, reset, transl )
887 CALL smake(
'GE',
' ',
' ', 1, n, x, 1, xx,
888 $ abs( incx ), 0, n - 1, reset, transl )
891 xx( 1 + abs( incx )*( n/2 - 1 ) ) = zero
907 CALL smake(
'GE',
' ',
' ', 1, n, y, 1, yy,
908 $ abs( incy ), 0, n - 1, reset,
938 $
WRITE( ntra, fmt = 9993 )nc, sname,
939 $ uplo, n, alpha, lda, incx, beta, incy
942 CALL ssymv( uplo, n, alpha, aa, lda, xx,
943 $ incx, beta, yy, incy )
944 ELSE IF( banded )
THEN
946 $
WRITE( ntra, fmt = 9994 )nc, sname,
947 $ uplo, n, k, alpha, lda, incx, beta,
951 CALL ssbmv( uplo, n, k, alpha, aa, lda,
952 $ xx, incx, beta, yy, incy )
953 ELSE IF( packed )
THEN
955 $
WRITE( ntra, fmt = 9995 )nc, sname,
956 $ uplo, n, alpha, incx, beta, incy
959 CALL sspmv( uplo, n, alpha, aa, xx, incx,
966 WRITE( nout, fmt = 9992 )
973 isame( 1 ) = uplo.EQ.uplos
976 isame( 3 ) = als.EQ.alpha
977 isame( 4 ) =
lse( as, aa, laa )
978 isame( 5 ) = ldas.EQ.lda
979 isame( 6 ) =
lse( xs, xx, lx )
980 isame( 7 ) = incxs.EQ.incx
981 isame( 8 ) = bls.EQ.beta
983 isame( 9 ) =
lse( ys, yy, ly )
985 isame( 9 ) =
lseres(
'GE',
' ', 1, n,
986 $ ys, yy, abs( incy ) )
988 isame( 10 ) = incys.EQ.incy
989 ELSE IF( banded )
THEN
991 isame( 4 ) = als.EQ.alpha
992 isame( 5 ) =
lse( as, aa, laa )
993 isame( 6 ) = ldas.EQ.lda
994 isame( 7 ) =
lse( xs, xx, lx )
995 isame( 8 ) = incxs.EQ.incx
996 isame( 9 ) = bls.EQ.beta
998 isame( 10 ) =
lse( ys, yy, ly )
1000 isame( 10 ) =
lseres(
'GE',
' ', 1, n,
1001 $ ys, yy, abs( incy ) )
1003 isame( 11 ) = incys.EQ.incy
1004 ELSE IF( packed )
THEN
1005 isame( 3 ) = als.EQ.alpha
1006 isame( 4 ) =
lse( as, aa, laa )
1007 isame( 5 ) =
lse( xs, xx, lx )
1008 isame( 6 ) = incxs.EQ.incx
1009 isame( 7 ) = bls.EQ.beta
1011 isame( 8 ) =
lse( ys, yy, ly )
1013 isame( 8 ) =
lseres(
'GE',
' ', 1, n,
1014 $ ys, yy, abs( incy ) )
1016 isame( 9 ) = incys.EQ.incy
1024 same = same.AND.isame( i )
1025 IF( .NOT.isame( i ) )
1026 $
WRITE( nout, fmt = 9998 )i
1037 CALL smvch(
'N', n, n, alpha, a, nmax, x,
1038 $ incx, beta, y, incy, yt, g,
1039 $ yy, eps, err, fatal, nout,
1041 errmax = max( errmax, err )
1067 IF( errmax.LT.thresh )
THEN
1068 WRITE( nout, fmt = 9999 )sname, nc
1070 WRITE( nout, fmt = 9997 )sname, nc, errmax
1075 WRITE( nout, fmt = 9996 )sname
1077 WRITE( nout, fmt = 9993 )nc, sname, uplo, n, alpha, lda, incx,
1079 ELSE IF( banded )
THEN
1080 WRITE( nout, fmt = 9994 )nc, sname, uplo, n, k, alpha, lda,
1082 ELSE IF( packed )
THEN
1083 WRITE( nout, fmt = 9995 )nc, sname, uplo, n, alpha, incx,
1090 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1092 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1093 $
'ANGED INCORRECTLY *******' )
1094 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1095 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1096 $
' - SUSPECT *******' )
1097 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
1098 9995
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',', f4.1,
', AP',
1099 $
', X,', i2,
',', f4.1,
', Y,', i2,
') .' )
1100 9994
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', 2( i3,
',' ), f4.1,
1101 $
', A,', i3,
', X,', i2,
',', f4.1,
', Y,', i2,
1103 9993
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',', f4.1,
', A,',
1104 $ i3,
', X,', i2,
',', f4.1,
', Y,', i2,
') .' )
1105 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
subroutine ssymv(UPLO, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
SSYMV
subroutine sspmv(UPLO, N, ALPHA, AP, X, INCX, BETA, Y, INCY)
SSPMV
subroutine ssbmv(UPLO, N, K, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
SSBMV
logical function lse(RI, RJ, LR)
subroutine smvch(TRANS, M, N, ALPHA, A, NMAX, X, INCX, BETA, Y, INCY, YT, G, YY, EPS, ERR, FATAL, NOUT, MV)
logical function lseres(TYPE, UPLO, M, N, AA, AS, LDA)
subroutine smake(TYPE, UPLO, DIAG, M, N, A, NMAX, AA, LDA, KL, KU, RESET, TRANSL)