Visible to Intel only — GUID: GUID-7F8D9A7A-6A31-4B9E-B4E3-61D38D530E0E
Visible to Intel only — GUID: GUID-7F8D9A7A-6A31-4B9E-B4E3-61D38D530E0E
p?agemv
Computes a distributed matrix-vector product using absolute values for a general matrix.
Syntax
void psagemv (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 pdagemv (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 pcagemv (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 pzagemv (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?agemv routines perform a distributed matrix-vector operation defined as
sub(y) := abs(alpha)*abs(sub(A)')*abs(sub(x)) + abs(beta*sub(y)),
or
sub(y) := abs(alpha)*abs(sub(A)')*abs(sub(x)) + abs(beta*sub(y)),
or
sub(y) := abs(alpha)*abs(conjg(sub(A)'))*abs(sub(x)) + abs(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:ix, jx:jx+n-1) if incx = m_x, and
X(ix:ix+n-1, jx:jx) if incx = 1,
sub(y) denotes Y(iy:iy, jy:jy+m-1) if incy = m_y, and
Y(iy:iy+m-1, jy:jy) if incy = 1.
When trans = 'T' or 't', or 'C', or 'c',
sub(x) denotes X(ix:ix, jx:jx+m-1) if incx = m_x, and
X(ix:ix+m-1, jx:jx) if incx = 1,
sub(y) denotes Y(iy:iy, jy:jy+n-1) if incy = m_y, and
Y(iy:iy+m-1, jy: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|*|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).