hipsparsesgtsv2_nopivot Interface Reference

hipsparsesgtsv2_nopivot Interface Reference#

HIPFORT API Reference: hipfort_hipsparse::hipsparsesgtsv2_nopivot Interface Reference
hipfort_hipsparse::hipsparsesgtsv2_nopivot Interface Reference

Tridiagonal solver (no pivoting) More...

Public Member Functions

integer(kind(hipsparse_status_success)) function hipsparsesgtsv2_nopivot_ (handle, m, n, dl, d, du, b, ldb, pbuffer)
 
integer(kind(hipsparse_status_success)) function hipsparsesgtsv2_nopivot_rank_0 (handle, m, n, dl, d, du, b, ldb, pbuffer)
 
integer(kind(hipsparse_status_success)) function hipsparsesgtsv2_nopivot_rank_1 (handle, m, n, dl, d, du, b, ldb, pbuffer)
 
integer(kind(hipsparse_status_success)) function hipsparsesgtsv2_nopivot_full_rank (handle, m, n, dl, d, du, b, ldb, pbuffer)
 

Detailed Description

Tridiagonal solver (no pivoting)

hipsparseXgtsv2_nopivot solves a tridiagonal linear system for multiple right-hand sides without 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 with multiple right-hand sides without pivoting involves two steps. First, the user calls hipsparseSgtsv2_nopivot_bufferSizeExt "hipsparseXgtsv2_nopivot_bufferSizeExt()" to determine the size of the required temporary storage buffer. Once determined, the user allocates this buffer and passes it to hipsparseSgtsv2_nopivot "hipsparseXgtsv2_nopivot()" 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_nopivot "hipsparseXgtsv2_nopivot()".

Note
This function is non-blocking and executed asynchronously with respect to the host. It can return before the actual computation has finished.
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_nopivot_()

integer(kind(hipsparse_status_success)) function hipfort_hipsparse::hipsparsesgtsv2_nopivot::hipsparsesgtsv2_nopivot_ ( 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_nopivot_full_rank()

integer(kind(hipsparse_status_success)) function hipfort_hipsparse::hipsparsesgtsv2_nopivot::hipsparsesgtsv2_nopivot_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_nopivot_rank_0()

integer(kind(hipsparse_status_success)) function hipfort_hipsparse::hipsparsesgtsv2_nopivot::hipsparsesgtsv2_nopivot_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_nopivot_rank_1()

integer(kind(hipsparse_status_success)) function hipfort_hipsparse::hipsparsesgtsv2_nopivot::hipsparsesgtsv2_nopivot_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: