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 *',
subroutine zhemv(UPLO, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
ZHEMV
logical function lzeres(TYPE, UPLO, M, N, AA, AS, LDA)
subroutine zmake(TYPE, UPLO, DIAG, M, N, A, NMAX, AA, LDA, KL, KU, RESET, TRANSL)
logical function lze(RI, RJ, LR)
subroutine zhbmv(UPLO, N, K, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
ZHBMV
subroutine zmvch(TRANS, M, N, ALPHA, A, NMAX, X, INCX, BETA, Y, INCY, YT, G, YY, EPS, ERR, FATAL, NOUT, MV)
subroutine zhpmv(UPLO, N, ALPHA, AP, X, INCX, BETA, Y, INCY)
ZHPMV