Performs internal optimizations for oneapi::mkl::sparse::gemv by analyzing the matrix structure.

Description and Assumptions

The oneapi::mkl::sparse::optimize_gemv routine analyzes matrix structure and performs optimizations. Optimized data is then stored in the handle.


namespace oneapi::mkl::sparse {

   sycl::event optimize_gemv (sycl::queue                          &queue,
                              oneapi::mkl::transpose               transpose_val,
                              oneapi::mkl::sparse::matrix_handle_t handle,
                              const std::vector<sycl::event>       &dependencies = {});


Input Parameters


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


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


Handle to object containing sparse matrix and other internal data. Created using the oneapi::mkl::sparse::set_csr_data routine.


List of events that oneapi::mkl::sparse::optimize_gemv routine depends on.

Output Parameters


Handle might be updated with some internal optimized data by this routine.


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 optimize_gemv routine.