Developer Reference

  • 2020.2
  • 07/15/2020
  • Public Content
Contents

p?hemm

Performs a scalar-matrix-matrix product (one matrix operand is Hermitian) and adds the result to a scalar-matrix product.

Syntax

call pchemm
(
side
,
uplo
,
m
,
n
,
alpha
,
a
,
ia
,
ja
,
desca
,
b
,
ib
,
jb
,
descb
,
beta
,
c
,
ic
,
jc
,
descc
)
call pzhemm
(
side
,
uplo
,
m
,
n
,
alpha
,
a
,
ia
,
ja
,
desca
,
b
,
ib
,
jb
,
descb
,
beta
,
c
,
ic
,
jc
,
descc
)
Include Files
  • mkl_pblas.h
Description
The
p?hemm
routines perform a matrix-matrix operation with distributed matrices. The operation is defined as
sub(
C
):=
alpha
*sub(
A
)*sub(
B
)+
beta
*sub(
C
),
or
sub(
C
):=
alpha
*sub(
B
)*sub(
A
)+
beta
*sub(
C
),
where:
alpha
and
beta
are scalars,
sub(
A
)
is a Hermitian distributed matrix,
sub(
A
)=
A
(
ia
:
ia
+
m
-1,
ja
:
ja
+
m
-1)
, if
side
=
'L'
, and
sub(
A
)=
A
(
ia
:
ia
+
n
-1,
ja
:
ja
+
n
-1)
, if
side
=
'R'
.
sub(
B
)
and
sub(
C
)
are
m
-by-
n
distributed matrices.
sub(
B
)=
B
(
ib
:
ib
+
m
-1,
jb
:
jb
+
n
-1)
,
sub(
C
)=
C
(
ic
:
ic
+
m
-1,
jc
:
jc
+
n
-1)
.
Input Parameters
side
(global)
CHARACTER*1
.
Specifies whether the Hermitian distributed matrix
sub(
A
)
appears on the left or right in the operation:
if
side
=
'L'
or
'l'
, then
sub(
C
) :=
alpha
*sub(
A
) *sub(
B
) +
beta
*sub(
C
)
;
if
side
=
'R'
or
'r'
, then
sub(
C
) :=
alpha
*sub(
B
) *sub(
A
) +
beta
*sub(
C
)
.
uplo
(global)
CHARACTER*1
.
Specifies whether the upper or lower triangular part of the Hermitian distributed matrix
sub(
A
)
is used:
if
uplo
=
'U'
or
'u'
, then the upper triangular part is used;
if
uplo
=
'L'
or
'l'
, then the lower triangular part is used.
m
(global)
INTEGER
.
Specifies the number of rows of the distribute submatrix
sub(
C
)
,
m
0.
n
(global)
INTEGER
.
Specifies the number of columns of the distribute submatrix
sub(
C
)
,
n
0.
alpha
(global)
COMPLEX
for
pchemm
DOUBLE COMPLEX
for
pzhemm
Specifies the scalar
alpha
.
a
(local)
COMPLEX
for
pchemm