832 COMPLEX*16 ZERO, HALF
833 parameter( zero = ( 0.0d0, 0.0d0 ),
834 $ half = ( 0.5d0, 0.0d0 ) )
835 DOUBLE PRECISION RZERO
836 parameter( rzero = 0.0d0 )
838 DOUBLE PRECISION EPS, THRESH
839 INTEGER INCMAX, NALF, NBET, NIDIM, NINC, NKB, NMAX,
841 LOGICAL FATAL, REWI, TRACE
844 COMPLEX*16 A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
845 $ AS( NMAX*NMAX ), BET( NBET ), X( NMAX ),
846 $ XS( NMAX*INCMAX ), XX( NMAX*INCMAX ),
847 $ Y( NMAX ), YS( NMAX*INCMAX ), YT( NMAX ),
849 DOUBLE PRECISION G( NMAX )
850 INTEGER IDIM( NIDIM ), INC( NINC ), KB( NKB )
852 COMPLEX*16 ALPHA, ALS, BETA, BLS, TRANSL
853 DOUBLE PRECISION ERR, ERRMAX
854 INTEGER I, IA, IB, IC, IK, IN, INCX, INCXS, INCY,
855 $ INCYS, IX, IY, K, KS, LAA, LDA, LDAS, LX, LY,
856 $ N, NARGS, NC, NK, NS
857 LOGICAL BANDED, FULL, NULL, PACKED, RESET, SAME
858 CHARACTER*1 UPLO, UPLOS
874 COMMON /infoc/infot, noutc, ok
878 full = sname( 9: 9 ).EQ.
'e'
879 banded = sname( 9: 9 ).EQ.
'b'
880 packed = sname( 9: 9 ).EQ.
'p'
884 ELSE IF( banded )
THEN
886 ELSE IF( packed )
THEN
920 laa = ( n*( n + 1 ) )/2
929 cuplo =
' CblasUpper'
931 cuplo =
' CblasLower'
937 CALL zmake( sname( 8: 9 ), uplo,
' ', n, n, a, nmax, aa,
938 $ lda, k, k, reset, transl )
947 CALL zmake(
'ge',
' ',
' ', 1, n, x, 1, xx,
948 $ abs( incx ), 0, n - 1, reset, transl )
951 xx( 1 + abs( incx )*( n/2 - 1 ) ) = zero
967 CALL zmake(
'ge',
' ',
' ', 1, n, y, 1, yy,
968 $ abs( incy ), 0, n - 1, reset,
998 $
WRITE( ntra, fmt = 9993 )nc, sname,
999 $ cuplo, n, alpha, lda, incx, beta, incy
1002 CALL czhemv( iorder, uplo, n, alpha, aa,
1003 $ lda, xx, incx, beta, yy,
1005 ELSE IF( banded )
THEN
1007 $
WRITE( ntra, fmt = 9994 )nc, sname,
1008 $ cuplo, n, k, alpha, lda, incx, beta,
1012 CALL czhbmv( iorder, uplo, n, k, alpha,
1013 $ aa, lda, xx, incx, beta,
1015 ELSE IF( packed )
THEN
1017 $
WRITE( ntra, fmt = 9995 )nc, sname,
1018 $ cuplo, n, alpha, incx, beta, incy
1021 CALL czhpmv( iorder, uplo, n, alpha, aa,
1022 $ xx, incx, beta, yy, incy )
1028 WRITE( nout, fmt = 9992 )
1035 isame( 1 ) = uplo.EQ.uplos
1036 isame( 2 ) = ns.EQ.n
1038 isame( 3 ) = als.EQ.alpha
1039 isame( 4 ) =
lze( as, aa, laa )
1040 isame( 5 ) = ldas.EQ.lda
1041 isame( 6 ) =
lze( xs, xx, lx )
1042 isame( 7 ) = incxs.EQ.incx
1043 isame( 8 ) = bls.EQ.beta
1045 isame( 9 ) =
lze( ys, yy, ly )
1047 isame( 9 ) =
lzeres(
'ge',
' ', 1, n,
1048 $ ys, yy, abs( incy ) )
1050 isame( 10 ) = incys.EQ.incy
1051 ELSE IF( banded )
THEN
1052 isame( 3 ) = ks.EQ.k
1053 isame( 4 ) = als.EQ.alpha
1054 isame( 5 ) =
lze( as, aa, laa )
1055 isame( 6 ) = ldas.EQ.lda
1056 isame( 7 ) =
lze( xs, xx, lx )
1057 isame( 8 ) = incxs.EQ.incx
1058 isame( 9 ) = bls.EQ.beta
1060 isame( 10 ) =
lze( ys, yy, ly )
1062 isame( 10 ) =
lzeres(
'ge',
' ', 1, n,
1063 $ ys, yy, abs( incy ) )
1065 isame( 11 ) = incys.EQ.incy
1066 ELSE IF( packed )
THEN
1067 isame( 3 ) = als.EQ.alpha
1068 isame( 4 ) =
lze( as, aa, laa )
1069 isame( 5 ) =
lze( xs, xx, lx )
1070 isame( 6 ) = incxs.EQ.incx
1071 isame( 7 ) = bls.EQ.beta
1073 isame( 8 ) =
lze( ys, yy, ly )
1075 isame( 8 ) =
lzeres(
'ge',
' ', 1, n,
1076 $ ys, yy, abs( incy ) )
1078 isame( 9 ) = incys.EQ.incy
1086 same = same.AND.isame( i )
1087 IF( .NOT.isame( i ) )
1088 $
WRITE( nout, fmt = 9998 )i
1099 CALL zmvch(
'N', n, n, alpha, a, nmax, x,
1100 $ incx, beta, y, incy, yt, g,
1101 $ yy, eps, err, fatal, nout,
1103 errmax = max( errmax, err )
1129 IF( errmax.LT.thresh )
THEN
1130 WRITE( nout, fmt = 9999 )sname, nc
1132 WRITE( nout, fmt = 9997 )sname, nc, errmax
1137 WRITE( nout, fmt = 9996 )sname
1139 WRITE( nout, fmt = 9993 )nc, sname, cuplo, n, alpha, lda, incx,
1141 ELSE IF( banded )
THEN
1142 WRITE( nout, fmt = 9994 )nc, sname, cuplo, n, k, alpha, lda,
1144 ELSE IF( packed )
THEN
1145 WRITE( nout, fmt = 9995 )nc, sname, cuplo, n, alpha, incx,
1152 9999
FORMAT(
' ',a12,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1154 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1155 $
'ANGED INCORRECTLY *******' )
1156 9997
FORMAT(
' ',a12,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1157 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1158 $
' - SUSPECT *******' )
1159 9996
FORMAT(
' ******* ',a12,
' FAILED ON CALL NUMBER:' )
1160 9995
FORMAT( 1x, i6,
': ',a12,
'(', a14,
',', i3,
',(', f4.1,
',',
1161 $ f4.1,
'), AP, X,',/ 10x, i2,
',(', f4.1,
',', f4.1,
1162 $
'), Y,', i2,
') .' )
1163 9994
FORMAT( 1x, i6,
': ',a12,
'(', a14,
',', 2( i3,
',' ),
'(',
1164 $ f4.1,
',', f4.1,
'), A,', i3,
', X,',/ 10x, i2,
',(',
1165 $ f4.1,
',', f4.1,
'), Y,', i2,
') .' )
1166 9993
FORMAT( 1x, i6,
': ',a12,
'(', a14,
',', i3,
',(', f4.1,
',',
1167 $ f4.1,
'), A,', i3,
', X,',/ 10x, i2,
',(', f4.1,
',',
1168 $ f4.1,
'), ',
'Y,', i2,
') .' )
1169 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',