p?gemv
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(
and x
)sub(
are subvectors.y
)When or if , and if if , and if .
trans
= 'N
''
,
n
'sub(
denotes x
)X
(ix
, jx
:jx
+n
-1)incx
= m_x
X
(ix
: ix
+n
-1, jx
)incx
= 1,sub(
denotes y
)Y
(iy
, jy
:jy
+m
-1)incy
= m_y
Y
(iy
: iy
+m
-1, jy
)incy
= 1When or if , and if if , and if .
trans
= 'T
''
, or t
''
,
or C
''
,
c
'sub(
denotes x
)X
(ix
, jx
:jx
+m
-1)incx
= m_x
X
(ix
: ix
+m
-1, jx
)incx
= 1,sub(
denotes y
)Y
(iy
, jy
:jy
+n
-1)incy
= m_y
Y
(iy
: iy
+m
-1, jy
)incy
= 1Input Parameters
- trans
- (global) Specifies the operation:ifortrans= 'N'', thenn'sub(;y) :=alpha*sub(A)'*sub(x) +beta*sub(y)ifortrans= 'T'', thent'sub(;y) :=alpha*sub(A)'*sub(x) +beta*sub(y)ifortrans= 'C'', thenc'sub(.y) :=alpha*conjg(subA)')*sub(x) +beta*sub(y)
- m
- (global) Specifies the number of rows of the distributed matrixsub(,A)m≥0.
- n
- (global) Specifies the number of columns of the distributed matrixsub(,A)n≥0.
- alpha
- (global)Specifies the scalaralpha.
- a
- (local)Array, size(. Before entry this array must contain the local pieces of the distributed matrixlld_a, LOCq(ja+n-1))sub(.A)
- ia,ja
- (global) The row and column indices in the distributed matrixAindicating the first row and the first column of the submatrixsub(, respectively.A)
- desca
- (global and local) array of dimension 9. The array descriptor of the distributed matrixA.
- x
- (local)Array, size(whenjx-1)*m_x+ix+(n-1)*abs(incx))ortrans= 'N''n', and(otherwise.jx-1)*m_x+ix+(m-1)*abs(incx))This array contains the entries of the distributed vectorsub(.x)
- ix,jx
- (global) The row and column indices in the distributed matrixXindicating the first row and the first column of the submatrixsub(, respectively.x)
- descx
- (global and local) array of dimension 9. The array descriptor of the distributed matrixX.
- incx
- (global) Specifies the increment for the elements ofsub(. Only two values are supported, namely 1 andx)m_x.incxmust not be zero.
- beta
- (global)Specifies the scalarbeta. Whenbetais set to zero, thensub(need not be set on input.y)
- y
- (local)Array, size(whenjy-1)*m_y+iy+(m-1)*abs(incy))ortrans= 'N''n', and(otherwise.jy-1)*m_y+iy+(n-1)*abs(incy))This array contains the entries of the distributed vectorsub(.y)
- iy,jy
- (global) The row and column indices in the distributed matrixYindicating the first row and the first column of the submatrixsub(, respectively.y)
- descy
- (global and local) array of dimension 9. The array descriptor of the distributed matrixY.
- incy
- (global) Specifies the increment for the elements ofsub(. Only two values are supported, namely 1 andy)m_y.incymust not be zero.
Output Parameters
- y
- Overwritten by the updated distributed vectorsub(.y)