Developer Reference

  • 098
  • 03/30/2020
  • Public Content
Contents

p?gemm

Computes a scalar-matrix-matrix product and adds the result to a scalar-matrix product for distributed matrices.

Syntax

call psgemm
(
transa
,
transb
,
m
,
n
,
k
,
alpha
,
a
,
ia
,
ja
,
desca
,
b
,
ib
,
jb
,
descb
,
beta
,
c
,
ic
,
jc
,
descc
)
call pdgemm
(
transa
,
transb
,
m
,
n
,
k
,
alpha
,
a
,
ia
,
ja
,
desca
,
b
,
ib
,
jb
,
descb
,
beta
,
c
,
ic
,
jc
,
descc
)
call pcgemm
(
transa
,
transb
,
m
,
n
,
k
,
alpha
,
a
,
ia
,
ja
,
desca
,
b
,
ib
,
jb
,
descb
,
beta
,
c
,
ic
,
jc
,
descc
)
call pzgemm
(
transa
,
transb
,
m
,
n
,
k
,
alpha
,
a
,
ia
,
ja
,
desca
,
b
,
ib
,
jb
,
descb
,
beta
,
c
,
ic
,
jc
,
descc
)
Include Files
  • mkl_pblas.h
Description
The
p?gemm
routines perform a matrix-matrix operation with general distributed matrices. The operation is defined as
sub(
C
) :=
alpha
*op(sub(
A
))*op(sub(
B
)) +
beta
*sub(
C
),
where:
op(
x
)
is one of
op(
x
) =
x
, or
op(
x
) =
x
'
,
alpha
and
beta
are scalars,
sub(
A
)=
A
(
ia
:
ia
+
m
-1,
ja
:
ja
+
k
-1)
,
sub(
B
)=
B
(
ib
:
ib
+
k
-1,
jb
:
jb
+
n
-1)
, and
sub(
C
)=
C
(
ic
:
ic
+
m
-1,
jc
:
jc
+
n
-1)
, are distributed matrices.
Input Parameters
transa
(global)
CHARACTER*1
.
Specifies the form of
op(sub(
A
))
used in the matrix multiplication:
if
transa
= 'N'
or
'n'
, then
op(sub(
A
)) = sub(
A
)
;
if
transa
= 'T'
or
't'
, then
op(sub(
A
)) = sub(
A
)'
;
if
transa
= 'C'
or
'c'