Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 12/16/2022
Public

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

Document Table of Contents

mkl_?diagemv

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

Syntax

void mkl_sdiagemv (const char *transa , const MKL_INT *m , const float *val , const MKL_INT *lval , const MKL_INT *idiag , const MKL_INT *ndiag , const float *x , float *y );

void mkl_ddiagemv (const char *transa , const MKL_INT *m , const double *val , const MKL_INT *lval , const MKL_INT *idiag , const MKL_INT *ndiag , const double *x , double *y );

void mkl_cdiagemv (const char *transa , const MKL_INT *m , const MKL_Complex8 *val , const MKL_INT *lval , const MKL_INT *idiag , const MKL_INT *ndiag , const MKL_Complex8 *x , MKL_Complex8 *y );

void mkl_zdiagemv (const char *transa , const MKL_INT *m , const MKL_Complex16 *val , const MKL_INT *lval , const MKL_INT *idiag , const MKL_INT *ndiag , 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 Inspector-executor Sparse BLAS interface instead.

The mkl_?diagemv 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 sparse square matrix in the diagonal storage format, 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 y := A*x

If transa = 'T' or 't' or 'C' or 'c', then y := AT*x,

m

Number of rows of the matrix A.

val

Two-dimensional array of size lval*ndiag, contains non-zero diagonals of the matrix A. Refer to values array description in Diagonal Storage Scheme for more details.

lval

Leading dimension of vallval≥m. Refer to lval description in Diagonal Storage Scheme for more details.

idiag

Array of length ndiag, contains the distances between main diagonal and each non-zero diagonals in the matrix A.

Refer to distance array description in Diagonal Storage Scheme for more details.

ndiag

Specifies the number of non-zero diagonals of the matrix A.

x

Array, size is m.

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

Output Parameters
y

Array, size at least m.

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