pub unsafe extern "C" fn cusparseZbsrsv2_bufferSize(
handle: cusparseHandle_t,
dirA: cusparseDirection_t,
transA: cusparseOperation_t,
mb: c_int,
nnzb: c_int,
descrA: cusparseMatDescr_t,
bsrSortedValA: *mut cuDoubleComplex,
bsrSortedRowPtrA: *const c_int,
bsrSortedColIndA: *const c_int,
blockDim: c_int,
info: bsrsv2Info_t,
pBufferSizeInBytes: *mut c_int,
) -> cusparseStatus_tExpand description
This function returns size of the buffer used in bsrsv2, a new sparse triangular linear system op(A)*y =$\alpha$x.
A is an (mb*blockDim)x(mb*blockDim) sparse matrix that is defined in BSR storage format by the three arrays bsrValA, bsrRowPtrA, and bsrColIndA); x and y are the right-hand-side and the solution vectors; $\alpha$ is a scalar; and

Although there are six combinations in terms of parameter trans and the upper (lower) triangular part of A, bsrsv2_bufferSize() returns the maximum size buffer among these combinations. The buffer size depends on the dimensions mb, blockDim, and the number of nonzero blocks of the matrix nnzb. If the user changes the matrix, it is necessary to call bsrsv2_bufferSize() again to have the correct buffer size; otherwise a segmentation fault may occur.
- The routine requires no extra storage.
- The routine supports asynchronous execution.
- The routine supports CUDA graph capture.