mkl_?bsrmv
mkl_?bsrmv
Computes matrix - vector product of a sparse matrix stored in the BSR format (deprecated).
Syntax
void
mkl_sbsrmv
(
const
char
*transa
,
const
MKL_INT
*m
,
const
MKL_INT
*k
,
const
MKL_INT
*lb
,
const
float
*alpha
,
const
char
*matdescra
,
const
float
*val
,
const
MKL_INT
*indx
,
const
MKL_INT
*pntrb
,
const
MKL_INT
*pntre
,
const
float
*x
,
const
float
*beta
,
float
*y
);
void
mkl_dbsrmv
(
const
char
*transa
,
const
MKL_INT
*m
,
const
MKL_INT
*k
,
const
MKL_INT
*lb
,
const
double
*alpha
,
const
char
*matdescra
,
const
double
*val
,
const
MKL_INT
*indx
,
const
MKL_INT
*pntrb
,
const
MKL_INT
*pntre
,
const
double
*x
,
const
double
*beta
,
double
*y
);
void
mkl_cbsrmv
(
const
char
*transa
,
const
MKL_INT
*m
,
const
MKL_INT
*k
,
const
MKL_INT
*lb
,
const
MKL_Complex8
*alpha
,
const
char
*matdescra
,
const
MKL_Complex8
*val
,
const
MKL_INT
*indx
,
const
MKL_INT
*pntrb
,
const
MKL_INT
*pntre
,
const
MKL_Complex8
*x
,
const
MKL_Complex8
*beta
,
MKL_Complex8
*y
);
void
mkl_zbsrmv
(
const
char
*transa
,
const
MKL_INT
*m
,
const
MKL_INT
*k
,
const
MKL_INT
*lb
,
const
MKL_Complex16
*alpha
,
const
char
*matdescra
,
const
MKL_Complex16
*val
,
const
MKL_INT
*indx
,
const
MKL_INT
*pntrb
,
const
MKL_INT
*pntre
,
const
MKL_Complex16
*x
,
const
MKL_Complex16
*beta
,
MKL_Complex16
*y
);
Include Files
- mkl.h
Description
This routine is deprecated. Use mkl_sparse_?_mvfrom the Inspector-executor Sparse BLAS interface instead.
Intel® oneAPI Math Kernel Library
The
mkl_?bsrmv
routine performs a matrix-vector operation defined as y := alpha*A*x + beta*y
or
y := alpha*AT*x + beta*y,
where:
alpha
and beta
are scalars, x
and y
are vectors, A
is an m
-by-k
block sparse matrix in the BSR format, A
T
is the transpose of A
.This routine supports a BSR format both with one-based indexing and zero-based indexing.
Input Parameters
- transa
- Specifies the operation.Ifortransa='N''n', then the matrix-vector product is computed asy:=alpha*A*x+beta*yIfortransa='T''t'or'C'or'c', then the matrix-vector product is computed as,y:=alpha*AT*x+beta*y
- m
- Number of block rows of the matrixA.
- k
- Number of block columns of the matrixA.
- lb
- Size of the block in the matrixA.
- alpha
- Specifies the scalaralpha.
- matdescra
- Array of six elements, specifies properties of the matrix used for operation. Only first four array elements are used, their possible values are given inTable “Possible Values of the Parameter. Possible combinations of element values of this parameter are given inmatdescra(descra)”Table “Possible Combinations of Element Values of the Parameter.matdescra”
- val
- Array containing elements of non-zero blocks of the matrixA. Its length is equal to the number of non-zero blocks in the matrixAmultiplied by.lb*lbRefer tovaluesarray description in BSR Format for more details.
- indx
- For one-based indexing, array containing the column indices plus one for each non-zero block of the matrixA. For zero-based indexing, array containing the column indices for each non-zero block of the matrixA.Its length is equal to the number of non-zero blocks in the matrixA.Refer tocolumnsarray description in BSR Format for more details.
- pntrb
- Array of lengthm.This array contains row indices, such thatis the first index of block rowpntrb[i] -pntrb[0]iin the arrayindxRefer topointerBarray description in BSR Format for more details.
- pntre
- Array of lengthm.For zero-based indexing this array contains row indices, such thatis the last index of block rowpntre[i] -pntrb[0] - 1iin the arrayindx.Refer topointerEarray description in BSR Format for more details.
- x
- Array, size at least(ifk*lb)ortransa='N''n', and at least(otherwise. On entry, the arraym*lb)xmust contain the vectorx.
- beta
- Specifies the scalarbeta.
- y
- Array, size at least(ifm*lb)ortransa='N''n', and at least(otherwise. On entry, the arrayk*lb)ymust contain the vectory.
Output Parameters
- y
- Overwritten by the updated vectory.