832 parameter ( zero = ( 0.0, 0.0 ), half = ( 0.5, 0.0 ) )
834 parameter ( rzero = 0.0 )
837 INTEGER incmax, nalf, nbet, nidim, ninc, nkb, nmax,
839 LOGICAL fatal, rewi, trace
842 COMPLEX a( nmax, nmax ), aa( nmax*nmax ), alf( nalf ),
843 $ as( nmax*nmax ), bet( nbet ), x( nmax ),
844 $ xs( nmax*incmax ), xx( nmax*incmax ),
845 $ y( nmax ), ys( nmax*incmax ), yt( nmax ),
848 INTEGER idim( nidim ), inc( ninc ), kb( nkb )
850 COMPLEX alpha, als, beta, bls, transl
852 INTEGER i, ia, ib, ic, ik, in, incx, incxs, incy,
853 $ incys, ix, iy, k, ks, laa, lda, ldas, lx, ly,
854 $ n, nargs, nc, nk, ns
855 LOGICAL banded, full, null, packed, reset, same
856 CHARACTER*1 uplo, uplos
872 COMMON /infoc/infot, noutc, ok
876 full = sname( 9: 9 ).EQ.
'e'
877 banded = sname( 9: 9 ).EQ.
'b'
878 packed = sname( 9: 9 ).EQ.
'p'
882 ELSE IF( banded )
THEN
884 ELSE IF( packed )
THEN
918 laa = ( n*( n + 1 ) )/2
927 cuplo =
' CblasUpper'
929 cuplo =
' CblasLower'
935 CALL cmake( sname( 8: 9 ), uplo,
' ', n, n, a, nmax, aa,
936 $ lda, k, k, reset, transl )
945 CALL cmake(
'ge',
' ',
' ', 1, n, x, 1, xx,
946 $ abs( incx ), 0, n - 1, reset, transl )
949 xx( 1 + abs( incx )*( n/2 - 1 ) ) = zero
965 CALL cmake(
'ge',
' ',
' ', 1, n, y, 1, yy,
966 $ abs( incy ), 0, n - 1, reset,
996 $
WRITE( ntra, fmt = 9993 )nc, sname,
997 $ cuplo, n, alpha, lda, incx, beta, incy
1000 CALL cchemv( iorder, uplo, n, alpha, aa,
1001 $ lda, xx, incx, beta, yy,
1003 ELSE IF( banded )
THEN
1005 $
WRITE( ntra, fmt = 9994 )nc, sname,
1006 $ cuplo, n, k, alpha, lda, incx, beta,
1010 CALL cchbmv( iorder, uplo, n, k, alpha,
1011 $ aa, lda, xx, incx, beta,
1013 ELSE IF( packed )
THEN
1015 $
WRITE( ntra, fmt = 9995 )nc, sname,
1016 $ cuplo, n, alpha, incx, beta, incy
1019 CALL cchpmv( iorder, uplo, n, alpha, aa,
1020 $ xx, incx, beta, yy, incy )
1026 WRITE( nout, fmt = 9992 )
1033 isame( 1 ) = uplo.EQ.uplos
1034 isame( 2 ) = ns.EQ.n
1036 isame( 3 ) = als.EQ.alpha
1037 isame( 4 ) =
lce( as, aa, laa )
1038 isame( 5 ) = ldas.EQ.lda
1039 isame( 6 ) =
lce( xs, xx, lx )
1040 isame( 7 ) = incxs.EQ.incx
1041 isame( 8 ) = bls.EQ.beta
1043 isame( 9 ) =
lce( ys, yy, ly )
1045 isame( 9 ) =
lceres(
'ge',
' ', 1, n,
1046 $ ys, yy, abs( incy ) )
1048 isame( 10 ) = incys.EQ.incy
1049 ELSE IF( banded )
THEN
1050 isame( 3 ) = ks.EQ.k
1051 isame( 4 ) = als.EQ.alpha
1052 isame( 5 ) =
lce( as, aa, laa )
1053 isame( 6 ) = ldas.EQ.lda
1054 isame( 7 ) =
lce( xs, xx, lx )
1055 isame( 8 ) = incxs.EQ.incx
1056 isame( 9 ) = bls.EQ.beta
1058 isame( 10 ) =
lce( ys, yy, ly )
1060 isame( 10 ) =
lceres(
'ge',
' ', 1, n,
1061 $ ys, yy, abs( incy ) )
1063 isame( 11 ) = incys.EQ.incy
1064 ELSE IF( packed )
THEN
1065 isame( 3 ) = als.EQ.alpha
1066 isame( 4 ) =
lce( as, aa, laa )
1067 isame( 5 ) =
lce( xs, xx, lx )
1068 isame( 6 ) = incxs.EQ.incx
1069 isame( 7 ) = bls.EQ.beta
1071 isame( 8 ) =
lce( ys, yy, ly )
1073 isame( 8 ) =
lceres(
'ge',
' ', 1, n,
1074 $ ys, yy, abs( incy ) )
1076 isame( 9 ) = incys.EQ.incy
1084 same = same.AND.isame( i )
1085 IF( .NOT.isame( i ) )
1086 $
WRITE( nout, fmt = 9998 )i
1097 CALL cmvch(
'N', n, n, alpha, a, nmax, x,
1098 $ incx, beta, y, incy, yt, g,
1099 $ yy, eps, err, fatal, nout,
1101 errmax = max( errmax, err )
1127 IF( errmax.LT.thresh )
THEN
1128 WRITE( nout, fmt = 9999 )sname, nc
1130 WRITE( nout, fmt = 9997 )sname, nc, errmax
1135 WRITE( nout, fmt = 9996 )sname
1137 WRITE( nout, fmt = 9993 )nc, sname, cuplo, n, alpha, lda, incx,
1139 ELSE IF( banded )
THEN
1140 WRITE( nout, fmt = 9994 )nc, sname, cuplo, n, k, alpha, lda,
1142 ELSE IF( packed )
THEN
1143 WRITE( nout, fmt = 9995 )nc, sname, cuplo, n, alpha, incx,
1150 9999
FORMAT(
' ',a12,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1152 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1153 $
'ANGED INCORRECTLY *******' )
1154 9997
FORMAT(
' ',a12,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1155 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1156 $
' - SUSPECT *******' )
1157 9996
FORMAT(
' ******* ',a12,
' FAILED ON CALL NUMBER:' )
1158 9995
FORMAT( 1x, i6,
': ',a12,
'(', a14,
',', i3,
',(', f4.1,
',',
1159 $ f4.1,
'), AP, X,',/ 10x, i2,
',(', f4.1,
',', f4.1,
1160 $
'), Y,', i2,
') .' )
1161 9994
FORMAT( 1x, i6,
': ',a12,
'(', a14,
',', 2( i3,
',' ),
'(',
1162 $ f4.1,
',', f4.1,
'), A,', i3,
', X,',/ 10x, i2,
',(',
1163 $ f4.1,
',', f4.1,
'), Y,', i2,
') .' )
1164 9993
FORMAT( 1x, i6,
': ',a12,
'(', a14,
',', i3,
',(', f4.1,
',',
1165 $ f4.1,
'), A,', i3,
', X,',/ 10x, i2,
',(', f4.1,
',',
1166 $ f4.1,
'), ',
'Y,', i2,
') .' )
1167 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',
subroutine cmvch(TRANS, M, N, ALPHA, A, NMAX, X, INCX, BETA, Y, INCY, YT, G, YY, EPS, ERR, FATAL, NOUT, MV)
logical function lce(RI, RJ, LR)
subroutine cmake(TYPE, UPLO, DIAG, M, N, A, NMAX, AA, LDA, KL, KU, RESET, TRANSL)
logical function lceres(TYPE, UPLO, M, N, AA, AS, LDA)