1DSYR2K(1)                        BLAS routine                        DSYR2K(1)
2
3
4

NAME

6       DSYR2K  -  performs  one  of  the  symmetric  rank 2k operations   C :=
7       alpha*A*B' + alpha*B*A' + beta*C,
8

SYNOPSIS

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

PURPOSE

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

ARGUMENTS

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

FURTHER DETAILS

125       Level 3 Blas routine.
126
127
128       -- Written on 8-February-1989.
129          Jack Dongarra, Argonne National Laboratory.
130          Iain Duff, AERE Harwell.
131          Jeremy Du Croz, Numerical Algorithms Group Ltd.
132          Sven Hammarling, Numerical Algorithms Group Ltd.
133
134
135
136
137BLAS routine                     November 2008                       DSYR2K(1)
Impressum