Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 11/07/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

mkl_?bsrgemv

Computes matrix - vector product of a sparse general matrix stored in the BSR format (3-array variation) with one-based indexing (deprecated).

Syntax

void mkl_sbsrgemv (const char *transa , const MKL_INT *m , const MKL_INT *lb , const float *a , const MKL_INT *ia , const MKL_INT *ja , const float *x , float *y );

void mkl_dbsrgemv (const char *transa , const MKL_INT *m , const MKL_INT *lb , const double *a , const MKL_INT *ia , const MKL_INT *ja , const double *x , double *y );

void mkl_cbsrgemv (const char *transa , const MKL_INT *m , const MKL_INT *lb , const MKL_Complex8 *a , const MKL_INT *ia , const MKL_INT *ja , const MKL_Complex8 *x , MKL_Complex8 *y );

void mkl_zbsrgemv (const char *transa , const MKL_INT *m , const MKL_INT *lb , const MKL_Complex16 *a , const MKL_INT *ia , const MKL_INT *ja , const MKL_Complex16 *x , MKL_Complex16 *y );

Include Files

  • mkl.h

Description

This routine is deprecated. Use mkl_sparse_?_mvfrom the Intel® oneAPI Math Kernel Library (oneMKL) Inspector-executor Sparse BLAS interface instead.

The mkl_?bsrgemv routine performs a matrix-vector operation defined as

y := A*x

or

y := AT*x,

where:

x and y are vectors,

A is an m-by-m block sparse square matrix in the BSR format (3-array variation), AT is the transpose of A.

NOTE:

This routine supports only one-based indexing of the input arrays.

Input Parameters

transa

Specifies the operation.

If transa = 'N' or 'n', then the matrix-vector product is computed as y := A*x

If transa = 'T' or 't' or 'C' or 'c', then the matrix-vector product is computed as y := AT*x,

m

Number of block rows of the matrix A.

lb

Size of the block in the matrix A.

a

Array containing elements of non-zero blocks of the matrix A. Its length is equal to the number of non-zero blocks in the matrix A multiplied by lb*lb. Refer to values array description in BSR Format for more details.

ia

Array of length (m + 1), containing indices of block in the array a, such that ia[i] - ia[0] is the index in the array a of the first non-zero element from the row i. The value of the last element ia[m] - ia[0] is equal to the number of non-zero blocks. Refer to rowIndex array description in BSR Format for more details.

ja

Array containing the column indices plus one for each non-zero block in the matrix A.

Its length is equal to the number of non-zero blocks of the matrix A. Refer to columns array description in BSR Format for more details.

x

Array, size (m*lb).

On entry, the array x must contain the vector x.

Output Parameters

y

Array, size at least (m*lb).

On exit, the array y must contain the vector y.