hipsparsesbsric02 Interface Reference#
Incomplete Cholesky factorization with 0 fill-ins and no pivoting using the BSR storage format. More...
Public Member Functions | |
| integer(kind(hipsparse_status_success)) function | hipsparsesbsric02_ (handle, dira, mb, nnzb, descra, bsrvala, bsrrowptra, bsrcolinda, blockdim, myinfo, policy, pbuffer) |
| integer(kind(hipsparse_status_success)) function | hipsparsesbsric02_rank_0 (handle, dira, mb, nnzb, descra, bsrvala, bsrrowptra, bsrcolinda, blockdim, myinfo, policy, pbuffer) |
| integer(kind(hipsparse_status_success)) function | hipsparsesbsric02_rank_1 (handle, dira, mb, nnzb, descra, bsrvala, bsrrowptra, bsrcolinda, blockdim, myinfo, policy, pbuffer) |
Detailed Description
Incomplete Cholesky factorization with 0 fill-ins and no pivoting using the BSR storage format.
hipsparseXbsric02 computes the incomplete Cholesky factorization with 0 fill-ins and no pivoting of a sparse \(mb \times mb\) BSR matrix \(A\), such that
\[ A \approx LL^T \]
Computing the above incomplete Cholesky factorization requires three steps to complete. First, the user determines the size of the required temporary storage buffer by calling hipsparseSbsric02_bufferSize "hipsparseXbsric02_bufferSize()". After this buffer size has been determined, the user allocates the buffer and passes it to hipsparseSbsric02_analysis "hipsparseXbsric02_analysis()". This will perform analysis on the sparsity pattern of the matrix. Finally, the user calls hipsparseXbsric02 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 hipsparseXbsric02 are complete, the temporary buffer can be deallocated.
hipsparseXbsric02 requires a user-allocated temporary buffer. Its size is returned by hipsparseSbsric02_bufferSize "hipsparseXbsric02_bufferSize()". Furthermore, analysis meta data is required. It can be obtained by hipsparseSbsric02_analysis "hipsparseXbsric02_analysis()". hipsparseXbsric02 reports the first zero pivot (either numerical or structural zero). The zero pivot status can be obtained by calling hipsparseXbsric02_zeroPivot().
hipsparseXbsric02 reports the first zero pivot (either numerical or structural zero). The zero pivot status can be obtained by calling hipsparseXbsric02_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 specifies whether to count non-zero elements by HIPSPARSE_DIRECTION_ROWor byHIPSPARSE_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] bsrValA - array of length nnzb*blockDim*blockDimcontaining the values of the sparse BSR matrix.[in] bsrRowPtrA - array of mb+1elements that point to the start of every block row of the sparse BSR matrix.[in] bsrColIndA - array of nnzbelements 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_LEVELorHIPSPARSE_SOLVE_POLICY_USE_LEVEL.[in] pBuffer - temporary storage buffer allocated by the user.
- Return values
-
HIPSPARSE_STATUS_SUCCESS the operation completed successfully. HIPSPARSE_STATUS_INVALID_VALUE handle,mb,nnzb,blockDim,descrA,bsrValA,bsrRowPtrA, orbsrColIndApointer is invalid.HIPSPARSE_STATUS_ARCH_MISMATCH the device is not supported. HIPSPARSE_STATUS_INTERNAL_ERROR an internal error occurred. HIPSPARSE_STATUS_NOT_SUPPORTED hipsparseMatrixType_t!=HIPSPARSE_MATRIX_TYPE_GENERAL.
Member Function/Subroutine Documentation
◆ hipsparsesbsric02_()
| integer(kind(hipsparse_status_success)) function hipfort_hipsparse::hipsparsesbsric02::hipsparsesbsric02_ | ( | 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 | bsrvala, | ||
| type(c_ptr), value | bsrrowptra, | ||
| type(c_ptr), value | bsrcolinda, | ||
| integer(c_int), value | blockdim, | ||
| type(c_ptr), value | myinfo, | ||
| integer(kind(hipsparse_solve_policy_no_level)), value | policy, | ||
| type(c_ptr), value | pbuffer | ||
| ) |
◆ hipsparsesbsric02_rank_0()
| integer(kind(hipsparse_status_success)) function hipfort_hipsparse::hipsparsesbsric02::hipsparsesbsric02_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 | bsrvala, | ||
| integer(c_int), target | bsrrowptra, | ||
| integer(c_int), target | bsrcolinda, | ||
| integer(c_int) | blockdim, | ||
| type(c_ptr) | myinfo, | ||
| integer(kind(hipsparse_solve_policy_no_level)) | policy, | ||
| type(c_ptr) | pbuffer | ||
| ) |
◆ hipsparsesbsric02_rank_1()
| integer(kind(hipsparse_status_success)) function hipfort_hipsparse::hipsparsesbsric02::hipsparsesbsric02_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 | bsrvala, | ||
| integer(c_int), dimension(:), target | bsrrowptra, | ||
| integer(c_int), dimension(:), target | bsrcolinda, | ||
| 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: