hipsparsesgtsv2 Interface Reference

hipsparsesgtsv2 Interface Reference#

HIPFORT API Reference: hipfort_hipsparse::hipsparsesgtsv2 Interface Reference
hipfort_hipsparse::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_SUCCESSthe operation completed successfully.
HIPSPARSE_STATUS_INVALID_VALUEhandle, m, n, ldb, dl, d, du, B, or pBuffer pointer is invalid.
HIPSPARSE_STATUS_INTERNAL_ERRORan 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: