p?asymv
p?asymv
Computes a distributed matrix-vector product using absolute values for a symmetric matrix.
Syntax
void psasymv
(
const char
*uplo
,
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 pdasymv
(
const char
*uplo
,
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
);
Include Files
- mkl_pblas.h
Description
The
p?symv
routines perform a distributed matrix-vector operation defined as sub(y) := abs(alpha)*abs(sub(A))*abs(sub(x)) + abs(beta*sub(y)),
where:
alpha
and beta
are scalars,sub(
is a A
)n
-by-n
symmetric 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 symmetric 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 symmetric 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 symmetric 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)