Skip to main content

cusparseZgtsv2_nopivot

Function cusparseZgtsv2_nopivot 

Source
pub unsafe extern "C" fn cusparseZgtsv2_nopivot(
    handle: cusparseHandle_t,
    m: c_int,
    n: c_int,
    dl: *const cuDoubleComplex,
    d: *const cuDoubleComplex,
    du: *const cuDoubleComplex,
    B: *mut cuDoubleComplex,
    ldb: c_int,
    pBuffer: *mut c_void,
) -> cusparseStatus_t
Expand description

This function computes the solution of a tridiagonal linear system with multiple right-hand sides:

The coefficient matrix A of each of these tri-diagonal linear system is defined with three vectors corresponding to its lower (dl), main (d), and upper (du) matrix diagonals; the right-hand sides are stored in the dense matrix B. Notice that solution X overwrites right-hand-side matrix B on exit.

The routine does not perform any pivoting and uses a combination of the Cyclic Reduction (CR) and the Parallel Cyclic Reduction (PCR) algorithms to find the solution. It achieves better performance when m is a power of 2.

This function requires a buffer size returned by gtsv2_nopivot_bufferSizeExt(). The address of pBuffer must be multiple of 128 bytes. If it is not, cusparseStatus_t::CUSPARSE_STATUS_INVALID_VALUE is returned.

  • The routine requires no extra storage.
  • The routine supports asynchronous execution.
  • The routine supports CUDA graph capture.