pub unsafe extern "C" fn cusparseCgebsr2gebsc(
handle: cusparseHandle_t,
mb: c_int,
nb: c_int,
nnzb: c_int,
bsrSortedVal: *const cuComplex,
bsrSortedRowPtr: *const c_int,
bsrSortedColInd: *const c_int,
rowBlockDim: c_int,
colBlockDim: c_int,
bscVal: *mut cuComplex,
bscRowInd: *mut c_int,
bscColPtr: *mut c_int,
copyValues: cusparseAction_t,
idxBase: cusparseIndexBase_t,
pBuffer: *mut c_void,
) -> cusparseStatus_tExpand description
This function can be seen as the same as csr2csc() when each block of size rowBlockDim*colBlockDim is regarded as a scalar.
This sparsity pattern of the result matrix can also be seen as the transpose of the original sparse matrix, but the memory layout of a block does not change.
The user must call gebsr2gebsc_bufferSize() to determine the size of the buffer required by gebsr2gebsc(), allocate the buffer, and pass the buffer pointer to gebsr2gebsc().
- The routine requires no extra storage if
pBuffer != NULL - The routine supports asynchronous execution if the Stream Ordered Memory Allocator is available
- The routine supports CUDA graph capture if the Stream Ordered Memory Allocator is available.