Developer Reference for Intel® oneAPI Math Kernel Library for C
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(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.
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*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.
 
Output Parameters
- y
 -  
     
Overwritten by the updated distributed vector sub(y).