|
PROGRAM TEST
|
IMPLICIT NONE
|
C
|
INTEGER K, LDA, LDB, LDC, N
|
PARAMETER (K = 2)
|
PARAMETER (N = 3)
|
PARAMETER (LDA = N)
|
PARAMETER (LDB = N)
|
PARAMETER (LDC = N)
|
C
|
DOUBLE PRECISION A(LDA,K), ALPHA, B(LDB,K), BETA, C(LDC,N)
|
INTEGER I, J
|
C
|
EXTERNAL DSYR2K
|
INTRINSIC DBLE
|
C
|
C Initialize the arrays A and B to store the matrices A and B
|
C shown below. Initialize the array C to store in symmetric
|
C form the symmetric matrix C shown below.
|
C
|
C 3 4 4 7 1 2 3
|
C A = 5 6 B = 5 8 C = 2 4 5
|
C 7 8 6 9 3 5 6
|
C
|
DATA A / 1.0D0, 1.0D0, 1.0D0, 2.0D0, 2.0D0, 2.0D0 /
|
DATA B / 1.0D0, 2.0D0, 1.0D0, 2.0D0, 1.0D0, 2.0D0 /
|
DATA C / 1.0D2, 1.0D2, 1.0D2, 8D8, 1.0D2, 1.0D2, 8D8, 8D8,
|
$ 1.0D2 /
|
C
|
ALPHA = 1.0D0
|
BETA = 1.0D0
|
PRINT 1000
|
DO 100, I = 1, N
|
PRINT 1010, (C(I,J), J = 1, I), (C(J,I), J = I + 1, N)
|
100 CONTINUE
|
PRINT 1020
|
PRINT 1010, ((C(I,J), J = 1, N), I = 1, N)
|
PRINT 1030
|
DO 110, I = 1, N
|
PRINT 1010, (A(I,J), J = 1, K)
|
110 CONTINUE
|
PRINT 1040
|
DO 120, I = 1, N
|
PRINT 1010, (B(I,J), J = 1, K)
|
120 CONTINUE
|
CALL DSYR2K ('LOWER TRIANGULAR C', 'NOT TRANSPOSED C', N, K,
|
$ ALPHA, A, LDA, B, LDB, BETA, C, LDC)
|
PRINT 1050
|
DO 130, I = 1, N
|
PRINT 1010, (C(I,J), J = 1, I), (C(J,I), J = I + 1, N)
|
130 CONTINUE
|
C
|
1000 FORMAT (1X, 'C in full form:')
|
1010 FORMAT (3(2X, F6.1))
|
1020 FORMAT (/1X, 'C in symmetric form: (* in unused elements)')
|
1030 FORMAT (/1X, 'A:')
|
1040 FORMAT (/1X, 'B:')
|
1050 FORMAT (/1X, 'AB'' + BA'' + C:')
|
C
|
END
|
|