|
PROGRAM TEST
|
IMPLICIT NONE
|
C
|
REAL RZERO
|
INTEGER LENGTA, N
|
PARAMETER (N = 4)
|
PARAMETER (LENGTA = (N * N + N) / 2)
|
PARAMETER (RZERO = 0.0E0)
|
C
|
COMPLEX ALPHA, BETA
|
COMPLEX AP(LENGTA), X(N), Y(N)
|
INTEGER I, J
|
C
|
EXTERNAL CHPMV
|
INTRINSIC CMPLX, CONJG, REAL
|
C
|
C Initialize the array AP to store in packed Hermitian form
|
C the matrix A shown below. Initialize the arrays X and Y
|
C to store the vectors x and y shown below.
|
C
|
C 1+0i 1-2i 1-2i 1-2i 1+4i 1+1i
|
C A = 1+2i 2+0i 2-3i 2-3i x = 2+3i y = 1+1i
|
C 1+2i 2+3i 3+0i 3-4i 3+2i 1+1i
|
C 1+2i 2+3i 3+4i 5+0i 4+1i 1+1i
|
C
|
DATA AP / (1.0,8E8), (1.0,2.0), (1.0,2.0), (1.0,2.0),
|
$ (2.0,8E8), (2.0,3.0), (2.0,3.0),
|
$ (3.0,8E8), (3.0,4.0), (5.0,8E8) /
|
C
|
DO 10, I = 1, N
|
X(I) = CMPLX (REAL (I), REAL (5-I))
|
Y(I) = CMPLX (1.0, 1.0)
|
10 CONTINUE
|
PRINT 1000
|
PRINT 1010, REAL (AP(1)), RZERO, (CONJG (AP(J)), J = 2, 4)
|
PRINT 1010, AP(2), REAL (AP(5)), RZERO, (CONJG (AP(J)),
|
$ J = 6, 7)
|
PRINT 1010, AP(3), AP(6), REAL (AP(8)), RZERO, CONJG (AP(9))
|
PRINT 1010, AP(4), AP(7), AP(9), REAL (AP(10)), RZERO
|
PRINT 1030
|
PRINT 1040, (X(I), Y(I), I = 1, 4)
|
ALPHA = (2.0E0, 0.0E0)
|
BETA = (1.0E0, 0.0E0)
|
CALL CHPMV ('LOWER TRIANGULAR A', N, ALPHA, AP, X, 1, BETA,
|
$ Y, 1)
|
PRINT 1050
|
PRINT 1060, (Y(I), I = 1, N)
|
C
|
1000 FORMAT (/1X, 'Array A in full form:')
|
1010 FORMAT (1X, 4(2X, '(', F5.1, ',', F5.1, ')'))
|
1020 FORMAT (/1X, 'Array A in packed form:')
|
1030 FORMAT (/7X, 'x', 14X, 'y')
|
1040 FORMAT (2(3X, '(', F5.1, ',', F5.1, ')'))
|
1050 FORMAT (/1X, 'Ax + y:')
|
1060 FORMAT (3X, '(', F5.1, ',', F5.1, ')')
|
C
|
END
|
|