# trsv¶

Solves a system of linear equations for a triangular sparse matrix.

Description and Assumptions

Refer to Supported Types for a list of supported <fp> and <intType>. The oneapi::mkl::sparse::trsv routine solves a system of linear equations for a square matrix:

$\text{op}(A) y \leftarrow x$

where: A is a triangular sparse matrix of size m rows by m columns, op is a matrix modifier for matrix A, x and y are dense vectors of length at least m.

## trsv (Buffer version)¶

Syntax

namespace oneapi::mkl::sparse {

void trsv (sycl::queue                          &queue,
oneapi::mkl::uplo                    uplo_val
oneapi::mkl::transpose               transpose_val,
oneapi::mkl::diag                    diag_val
oneapi::mkl::sparse::matrix_handle_t A_handle,
sycl::buffer<fp, 1>                  &x,
sycl::buffer<fp, 1>                  &y);

}


Input Parameters

queue

Specifies the SYCL command queue which will be used for SYCL kernels execution.

uplo_val

Specifies which part is to be processed. The possible options are described in uplo enum class.

transpose_val

Specifies operation op() on input matrix. The possible options are described in transpose enum class.

diag_val

Specifies if the diagonal is unit or not. The possible options are described in diag enum class.

A_handle

Handle to object containing sparse matrix $$A$$. Created using the oneapi::mkl::sparse::set_csr_data routine.

x

SYCL memory object containing an array of size at least equal to the number of columns of matrix $$\text{op}(A)$$.

y

SYCL memory object containing an array of size at least equal to the number of rows of matrix $$\text{op}(A)$$.

Output Parameters

y

SYCL memory object containing an array of size at least nRows filled with the solution to the system of linear equations.

Throws

This routine shall throw the following exceptions if the associated condition is detected. An implementation may throw additional implementation-specific exception(s) in case of error conditions not covered here.

## trsv (USM version)¶

Syntax

namespace oneapi::mkl::sparse {

sycl::event trsv (sycl::queue                           &queue,
oneapi::mkl::uplo                     uplo_val
oneapi::mkl::transpose                transpose_val,
oneapi::mkl::diag                     diag_val
oneapi::mkl::sparse::matrix_handle_t  A_handle,
fp                                    *x,
fp                                    *y
const std::vector<sycl::event>        &dependencies = {});

}


Input Parameters

queue

Specifies the SYCL command queue which will be used for SYCL kernels execution.

uplo_val

Specifies which part is to be processed. The possible options are described in uplo enum class.

transpose_val

Specifies operation op() on input matrix. The possible options are described in transpose enum class.

diag_val

Specifies if the diagonal is unit or not. The possible options are described in diag enum class.

A_handle

Handle to object containing sparse matrix $$A$$. Created using the oneapi::mkl::sparse::set_csr_data routine.

x

Device-accessible USM object containing an array of size at least equal to the number of columns of matrix $$\text{op}(A)$$.

y

Device-accessible USM object containing an array of size at least equal to the number of rows of matrix $$\text{op}(A)$$.

dependencies

List of events that oneapi::mkl::sparse::trmv routine depends on. If omitted, defaults to no dependencies.

Output Parameters

y

Device-accessible USM object containing an array of size at least nRows filled with the solution to the system of linear equations.

Throws

This routine shall throw the following exceptions if the associated condition is detected. An implementation may throw additional implementation-specific exception(s) in case of error conditions not covered here.

Return Values

Output event that can be waited upon or added as a dependency for the completion of trmv routine.