|
PROGRAM TEST
|
IMPLICIT NONE
|
C
|
REAL RZERO
|
INTEGER LDA, N
|
PARAMETER (N = 4)
|
PARAMETER (LDA = N)
|
PARAMETER (RZERO = 0.0E0)
|
C
|
COMPLEX A(LDA,N), ALPHA, BETA, X(N), Y(N)
|
INTEGER I, J
|
C
|
EXTERNAL CHEMV
|
INTRINSIC CMPLX, CONJG, REAL
|
C
|
C Initialize the array A to store in Hermitian form the matrix
|
C A shown below. Initialize the arrays x and y to store the
|
C vectors x and y shown below.
|
C
|
C 1+0i 2+3i 3+4i 4+5i 10+20i -10-2i
|
C A = 2-3i 5+0i 6+7i 7+8i x = 1+ 2i y = -20-3i
|
C 3-4i 6-7i 3+0i 9+0i .1+.2i -30-4i
|
C 4-5i 7-8i 9+0i 1+0i .01+.02i -40-5i
|
C
|
DATA A / (1.0,8E8), (8E8,8E8), (8E8,8E8), (8E8,8E8),
|
$ (2.0,3.0), (5.0,8E8), (8E8,8E8), (8E8,8E8),
|
$ (3.0,4.0), (6.0,7.0), (8.0,8E8), (8E8,8E8),
|
$ (4.0,5.0), (7.0,8.0), (9.0,0.0), (1.0,8E8) /
|
DATA X / (10.0,20.0), (1.0,2.0), (0.1,0.2), (0.01,0.02) /
|
DATA Y / (-10.0,-2.0), (-20.0,-3.0), (-30.0,-4.0),
|
$ (-40.0,-5.0) /
|
C
|
PRINT 1000
|
DO 100, I = 1, N
|
PRINT 1010, (A(J,I), J = 1, I - 1), REAL(A(I,I)), RZERO,
|
$ (CONJG(A(I,J)), J = I + 1, N)
|
100 CONTINUE
|
PRINT 1020
|
DO 110, I = 1, N
|
PRINT 1010, (A(I,J), J = 1, N)
|
110 CONTINUE
|
PRINT 1030
|
PRINT 1040, (X(I), Y(I), I = 1, N)
|
ALPHA = CMPLX (2.0,3.0)
|
BETA = CMPLX (1.0,-1.0)
|
CALL CHEMV ('UPPER TRIANGULAR A', N, ALPHA, A, LDA, X, 1,
|
$ BETA, Y, 1)
|
PRINT 1050
|
PRINT 1060, (Y(I), I = 1, N)
|
C
|
1000 FORMAT (1X, 'Matrix A in full form:')
|
1010 FORMAT (1X, 4(2X, '(', F6.2, ',', F6.2, ')'))
|
1020 FORMAT (/1X, 'Matrix A in Hermitian form: ',
|
$ '(* in unused elements)')
|
1030 FORMAT (/10X, 'x', 17X, 'y')
|
1040 FORMAT (2(3X, '(', F6.2, ',', F6.2, ')'))
|
1050 FORMAT (/1X, 'Ax + y:')
|
1060 FORMAT (3X, '(', F6.1, ',', F6.1, ')')
|
C
|
END
|
|