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

NAME

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

SYNOPSIS

10       SUBROUTINE ZSYR2K(UPLO,TRANS,N,K,ALPHA,A,LDA,B,LDB,BETA,C,LDC)
11
12           DOUBLE                                                     COMPLEX
13                                                                      ALPHA,BETA
14
15           INTEGER                                                    K,LDA,LDB,LDC,N
16
17           CHARACTER                                                  TRANS,UPLO
18
19           DOUBLE                                                     COMPLEX
20                                                                      A(LDA,*),B(LDB,*),C(LDC,*)
21

PURPOSE

23       ZSYR2K  performs one of the symmetric rank 2k operations
24
25       or
26
27          C := alpha*A'*B + alpha*B'*A + beta*C,
28
29       where  alpha and beta  are scalars,  C is an  n by n  symmetric  matrix
30       and   A  and B  are  n by k  matrices  in the  first  case  and  k by n
31       matrices in the second case.
32
33

ARGUMENTS

35       UPLO   - CHARACTER*1.
36              On  entry,   UPLO  specifies  whether   the   upper   or   lower
37              triangular   part   of  the   array  C  is to be  referenced  as
38              follows:
39
40              UPLO = 'U' or 'u'   Only the  upper triangular part of  C is  to
41              be referenced.
42
43              UPLO  = 'L' or 'l'   Only the  lower triangular part of  C is to
44              be referenced.
45
46              Unchanged on exit.
47
48       TRANS  - CHARACTER*1.
49              On entry,  TRANS  specifies the operation  to  be  performed  as
50              follows:
51
52              TRANS = 'N' or 'n'    C := alpha*A*B' + alpha*B*A' + beta*C.
53
54              TRANS = 'T' or 't'    C := alpha*A'*B + alpha*B'*A + beta*C.
55
56              Unchanged on exit.
57
58       N      - INTEGER.
59              On  entry,  N specifies the order of the matrix C.  N must be at
60              least zero.  Unchanged on exit.
61
62       K      - INTEGER.
63              On entry with  TRANS = 'N' or 'n',  K  specifies  the number  of
64              columns  of the  matrices  A and B,  and on  entry  with TRANS =
65              'T' or 't',  K  specifies  the number of rows of the matrices  A
66              and B.  K must be at least zero.  Unchanged on exit.
67
68       ALPHA  - COMPLEX*16      .
69              On entry, ALPHA specifies the scalar alpha.  Unchanged on exit.
70
71       A      - COMPLEX*16       array of DIMENSION ( LDA, ka ), where ka is
72              k   when   TRANS  =  'N'  or 'n',  and is  n  otherwise.  Before
73              entry with  TRANS = 'N' or 'n',  the  leading  n by  k  part  of
74              the array  A  must contain the matrix  A,  otherwise the leading
75              k by n  part of the  array   A   must  contain   the  matrix  A.
76              Unchanged on exit.
77
78       LDA    - INTEGER.
79              On  entry, LDA specifies the first dimension of A as declared in
80              the  calling  (sub)  program.   When  TRANS = 'N'  or  'n'  then
81              LDA  must  be  at  least  max( 1, n ), otherwise  LDA must be at
82              least  max( 1, k ).  Unchanged on exit.
83
84       B      - COMPLEX*16       array of DIMENSION ( LDB, kb ), where kb is
85              k  when  TRANS = 'N' or 'n',   and  is   n   otherwise.   Before
86              entry  with   TRANS  = 'N' or 'n',  the  leading  n by k part of
87              the array  B  must contain the matrix  B,  otherwise the leading
88              k  by  n   part  of  the  array   B  must contain  the matrix B.
89              Unchanged on exit.
90
91       LDB    - INTEGER.
92              On entry, LDB specifies the first dimension of B as declared  in
93              the   calling   (sub)   program.   When  TRANS = 'N' or 'n' then
94              LDB must be at least  max( 1, n ), otherwise   LDB  must  be  at
95              least  max( 1, k ).  Unchanged on exit.
96
97       BETA   - COMPLEX*16      .
98              On entry, BETA specifies the scalar beta.  Unchanged on exit.
99
100       C      - COMPLEX*16       array of DIMENSION ( LDC, n ).
101              Before  entry   with   UPLO  =  'U' or 'u',  the leading  n by n
102              upper triangular part of the array C must contain the upper tri‐
103              angular  part   of the  symmetric matrix  and the strictly lower
104              triangular part of C is not referenced.  On exit, the upper tri‐
105              angular  part of the array  C is overwritten by the upper trian‐
106              gular part of the updated matrix.  Before entry   with   UPLO  =
107              'L'  or  'l',   the leading  n by n lower triangular part of the
108              array C must contain the lower triangular part  of the   symmet‐
109              ric  matrix   and the strictly upper triangular part of C is not
110              referenced.  On exit, the lower triangular part of the array   C
111              is  overwritten  by  the  lower  triangular  part of the updated
112              matrix.
113
114       LDC    - INTEGER.
115              On entry, LDC specifies the first dimension of C as declared  in
116              the  calling  (sub)  program.   LDC  must  be  at  least max( 1,
117              n ).  Unchanged on exit.
118

FURTHER DETAILS

120       Level 3 Blas routine.
121
122       -- Written on 8-February-1989.
123          Jack Dongarra, Argonne National Laboratory.
124          Iain Duff, AERE Harwell.
125          Jeremy Du Croz, Numerical Algorithms Group Ltd.
126          Sven Hammarling, Numerical Algorithms Group Ltd.
127
128
129
130
131BLAS routine                     November 2008                       ZSYR2K(1)
Impressum