p?hemv
p?hemv
Computes a distributed matrix-vector product using a Hermitian matrix.
Syntax
void pchemv
(
const char
*uplo
,
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 pzhemv
(
const char
*uplo
,
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?hemv
routines perform a distributed matrix-vector operation defined as sub(y) := alpha*sub(A)*sub(x) + beta*sub(y),
where:
alpha
and beta
are scalars,sub(
is a A
)n
-by-n
Hermitian distributed matrix,
sub(
,A
)=A
(ia
:ia
+n
-1, ja
:ja
+n
-1)sub(
and x
)sub(
are distributed vectors.y
)
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
+n
-1)incy
= m_y
Y
(iy
: iy
+n
-1, jy
)incy
= 1Input Parameters
- uplo
- (global) Specifies whether the upper or lower triangular part of the Hermitian distributed matrixsub(is used:A)Iforuplo='U''u', then the upper triangular part of thesub(is used.A)Iforuplo='L''l', then the low triangular part of thesub(is used.A)
- n
- (global) Specifies the order of the distributed matrixsub(,A)n≥0.
- alpha
- (global)Specifies the scalaralpha.
- a
- (local)Array, size(. This array contains the local pieces of the distributed matrixlld_a, LOCq(ja+n-1))sub(.A)Before entry whenoruplo='U''u', then-by-nupper triangular part of the distributed matrixsub(must contain the upper triangular part of the Hermitian distributed matrix and the strictly lower triangular part ofA)sub(is not referenced, and whenA)oruplo='L''l', then-by-nlower triangular part of the distributed matrixsub(must contain the lower triangular part of the Hermitian distributed matrix and the strictly upper triangular part ofA)sub(is not referenced.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 at least(.jx-1)*m_x+ix+(n-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 at least(.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)