hipsparsesbsrilu02 Interface Reference

hipsparsesbsrilu02 Interface Reference#

HIPFORT API Reference: hipfort_hipsparse::hipsparsesbsrilu02 Interface Reference
hipfort_hipsparse::hipsparsesbsrilu02 Interface Reference

Incomplete LU factorization with 0 fill-ins and no pivoting using the BSR storage format. More...

Public Member Functions

integer(kind(hipsparse_status_success)) function hipsparsesbsrilu02_ (handle, dira, mb, nnzb, descra, bsrsortedvala_valm, bsrsortedrowptra, bsrsortedcolinda, blockdim, myinfo, policy, pbuffer)
 
integer(kind(hipsparse_status_success)) function hipsparsesbsrilu02_rank_0 (handle, dira, mb, nnzb, descra, bsrsortedvala_valm, bsrsortedrowptra, bsrsortedcolinda, blockdim, myinfo, policy, pbuffer)
 
integer(kind(hipsparse_status_success)) function hipsparsesbsrilu02_rank_1 (handle, dira, mb, nnzb, descra, bsrsortedvala_valm, bsrsortedrowptra, bsrsortedcolinda, blockdim, myinfo, policy, pbuffer)
 

Detailed Description

Incomplete LU factorization with 0 fill-ins and no pivoting using the BSR storage format.

hipsparseXbsrilu02 computes the incomplete LU factorization with 0 fill-ins and no pivoting of a sparse \(mb \times mb\) BSR matrix \(A\), such that

\[ A \approx LU \]

Computing the above incomplete LU factorization requires three steps to complete. First, the user determines the size of the required temporary storage buffer by calling hipsparseSbsrilu02_bufferSize "hipsparseXbsrilu02_bufferSize()". After this buffer size has been determined, the user allocates the buffer and passes it to hipsparseSbsrilu02_analysis "hipsparseXbsrilu02_analysis()". This will perform analysis on the sparsity pattern of the matrix. Finally, the user calls hipsparseXbsrilu02 to perform the actual factorization. The calculation of the buffer size and the analysis of the sparse matrix only need to be performed once for a given sparsity pattern, while the factorization can be repeatedly applied to multiple matrices having the same sparsity pattern. After all calls to hipsparseSbsrilu02 "hipsparseXbsrilu02()" are complete, the temporary buffer can be deallocated.

hipsparseXbsrilu02 reports the first zero pivot (either numerical or structural zero). The zero pivot status can be obtained by calling hipsparseXbsrilu02_zeroPivot().

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]dirA- direction that specified whether to count non-zero elements by HIPSPARSE_DIRECTION_ROW or by HIPSPARSE_DIRECTION_COLUMN.
[in]mb- number of block rows in the sparse BSR matrix.
[in]nnzb- number of non-zero block entries of the sparse BSR matrix.
[in]descrA- descriptor of the sparse BSR matrix.
[in,out]bsrSortedValA_valM- array of length nnzb*blockDim*blockDim containing the values of the sparse BSR matrix.
[in]bsrSortedRowPtrA- array of mb+1 elements that point to the start of every block row of the sparse BSR matrix.
[in]bsrSortedColIndA- array of nnzb elements containing the block column indices of the sparse BSR matrix.
[in]blockDim- the block dimension of the BSR matrix, which is between 1 and m where m=mb*blockDim.
[in]myInfo- structure that holds the information collected during the analysis step.
[in]policy- HIPSPARSE_SOLVE_POLICY_NO_LEVEL or HIPSPARSE_SOLVE_POLICY_USE_LEVEL.
[in]pBuffer- temporary storage buffer allocated by the user.
Return values
HIPSPARSE_STATUS_SUCCESSthe operation completed successfully.
HIPSPARSE_STATUS_INVALID_VALUEhandle, mb, nnzb, blockDim, descrA, bsrSortedValA_valM, bsrSortedRowPtrA, or bsrSortedColIndA pointer is invalid.
HIPSPARSE_STATUS_ARCH_MISMATCHthe device is not supported.
HIPSPARSE_STATUS_INTERNAL_ERRORan internal error occurred.
HIPSPARSE_STATUS_NOT_SUPPORTEDhipsparseMatrixType_t != HIPSPARSE_MATRIX_TYPE_GENERAL.

Member Function/Subroutine Documentation

◆ hipsparsesbsrilu02_()

integer(kind(hipsparse_status_success)) function hipfort_hipsparse::hipsparsesbsrilu02::hipsparsesbsrilu02_ ( type(c_ptr), value  handle,
integer(kind(hipsparse_direction_row)), value  dira,
integer(c_int), value  mb,
integer(c_int), value  nnzb,
type(c_ptr), value  descra,
type(c_ptr), value  bsrsortedvala_valm,
type(c_ptr), value  bsrsortedrowptra,
type(c_ptr), value  bsrsortedcolinda,
integer(c_int), value  blockdim,
type(c_ptr), value  myinfo,
integer(kind(hipsparse_solve_policy_no_level)), value  policy,
type(c_ptr), value  pbuffer 
)

◆ hipsparsesbsrilu02_rank_0()

integer(kind(hipsparse_status_success)) function hipfort_hipsparse::hipsparsesbsrilu02::hipsparsesbsrilu02_rank_0 ( type(c_ptr)  handle,
integer(kind(hipsparse_direction_row))  dira,
integer(c_int)  mb,
integer(c_int)  nnzb,
type(c_ptr)  descra,
real(c_float), target  bsrsortedvala_valm,
integer(c_int), target  bsrsortedrowptra,
integer(c_int), target  bsrsortedcolinda,
integer(c_int)  blockdim,
type(c_ptr)  myinfo,
integer(kind(hipsparse_solve_policy_no_level))  policy,
type(c_ptr)  pbuffer 
)

◆ hipsparsesbsrilu02_rank_1()

integer(kind(hipsparse_status_success)) function hipfort_hipsparse::hipsparsesbsrilu02::hipsparsesbsrilu02_rank_1 ( type(c_ptr)  handle,
integer(kind(hipsparse_direction_row))  dira,
integer(c_int)  mb,
integer(c_int)  nnzb,
type(c_ptr)  descra,
real(c_float), dimension(:), target  bsrsortedvala_valm,
integer(c_int), dimension(:), target  bsrsortedrowptra,
integer(c_int), dimension(:), target  bsrsortedcolinda,
integer(c_int)  blockdim,
type(c_ptr)  myinfo,
integer(kind(hipsparse_solve_policy_no_level))  policy,
type(c_ptr)  pbuffer 
)

The documentation for this interface was generated from the following file: