Contents

# cblas_?syrk

Performs a symmetric rank-k update.

## Syntax

Include Files
• mkl.h
Description
The
?syrk
routines perform a rank-k
matrix-matrix operation for a symmetric matrix
C
using a general matrix
A
. The operation is defined as:
`C := alpha*A*A' + beta*C,`
or
`C := alpha*A'*A + beta*C,`
where:
alpha
and
beta
are scalars,
C
is an
n
-by-
n
symmetric matrix,
A
is an
n
-by-
k
matrix in the first case and a
k
-by-
n
matrix in the second case.
Input Parameters
Layout
Specifies whether two-dimensional array storage is row-major (
CblasRowMajor
) or column-major (
CblasColMajor
).
uplo
Specifies whether the upper or lower triangular part of the array
c
is used.
If
uplo
=
CblasUpper
, then the upper triangular part of the array
c
is used.
If
uplo
=
CblasLower
, then the low triangular part of the array
c
is used.
trans
Specifies the operation:
if
trans
=
CblasNoTrans
, then
C
:=
alpha
*
A
*
A
' +
beta
*
C
;
if
trans
=
CblasTrans
, then
C
:=
alpha
*
A
'*
A
+
beta
*
C
;
if
trans
=
CblasConjTrans
, then
C
:=
alpha
*
A
'*
A
+
beta
*
C
.
n
Specifies the order of the matrix
C
.
The value of
n
must be at least zero.
k
On entry with
trans
=
CblasNoTrans
,
k
specifies the number of columns of the matrix
a
, and on entry with
trans
=
CblasTrans
or
trans
=
CblasConjTrans
,
k
specifies the number of rows of the matrix
a
.
The value of
k
must be at least zero.
alpha
Specifies the scalar
alpha
.
a
Array, size
lda
*
ka
, where
ka
is
k
when
trans
=
CblasNoTrans
, and is
n
otherwise. Before entry with
trans
=
CblasNoTrans
n
-by-
k
part of the array
a
must contain the matrix
A
k
-by-
n
part of the array
a
must contain the matrix
A
.
 trans=CblasNoTrans trans=CblasConjTrans Layout = CblasColMajor Array, size lda*k.Before entry, the leading n-by-k part of the array a must contain the matrix A. Array, size lda*n.Before entry, the leading k-by-n part of the array a must contain the matrix A. Layout = CblasRowMajor Array, size lda*n.Before entry, the leading k-by-n part of the array a must contain the matrix A. Array, size lda*k.Before entry, the leading n-by-k part of the array a must contain the matrix A.
lda
 trans=CblasNoTrans trans=CblasConjTrans Layout = CblasColMajor lda must be at least max(1, n). lda must be at least max(1, k) Layout = CblasRowMajor lda must be at least max(1, k) lda must be at least max(1, n).
beta
Specifies the scalar
beta
.
c
Array, size
ldc
*
n
. Before entry with
uplo
=
CblasUpper
n
-by-
n
upper triangular part of the array
c
must contain the upper triangular part of the symmetric matrix and the strictly lower triangular part of
c
is not referenced.
Before entry with
uplo
=
CblasLower
n
-by-
n
lower triangular part of the array
c
must contain the lower triangular part of the symmetric matrix and the strictly upper triangular part of
c
is not referenced.
ldc
c
as declared in the calling (sub)program. The value of
ldc
must be at least
max(1,
n
)
.
Output Parameters
c
With
uplo
=
CblasUpper
, the upper triangular part of the array
c
is overwritten by the upper triangular part of the updated matrix.
With
uplo
=
CblasLower
, the lower triangular part of the array
c
is overwritten by the lower triangular part of the updated matrix.

#### Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.