Developer Reference

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

p?gemv

Computes a distributed matrix-vector product using a general matrix.

Syntax

void psgemv
(
const char
*trans
,
const MKL_INT
*m
,
const MKL_INT
*n
,
const float
*alpha
,
const float
*a
,
const MKL_INT
*ia
,
const MKL_INT
*ja
,
const MKL_INT
*desca
,
const float
*x
,
const MKL_INT
*ix
,
const MKL_INT
*jx
,
const MKL_INT
*descx
,
const MKL_INT
*incx
,
const float
*beta
,
float
*y
,
const MKL_INT
*iy
,
const MKL_INT
*jy
,
const MKL_INT
*descy
,
const MKL_INT
*incy
);
void pdgemv
(
const char
*trans
,
const MKL_INT
*m
,
const MKL_INT
*n
,
const double
*alpha
,
const double
*a
,
const MKL_INT
*ia
,
const MKL_INT
*ja
,
const MKL_INT
*desca
,
const double
*x
,
const MKL_INT
*ix
,
const MKL_INT
*jx
,
const MKL_INT
*descx
,
const MKL_INT
*incx
,
const double
*beta
,
double
*y
,
const MKL_INT
*iy
,
const MKL_INT
*jy
,
const MKL_INT
*descy
,
const MKL_INT
*incy
);
void pcgemv
(
const char
*trans
,
const MKL_INT
*m
,
const MKL_INT
*n
,
const MKL_Complex8
*alpha
,
const MKL_Complex8
*a
,
const MKL_INT
*ia
,
const MKL_INT
*ja
,
const MKL_INT
*desca
,
const MKL_Complex8
*x
,
const MKL_INT
*ix
,
const MKL_INT
*jx
,
const MKL_INT
*descx
,
const MKL_INT
*incx
,
const MKL_Complex8
*beta
,
MKL_Complex8
*y
,
const MKL_INT
*iy
,
const MKL_INT
*jy
,
const MKL_INT
*descy
,
const MKL_INT
*incy
);
void pzgemv
(
const char
*trans
,
const MKL_INT
*m
,
const MKL_INT
*n
,
const MKL_Complex16
*alpha
,
const MKL_Complex16
*a
,
const MKL_INT
*ia
,
const MKL_INT
*ja
,
const MKL_INT
*desca
,
const MKL_Complex16
*x
,
const MKL_INT
*ix
,
const MKL_INT
*jx
,
const MKL_INT
*descx
,
const MKL_INT
*incx
,
const MKL_Complex16
*beta
,
MKL_Complex16
*y
,
const MKL_INT
*iy
,
const MKL_INT
*jy
,
const MKL_INT
*descy
,
const MKL_INT
*incy
);
Include Files
  • mkl_pblas.h
Description
The
p?gemv
routines perform a distributed matrix-vector operation defined as
sub(y) := alpha*sub(A)*sub(x) + beta*sub(y),
or
sub(y) := alpha*sub(A)'*sub(x) + beta*sub(y),
or
sub(y) := alpha*conjg(sub(A)')*sub(x) + beta*sub(y),
where
alpha
and
beta
are scalars,
sub(
A
) is a
m
-by-
n
submatrix,
sub(
A
) =
A
(
ia
:
ia
+
m
-1,
ja
:
ja
+
n
-1)
,
sub(
x
)
and
sub(
y
)
are subvectors.
When
trans
= '
N
'
or
'
n
'
,
sub(
x
)
denotes
X
(
ix
,
jx
:
jx
+
n
-1)
if
incx
=
m_x
, and
X
(
ix
:
ix
+
n
-1,
jx
)
if
incx
= 1,
sub(
y
)
denotes
Y
(
iy
,
jy
:
jy
+
m
-1)
if
incy
=
m_y
, and
Y
(
iy
:
iy
+
m
-1,
jy
)
if
incy
= 1
.
When
trans
= '
T
'
or
'
t
'
, or
'
C
'
, or
'
c
'
,
sub(
x
)
denotes
X
(
ix
,
jx
:
jx
+
m
-1)
if
incx
=
m_x
, and
X
(
ix
:
ix
+
m
-1,
jx
)
if
incx
= 1,
sub(
y
)
denotes
Y
(
iy
,
jy
:
jy
+
n
-1)
if
incy
=
m_y
, and
Y
(
iy
:
iy
+
m
-1,
jy
)
if
incy
= 1
.
Input Parameters
trans
(global) Specifies the operation:
if
trans
= '
N
'
or
'
n
'
, then
sub(
y
) :=
alpha
*sub(
A
)'*sub(
x
) +
beta
*sub(
y
)
;
if
trans
= '
T
'
or
'
t
'
, then
sub(
y
) :=
alpha
*sub(
A
)'*sub(
x
) +
beta
*sub(
y
)
;
if
trans
= '
C
'
or
'
c
'
, then
sub(
y
) :=
alpha
*conjg(sub
A
)')*sub(
x
) +
beta
*sub(
y
)
.
m
(global) Specifies the number of rows of the distributed matrix
sub(
A
)
,
m
0.
n
(global) Specifies the number of columns of the distributed matrix
sub(
A
)
,
n
0.
alpha
(global)
Specifies the scalar
alpha
.
a
(local)
Array, size
(
lld_a
, LOCq(
ja
+
n
-1))
. Before entry this array must contain the local pieces of the distributed matrix
sub(
A
)
.
ia
,
ja
(global) The row and column indices in the distributed matrix
A
indicating the first row and the first column of the submatrix
sub(
A
)
, respectively.
desca
(global and local) array of dimension 9. The array descriptor of the distributed matrix
A
.
x
(local)
Array, size
(
jx
-1)*
m_x
+
ix
+(
n
-1)*abs(
incx
))
when
trans
= '
N
'
or
'n'
, and
(
jx
-1)*
m_x
+
ix
+(
m
-1)*abs(
incx
))
otherwise.
This array contains the entries of the distributed vector
sub(
x
)
.
ix
,
jx
(global) The row and column indices in the distributed matrix
X
indicating the first row and the first column of the submatrix
sub(
x
)
, respectively.
descx
(global and local) array of dimension 9. The array descriptor of the distributed matrix
X
.
incx
(global) Specifies the increment for the elements of
sub(
x
)
. Only two values are supported, namely 1 and
m_x
.
incx
must not be zero.
beta
(global)
Specifies the scalar
beta
. When
beta
is set to zero, then
sub(
y
)
need not be set on input.
y
(local)
Array, size
(
jy
-1)*
m_y
+
iy
+(
m
-1)*abs(
incy
))
when
trans
= '
N
'
or
'n'
, and
(
jy
-1)*
m_y
+
iy
+(
n
-1)*abs(
incy
))
otherwise.
This array contains the entries of the distributed vector
sub(
y
)
.
iy
,
jy
(global) The row and column indices in the distributed matrix
Y
indicating the first row and the first column of the submatrix
sub(
y
)
, respectively.
descy
(global and local) array of dimension 9. The array descriptor of the distributed matrix
Y
.
incy
(global) Specifies the increment for the elements of
sub(
y
)
. Only two values are supported, namely 1 and
m_y
.
incy
must not be zero.
Output Parameters
y
Overwritten by the updated distributed vector
sub(
y
)
.

Product and Performance Information

1

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