hipsparsesgtsv2 Interface Reference#
Tridiagonal solver with pivoting. More...
Public Member Functions | |
| integer(kind(hipsparse_status_success)) function | hipsparsesgtsv2_ (handle, m, n, dl, d, du, b, ldb, pbuffer) |
| integer(kind(hipsparse_status_success)) function | hipsparsesgtsv2_rank_0 (handle, m, n, dl, d, du, b, ldb, pbuffer) |
| integer(kind(hipsparse_status_success)) function | hipsparsesgtsv2_rank_1 (handle, m, n, dl, d, du, b, ldb, pbuffer) |
| integer(kind(hipsparse_status_success)) function | hipsparsesgtsv2_full_rank (handle, m, n, dl, d, du, b, ldb, pbuffer) |
Detailed Description
Tridiagonal solver with pivoting.
hipsparseXgtsv2 solves a tridiagonal system for multiple right-hand sides using pivoting
\[ T*B = B \]
where \(T\) is a sparse tridiagonal matrix and \(B\) is a dense \(ldb \times n\) matrix storing the right-hand side vectors in column order. The tridiagonal matrix \(T\) is defined by three vectors: dl for the lower diagonal, d for the main diagonal, and du for the upper diagonal.
Solving the tridiagonal system involves two steps. First, the user calls hipsparseSgtsv2_bufferSizeExt "hipsparseXgtsv2_bufferSizeExt()" to determine the size of the required temporary storage buffer. After this is determined, the user allocates the buffer and passes it to hipsparseSgtsv2 "hipsparseXgtsv2()" to perform the actual solve. The \(B\) dense matrix, which initially stores the n right-hand side vectors, is overwritten with the n solution vectors after the call to hipsparseSgtsv2 "hipsparseXgtsv2()".
- Note
- This function is non-blocking and executed asynchronously with respect to the host. It can return before the actual computation has finished.
- This routine supports execution in a hipGraph context.
- Parameters
-
[in] handle - handle to the hipSPARSE library context queue. [in] m - size of the tridiagonal linear system (must be >= 2). [in] n - number of columns in the dense matrix B. [in] dl - lower diagonal of the tridiagonal system. The first entry must be zero. [in] d - main diagonal of the tridiagonal system. [in] du - upper diagonal of the tridiagonal system. The last entry must be zero. [in,out] B - Dense matrix of size ( ldb,n).[in] ldb - Leading dimension of B. Must satisfy ldb>= max(1, m).[in] pBuffer - temporary storage buffer allocated by the user.
- Return values
-
HIPSPARSE_STATUS_SUCCESS the operation completed successfully. HIPSPARSE_STATUS_INVALID_VALUE handle,m,n,ldb,dl,d,du,B, orpBufferpointer is invalid.HIPSPARSE_STATUS_INTERNAL_ERROR an internal error occurred.
Member Function/Subroutine Documentation
◆ hipsparsesgtsv2_()
| integer(kind(hipsparse_status_success)) function hipfort_hipsparse::hipsparsesgtsv2::hipsparsesgtsv2_ | ( | type(c_ptr), value | handle, |
| integer(c_int), value | m, | ||
| integer(c_int), value | n, | ||
| type(c_ptr), value | dl, | ||
| type(c_ptr), value | d, | ||
| type(c_ptr), value | du, | ||
| type(c_ptr), value | b, | ||
| integer(c_int), value | ldb, | ||
| type(c_ptr), value | pbuffer | ||
| ) |
◆ hipsparsesgtsv2_full_rank()
| integer(kind(hipsparse_status_success)) function hipfort_hipsparse::hipsparsesgtsv2::hipsparsesgtsv2_full_rank | ( | type(c_ptr) | handle, |
| integer(c_int) | m, | ||
| integer(c_int) | n, | ||
| real(c_float), dimension(:), target | dl, | ||
| real(c_float), dimension(:), target | d, | ||
| real(c_float), dimension(:), target | du, | ||
| real(c_float), dimension(:,:), target | b, | ||
| integer(c_int) | ldb, | ||
| type(c_ptr) | pbuffer | ||
| ) |
◆ hipsparsesgtsv2_rank_0()
| integer(kind(hipsparse_status_success)) function hipfort_hipsparse::hipsparsesgtsv2::hipsparsesgtsv2_rank_0 | ( | type(c_ptr) | handle, |
| integer(c_int) | m, | ||
| integer(c_int) | n, | ||
| real(c_float), target | dl, | ||
| real(c_float), target | d, | ||
| real(c_float), target | du, | ||
| real(c_float), target | b, | ||
| integer(c_int) | ldb, | ||
| type(c_ptr) | pbuffer | ||
| ) |
◆ hipsparsesgtsv2_rank_1()
| integer(kind(hipsparse_status_success)) function hipfort_hipsparse::hipsparsesgtsv2::hipsparsesgtsv2_rank_1 | ( | type(c_ptr) | handle, |
| integer(c_int) | m, | ||
| integer(c_int) | n, | ||
| real(c_float), dimension(:), target | dl, | ||
| real(c_float), dimension(:), target | d, | ||
| real(c_float), dimension(:), target | du, | ||
| real(c_float), dimension(:), target | b, | ||
| integer(c_int) | ldb, | ||
| type(c_ptr) | pbuffer | ||
| ) |
The documentation for this interface was generated from the following file: