## Developer Reference

• 2021.1
• 12/04/2020
• Public Content
Contents

# ?sfrk

Performs a symmetric rank-k operation for matrix in RFP format.

## Syntax

Include Files
• mkl.h
Description
The
?sfrk
routines perform a matrix-matrix operation using symmetric matrices. The operation is defined as
`C := alpha*A*AT + beta*C,`
or
`C := alpha*AT*A + beta*C,`
where:
alpha
and
beta
are scalars,
C
is an
n
-by-
n
symmetric matrix in rectangular full packed (RFP) format,
A
is an
n
-by-
k
matrix in the first case and a
k
-by-
n
matrix in the second case.
Input Parameters
matrix_layout
Specifies whether matrix storage layout is row major (
LAPACK_ROW_MAJOR
) or column major (
LAPACK_COL_MAJOR
).
transr
if
transr
= 'N'
or
'n'
, the normal form of RFP
C
is stored;
if
transr
= 'T'
or
't'
, the transpose form of RFP
C
is stored.
uplo
Specifies whether the upper or lower triangular part of the array
c
is used.
If
uplo
=
'U'
or
'u'
, then the upper triangular part of the array
c
is used.
If
uplo
=
'L'
or
'l'
, then the low triangular part of the array
c
is used.
trans
Specifies the operation:
if
trans
= 'N'
or
'n'
, then
C
:=
alpha
*
A
*
A
T
+
beta
*
C
;
if
trans
= 'T'
or
't'
, then
C
:=
alpha
*
A
T
*
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
=
'N'
or
'n'
,
k
specifies the number of columns of the matrix
A
, and on entry with
trans
=
'T'
or
't'
,
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
max(1,
lda
*
ka
)
, where
ka
is in the following table:
 Col_major Row_major trans = 'N' k n trans = 'T' n k
Before entry with
trans
=
'N'
or
'n'
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
.
lda
a
as declared in the calling (sub)program.
lda
is defined by the following table:
 Col_major Row_major trans = 'N' max(1,n) max(1,k) trans = 'T' max(1,k) max(1,n)
beta
Specifies the scalar
beta
.
c
Array, size
(
n
*(
n
+1)/2 )
. Before entry contains the symmetric matrix
C
in RFP format.
Output Parameters
c
If
trans
= 'N'
or
'n'
, then
c
contains
C
:=
alpha
*
A
*
A
' +
beta
*
C
;
if
trans
= 'T'
or
't'
, then
c
contains
C
:=
alpha
*
A
'*
A
+
beta
*
C
;
Return Values
This function returns a value
info
.
If
info
= 0
, the execution is successful.
If
info
< 0
, the
i
-th parameter had an illegal value.
If
info
= -1011
, memory allocation error occurred.

#### Product and Performance Information

1

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