794 parameter( zero = ( 0.0, 0.0 ), half = ( 0.5, 0.0 ) )
796 parameter( rzero = 0.0 )
799 INTEGER INCMAX, NALF, NBET, NIDIM, NINC, NKB, NMAX,
801 LOGICAL FATAL, REWI, TRACE
804 COMPLEX A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
805 $ AS( NMAX*NMAX ), BET( NBET ), X( NMAX ),
806 $ XS( NMAX*INCMAX ), XX( NMAX*INCMAX ),
807 $ Y( NMAX ), YS( NMAX*INCMAX ), YT( NMAX ),
810 INTEGER IDIM( NIDIM ), INC( NINC ), KB( NKB )
812 COMPLEX ALPHA, ALS, BETA, BLS, TRANSL
814 INTEGER I, IA, IB, IC, IK, IN, INCX, INCXS, INCY,
815 $ INCYS, IX, IY, K, KS, LAA, LDA, LDAS, LX, LY,
816 $ N, NARGS, NC, NK, NS
817 LOGICAL BANDED, FULL, NULL, PACKED, RESET, SAME
818 CHARACTER*1 UPLO, UPLOS
833 COMMON /infoc/infot, noutc, ok, lerr
837 full = sname( 3: 3 ).EQ.
'E'
838 banded = sname( 3: 3 ).EQ.
'B'
839 packed = sname( 3: 3 ).EQ.
'P'
843 ELSE IF( banded )
THEN
845 ELSE IF( packed )
THEN
879 laa = ( n*( n + 1 ) )/2
891 CALL cmake( sname( 2: 3 ), uplo,
' ', n, n, a, nmax, aa,
892 $ lda, k, k, reset, transl )
901 CALL cmake(
'GE',
' ',
' ', 1, n, x, 1, xx,
902 $ abs( incx ), 0, n - 1, reset, transl )
905 xx( 1 + abs( incx )*( n/2 - 1 ) ) = zero
921 CALL cmake(
'GE',
' ',
' ', 1, n, y, 1, yy,
922 $ abs( incy ), 0, n - 1, reset,
952 $
WRITE( ntra, fmt = 9993 )nc, sname,
953 $ uplo, n, alpha, lda, incx, beta, incy
956 CALL chemv( uplo, n, alpha, aa, lda, xx,
957 $ incx, beta, yy, incy )
958 ELSE IF( banded )
THEN
960 $
WRITE( ntra, fmt = 9994 )nc, sname,
961 $ uplo, n, k, alpha, lda, incx, beta,
965 CALL chbmv( uplo, n, k, alpha, aa, lda,
966 $ xx, incx, beta, yy, incy )
967 ELSE IF( packed )
THEN
969 $
WRITE( ntra, fmt = 9995 )nc, sname,
970 $ uplo, n, alpha, incx, beta, incy
973 CALL chpmv( uplo, n, alpha, aa, xx, incx,
980 WRITE( nout, fmt = 9992 )
987 isame( 1 ) = uplo.EQ.uplos
990 isame( 3 ) = als.EQ.alpha
991 isame( 4 ) =
lce( as, aa, laa )
992 isame( 5 ) = ldas.EQ.lda
993 isame( 6 ) =
lce( xs, xx, lx )
994 isame( 7 ) = incxs.EQ.incx
995 isame( 8 ) = bls.EQ.beta
997 isame( 9 ) =
lce( ys, yy, ly )
999 isame( 9 ) =
lceres(
'GE',
' ', 1, n,
1000 $ ys, yy, abs( incy ) )
1002 isame( 10 ) = incys.EQ.incy
1003 ELSE IF( banded )
THEN
1004 isame( 3 ) = ks.EQ.k
1005 isame( 4 ) = als.EQ.alpha
1006 isame( 5 ) =
lce( as, aa, laa )
1007 isame( 6 ) = ldas.EQ.lda
1008 isame( 7 ) =
lce( xs, xx, lx )
1009 isame( 8 ) = incxs.EQ.incx
1010 isame( 9 ) = bls.EQ.beta
1012 isame( 10 ) =
lce( ys, yy, ly )
1014 isame( 10 ) =
lceres(
'GE',
' ', 1, n,
1015 $ ys, yy, abs( incy ) )
1017 isame( 11 ) = incys.EQ.incy
1018 ELSE IF( packed )
THEN
1019 isame( 3 ) = als.EQ.alpha
1020 isame( 4 ) =
lce( as, aa, laa )
1021 isame( 5 ) =
lce( xs, xx, lx )
1022 isame( 6 ) = incxs.EQ.incx
1023 isame( 7 ) = bls.EQ.beta
1025 isame( 8 ) =
lce( ys, yy, ly )
1027 isame( 8 ) =
lceres(
'GE',
' ', 1, n,
1028 $ ys, yy, abs( incy ) )
1030 isame( 9 ) = incys.EQ.incy
1038 same = same.AND.isame( i )
1039 IF( .NOT.isame( i ) )
1040 $
WRITE( nout, fmt = 9998 )i
1051 CALL cmvch(
'N', n, n, alpha, a, nmax, x,
1052 $ incx, beta, y, incy, yt, g,
1053 $ yy, eps, err, fatal, nout,
1055 errmax = max( errmax, err )
1081 IF( errmax.LT.thresh )
THEN
1082 WRITE( nout, fmt = 9999 )sname, nc
1084 WRITE( nout, fmt = 9997 )sname, nc, errmax
1089 WRITE( nout, fmt = 9996 )sname
1091 WRITE( nout, fmt = 9993 )nc, sname, uplo, n, alpha, lda, incx,
1093 ELSE IF( banded )
THEN
1094 WRITE( nout, fmt = 9994 )nc, sname, uplo, n, k, alpha, lda,
1096 ELSE IF( packed )
THEN
1097 WRITE( nout, fmt = 9995 )nc, sname, uplo, n, alpha, incx,
1104 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1106 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1107 $
'ANGED INCORRECTLY *******' )
1108 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1109 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1110 $
' - SUSPECT *******' )
1111 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
1112 9995
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',(', f4.1,
',',
1113 $ f4.1,
'), AP, X,', i2,
',(', f4.1,
',', f4.1,
'), Y,', i2,
1115 9994
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', 2( i3,
',' ),
'(',
1116 $ f4.1,
',', f4.1,
'), A,', i3,
', X,', i2,
',(', f4.1,
',',
1117 $ f4.1,
'), Y,', i2,
') .' )
1118 9993
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',(', f4.1,
',',
1119 $ f4.1,
'), A,', i3,
', X,', i2,
',(', f4.1,
',', f4.1,
'), ',
1121 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
subroutine cmake(TYPE, UPLO, DIAG, M, N, A, NMAX, AA, LDA, KL, KU, RESET, TRANSL)
logical function lce(RI, RJ, LR)
logical function lceres(TYPE, UPLO, M, N, AA, AS, LDA)
subroutine cmvch(TRANS, M, N, ALPHA, A, NMAX, X, INCX, BETA, Y, INCY, YT, G, YY, EPS, ERR, FATAL, NOUT, MV)
subroutine chbmv(UPLO, N, K, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
CHBMV
subroutine chemv(UPLO, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
CHEMV
subroutine chpmv(UPLO, N, ALPHA, AP, X, INCX, BETA, Y, INCY)
CHPMV