Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 6/24/2024
Public

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

Document Table of Contents

mkl_?diatrsv

Triangular solvers with simplified interface for a sparse matrix in the diagonal format with one-based indexing (deprecated).

Syntax

void mkl_sdiatrsv (const char *uplo , const char *transa , const char *diag , 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_ddiatrsv (const char *uplo , const char *transa , const char *diag , 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_cdiatrsv (const char *uplo , const char *transa , const char *diag , 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_zdiatrsv (const char *uplo , const char *transa , const char *diag , 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, but no replacement is available yet in the Inspector-Executor Sparse BLAS API interfaces. You can continue using this routine until a replacement is provided and this can be fully removed.

The mkl_?diatrsv routine solves a system of linear equations with matrix-vector operations for a sparse matrix stored in the diagonal format:

A*y = x

or

AT*y = x,

where:

x and y are vectors,

A is a sparse upper or lower triangular matrix with unit or non-unit main diagonal, AT is the transpose of A.

NOTE:

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

Input Parameters

uplo

Specifies whether the upper or low triangle of the matrix A is used.

If uplo = 'U' or 'u', then the upper triangle of the matrix A is used.

If uplo = 'L' or 'l', then the low triangle of the matrix A is used.

transa

Specifies the system of linear equations.

If transa = 'N' or 'n', then A*y = x

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

diag

Specifies whether A is unit triangular.

If diag = 'U' or 'u', then A is unit triangular.

If diag = 'N' or 'n', then A is not unit triangular.

m

Number of rows of the matrix A.

val

Two-dimensional array of size lval by 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 val, lval≥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.

NOTE:

All elements of this array must be sorted in increasing order.

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.

Contains the vector y.