1DSYR2K(1) BLAS routine DSYR2K(1)
2
3
4
6 DSYR2K - one of the symmetric rank 2k operations C := alpha*A*B' +
7 alpha*B*A' + beta*C,
8
10 SUBROUTINE DSYR2K(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
11
12 DOUBLE PRECI‐
13 SION
14 ALPHA,BETA
15
16 INTEGER K,LDA,LDB,LDC,N
17
18 CHARACTER TRANS,UPLO
19
20 DOUBLE PRECI‐
21 SION
22 A(LDA,*),B(LDB,*),C(LDC,*)
23
25 DSYR2K performs one of the symmetric rank 2k operations
26
27 or
28
29 C := alpha*A'*B + alpha*B'*A + beta*C,
30
31 where alpha and beta are scalars, C is an n by n symmetric matrix
32 and A and B are n by k matrices in the first case and k by n
33 matrices in the second case.
34
35
37 UPLO - CHARACTER*1.
38 On entry, UPLO specifies whether the upper or lower
39 triangular part of the array C is to be referenced as
40 follows:
41
42 UPLO = 'U' or 'u' Only the upper triangular part of C is to
43 be referenced.
44
45 UPLO = 'L' or 'l' Only the lower triangular part of C is to
46 be referenced.
47
48 Unchanged on exit.
49
50 TRANS - CHARACTER*1.
51 On entry, TRANS specifies the operation to be performed as
52 follows:
53
54 TRANS = 'N' or 'n' C := alpha*A*B' + alpha*B*A' + beta*C.
55
56 TRANS = 'T' or 't' C := alpha*A'*B + alpha*B'*A + beta*C.
57
58 TRANS = 'C' or 'c' C := alpha*A'*B + alpha*B'*A + beta*C.
59
60 Unchanged on exit.
61
62 N - INTEGER.
63 On entry, N specifies the order of the matrix C. N must be at
64 least zero. Unchanged on exit.
65
66 K - INTEGER.
67 On entry with TRANS = 'N' or 'n', K specifies the number of
68 columns of the matrices A and B, and on entry with TRANS =
69 'T' or 't' or 'C' or 'c', K specifies the number of rows of
70 the matrices A and B. K must be at least zero. Unchanged on
71 exit.
72
73 ALPHA - DOUBLE PRECISION.
74 On entry, ALPHA specifies the scalar alpha. Unchanged on exit.
75
76 A - DOUBLE PRECISION array of DIMENSION ( LDA, ka ), where ka is
77 k when TRANS = 'N' or 'n', and is n otherwise. Before
78 entry with TRANS = 'N' or 'n', the leading n by k part of
79 the array A must contain the matrix A, otherwise the leading
80 k by n part of the array A must contain the matrix A.
81 Unchanged on exit.
82
83 LDA - INTEGER.
84 On entry, LDA specifies the first dimension of A as declared in
85 the calling (sub) program. When TRANS = 'N' or 'n' then
86 LDA must be at least max( 1, n ), otherwise LDA must be at
87 least max( 1, k ). Unchanged on exit.
88
89 B - DOUBLE PRECISION array of DIMENSION ( LDB, kb ), where kb is
90 k when TRANS = 'N' or 'n', and is n otherwise. Before
91 entry with TRANS = 'N' or 'n', the leading n by k part of
92 the array B must contain the matrix B, otherwise the leading
93 k by n part of the array B must contain the matrix B.
94 Unchanged on exit.
95
96 LDB - INTEGER.
97 On entry, LDB specifies the first dimension of B as declared in
98 the calling (sub) program. When TRANS = 'N' or 'n' then
99 LDB must be at least max( 1, n ), otherwise LDB must be at
100 least max( 1, k ). Unchanged on exit.
101
102 BETA - DOUBLE PRECISION.
103 On entry, BETA specifies the scalar beta. Unchanged on exit.
104
105 C - DOUBLE PRECISION array of DIMENSION ( LDC, n ).
106 Before entry with UPLO = 'U' or 'u', the leading n by n
107 upper triangular part of the array C must contain the upper tri‐
108 angular part of the symmetric matrix and the strictly lower
109 triangular part of C is not referenced. On exit, the upper tri‐
110 angular part of the array C is overwritten by the upper trian‐
111 gular part of the updated matrix. Before entry with UPLO =
112 'L' or 'l', the leading n by n lower triangular part of the
113 array C must contain the lower triangular part of the symmet‐
114 ric matrix and the strictly upper triangular part of C is not
115 referenced. On exit, the lower triangular part of the array C
116 is overwritten by the lower triangular part of the updated
117 matrix.
118
119 LDC - INTEGER.
120 On entry, LDC specifies the first dimension of C as declared in
121 the calling (sub) program. LDC must be at least max( 1,
122 n ). Unchanged on exit.
123
124 Level 3 Blas routine.
125
126 -- Written on 8-February-1989. Jack Dongarra, Argonne National
127 Laboratory. Iain Duff, AERE Harwell. Jeremy Du Croz, Numerical
128 Algorithms Group Ltd. Sven Hammarling, Numerical Algorithms
129 Group Ltd.
130
131
132
133
134
135
136BLAS routine November 2006 DSYR2K(1)