Developer Reference for Intel® oneAPI Math Kernel Library for C
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)
DOUBLE PRECISION for pdagemv COMPLEX for pcagemv DOUBLE COMPLEX for pzagemv Specifies the scalar alpha .
a
(local)
DOUBLE PRECISION for pdagemv COMPLEX for pcagemv DOUBLE COMPLEX for pzagemv 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)
DOUBLE PRECISION for pdagemv COMPLEX for pcagemv DOUBLE COMPLEX for pzagemv 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)
DOUBLE PRECISION for pdagemv COMPLEX for pcagemv DOUBLE COMPLEX for pzagemv Specifies the scalar beta . When beta is set to zero, then sub(y) need not be set on input.
y
(local)
DOUBLE PRECISION for pdagemv COMPLEX for pcagemv DOUBLE COMPLEX for pzagemv 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) .