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:
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.
Parent topic: Sparse BLAS