Visible to Intel only — GUID: GUID-1551D3E6-B4DB-46D1-A305-C775BE2EB29C
Visible to Intel only — GUID: GUID-1551D3E6-B4DB-46D1-A305-C775BE2EB29C
p?gemv
Computes a distributed matrix-vector product using a general matrix.
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 );
- mkl_pblas.h
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.
- 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(subA)')*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.
- y
-
Overwritten by the updated distributed vector sub(y).