798 COMPLEX*16 ZERO, HALF
799 parameter( zero = ( 0.0d0, 0.0d0 ),
800 $ half = ( 0.5d0, 0.0d0 ) )
801 DOUBLE PRECISION RZERO
802 parameter( rzero = 0.0d0 )
804 DOUBLE PRECISION EPS, THRESH
805 INTEGER INCMAX, NALF, NBET, NIDIM, NINC, NKB, NMAX,
807 LOGICAL FATAL, REWI, TRACE
810 COMPLEX*16 A( NMAX, NMAX ), AA( NMAX*NMAX ), ALF( NALF ),
811 $ AS( NMAX*NMAX ), BET( NBET ), X( NMAX ),
812 $ XS( NMAX*INCMAX ), XX( NMAX*INCMAX ),
813 $ Y( NMAX ), YS( NMAX*INCMAX ), YT( NMAX ),
815 DOUBLE PRECISION G( NMAX )
816 INTEGER IDIM( NIDIM ), INC( NINC ), KB( NKB )
818 COMPLEX*16 ALPHA, ALS, BETA, BLS, TRANSL
819 DOUBLE PRECISION ERR, ERRMAX
820 INTEGER I, IA, IB, IC, IK, IN, INCX, INCXS, INCY,
821 $ INCYS, IX, IY, K, KS, LAA, LDA, LDAS, LX, LY,
822 $ N, NARGS, NC, NK, NS
823 LOGICAL BANDED, FULL, NULL, PACKED, RESET, SAME
824 CHARACTER*1 UPLO, UPLOS
839 COMMON /infoc/infot, noutc, ok, lerr
843 full = sname( 3: 3 ).EQ.
'E'
844 banded = sname( 3: 3 ).EQ.
'B'
845 packed = sname( 3: 3 ).EQ.
'P'
849 ELSE IF( banded )
THEN
851 ELSE IF( packed )
THEN
885 laa = ( n*( n + 1 ) )/2
897 CALL zmake( sname( 2: 3 ), uplo,
' ', n, n, a, nmax, aa,
898 $ lda, k, k, reset, transl )
907 CALL zmake(
'GE',
' ',
' ', 1, n, x, 1, xx,
908 $ abs( incx ), 0, n - 1, reset, transl )
911 xx( 1 + abs( incx )*( n/2 - 1 ) ) = zero
927 CALL zmake(
'GE',
' ',
' ', 1, n, y, 1, yy,
928 $ abs( incy ), 0, n - 1, reset,
958 $
WRITE( ntra, fmt = 9993 )nc, sname,
959 $ uplo, n, alpha, lda, incx, beta, incy
962 CALL zhemv( uplo, n, alpha, aa, lda, xx,
963 $ incx, beta, yy, incy )
964 ELSE IF( banded )
THEN
966 $
WRITE( ntra, fmt = 9994 )nc, sname,
967 $ uplo, n, k, alpha, lda, incx, beta,
971 CALL zhbmv( uplo, n, k, alpha, aa, lda,
972 $ xx, incx, beta, yy, incy )
973 ELSE IF( packed )
THEN
975 $
WRITE( ntra, fmt = 9995 )nc, sname,
976 $ uplo, n, alpha, incx, beta, incy
979 CALL zhpmv( uplo, n, alpha, aa, xx, incx,
986 WRITE( nout, fmt = 9992 )
993 isame( 1 ) = uplo.EQ.uplos
996 isame( 3 ) = als.EQ.alpha
997 isame( 4 ) =
lze( as, aa, laa )
998 isame( 5 ) = ldas.EQ.lda
999 isame( 6 ) =
lze( xs, xx, lx )
1000 isame( 7 ) = incxs.EQ.incx
1001 isame( 8 ) = bls.EQ.beta
1003 isame( 9 ) =
lze( ys, yy, ly )
1005 isame( 9 ) =
lzeres(
'GE',
' ', 1, n,
1006 $ ys, yy, abs( incy ) )
1008 isame( 10 ) = incys.EQ.incy
1009 ELSE IF( banded )
THEN
1010 isame( 3 ) = ks.EQ.k
1011 isame( 4 ) = als.EQ.alpha
1012 isame( 5 ) =
lze( as, aa, laa )
1013 isame( 6 ) = ldas.EQ.lda
1014 isame( 7 ) =
lze( xs, xx, lx )
1015 isame( 8 ) = incxs.EQ.incx
1016 isame( 9 ) = bls.EQ.beta
1018 isame( 10 ) =
lze( ys, yy, ly )
1020 isame( 10 ) =
lzeres(
'GE',
' ', 1, n,
1021 $ ys, yy, abs( incy ) )
1023 isame( 11 ) = incys.EQ.incy
1024 ELSE IF( packed )
THEN
1025 isame( 3 ) = als.EQ.alpha
1026 isame( 4 ) =
lze( as, aa, laa )
1027 isame( 5 ) =
lze( xs, xx, lx )
1028 isame( 6 ) = incxs.EQ.incx
1029 isame( 7 ) = bls.EQ.beta
1031 isame( 8 ) =
lze( ys, yy, ly )
1033 isame( 8 ) =
lzeres(
'GE',
' ', 1, n,
1034 $ ys, yy, abs( incy ) )
1036 isame( 9 ) = incys.EQ.incy
1044 same = same.AND.isame( i )
1045 IF( .NOT.isame( i ) )
1046 $
WRITE( nout, fmt = 9998 )i
1057 CALL zmvch(
'N', n, n, alpha, a, nmax, x,
1058 $ incx, beta, y, incy, yt, g,
1059 $ yy, eps, err, fatal, nout,
1061 errmax = max( errmax, err )
1087 IF( errmax.LT.thresh )
THEN
1088 WRITE( nout, fmt = 9999 )sname, nc
1090 WRITE( nout, fmt = 9997 )sname, nc, errmax
1095 WRITE( nout, fmt = 9996 )sname
1097 WRITE( nout, fmt = 9993 )nc, sname, uplo, n, alpha, lda, incx,
1099 ELSE IF( banded )
THEN
1100 WRITE( nout, fmt = 9994 )nc, sname, uplo, n, k, alpha, lda,
1102 ELSE IF( packed )
THEN
1103 WRITE( nout, fmt = 9995 )nc, sname, uplo, n, alpha, incx,
1110 9999
FORMAT(
' ', a6,
' PASSED THE COMPUTATIONAL TESTS (', i6,
' CALL',
1112 9998
FORMAT(
' ******* FATAL ERROR - PARAMETER NUMBER ', i2,
' WAS CH',
1113 $
'ANGED INCORRECTLY *******' )
1114 9997
FORMAT(
' ', a6,
' COMPLETED THE COMPUTATIONAL TESTS (', i6,
' C',
1115 $
'ALLS)', /
' ******* BUT WITH MAXIMUM TEST RATIO', f8.2,
1116 $
' - SUSPECT *******' )
1117 9996
FORMAT(
' ******* ', a6,
' FAILED ON CALL NUMBER:' )
1118 9995
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',(', f4.1,
',',
1119 $ f4.1,
'), AP, X,', i2,
',(', f4.1,
',', f4.1,
'), Y,', i2,
1121 9994
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', 2( i3,
',' ),
'(',
1122 $ f4.1,
',', f4.1,
'), A,', i3,
', X,', i2,
',(', f4.1,
',',
1123 $ f4.1,
'), Y,', i2,
') .' )
1124 9993
FORMAT( 1x, i6,
': ', a6,
'(''', a1,
''',', i3,
',(', f4.1,
',',
1125 $ f4.1,
'), A,', i3,
', X,', i2,
',(', f4.1,
',', f4.1,
'), ',
1127 9992
FORMAT(
' ******* FATAL ERROR - ERROR-EXIT TAKEN ON VALID CALL *',