# Routines and Supported Operations

This section describes operations supported by the Intel MKL Sparse BLAS Level 2 and Level 3 routines. The following notations are used here:

• A is a sparse matrix;

• B and C are dense matrices;

• D is a diagonal scaling matrix;

• x and y are dense vectors;

• alpha and beta are scalars;

`op(A)` is one of the possible operations:

• `op(A) = A`;

• `op(A) = A'` - transpose of A;

• `op(A) = conj(A')` - conjugated transpose of A.

`inv(op(A))` denotes the inverse of `op(A)`.

The Intel MKL Sparse BLAS Level 2 and Level 3 routines support the following operations:

• computing the vector product between a sparse matrix and a dense vector:

```y := alpha*op(A)*x + beta*y
```

• solving a single triangular system:

```y := alpha*inv(op(A))*x
```

• computing a product between sparse matrix and dense matrix:

```C := alpha*op(A)*B + beta*C
```

• solving a sparse triangular system with multiple right-hand sides:

```C := alpha*inv(op(A))*B
```

Intel MKL provides an additional set of the Sparse BLAS Level 2 routines with simplified interfaces. Each of these routines operates on a matrix of the fixed type. The following operations are supported:

• computing the vector product between a sparse matrix and a dense vector (for general and symmetric matrices):

```y := op(A)*x
```

• solving a single triangular system (for triangular matrices):

```y := inv(op(A))*x
```

Matrix type is indicated by the field <mtype> in the routine name (see section Naming Conventions in Sparse BLAS Level 2 and Level 3).

### Note

The routines with simplified interfaces support only four sparse matrix storage formats, specifically:

• CSR format in the 3-array variation accepted in the direct sparse solvers and in the CXML;

• diagonal format accepted in the CXML;

• coordinate format;

• BSR format in the 3-array variation.

Note that routines with both typical (conventional) and simplified interfaces use the same computational kernels that work with certain internal data structures.

The Intel MKL Sparse BLAS Level 2 and Level 3 routines do not support in-place operations.

Complete list of all routines is given in the “Sparse BLAS Level 2 and Level 3 Routines”.

For more complete information about compiler optimizations, see our Optimization Notice.