rocsparse_sbsrsv_analysis Interface Reference

rocsparse_sbsrsv_analysis Interface Reference#

HIPFORT API Reference: hipfort_rocsparse::rocsparse_sbsrsv_analysis Interface Reference
hipfort_rocsparse::rocsparse_sbsrsv_analysis Interface Reference

Public Member Functions

integer(kind(rocsparse_status_success)) function rocsparse_sbsrsv_analysis_ (handle, dir, trans, mb, nnzb, descr, bsr_val, bsr_row_ptr, bsr_col_ind, block_dim, myinfo, analysis, solve, temp_buffer)
 
integer(kind(rocsparse_status_success)) function rocsparse_sbsrsv_analysis_rank_0 (handle, dir, trans, mb, nnzb, descr, bsr_val, bsr_row_ptr, bsr_col_ind, block_dim, myinfo, analysis, solve, temp_buffer)
 
integer(kind(rocsparse_status_success)) function rocsparse_sbsrsv_analysis_rank_1 (handle, dir, trans, mb, nnzb, descr, bsr_val, bsr_row_ptr, bsr_col_ind, block_dim, myinfo, analysis, solve, temp_buffer)
 

Detailed Description

rocsparse_bsrsv_analysis performs the analysis step for rocsparse_sbsrsv_solve(). It is expected that this function will be executed only once for a given matrix and particular operation type. The analysis meta data can be cleared by rocsparse_bsrsv_clear().

rocsparse_bsrsv_analysis can share its meta data with rocsparse_Xbsrsm_analysis(), rocsparse_Xbsrilu0_analysis(), and rocsparse_Xbsric0_analysis(). Selecting rocsparse_analysis_policy_reuse policy can greatly improve computation performance of metadata. However, the user needs to ensure that the sparsity pattern remains unchanged. Otherwise, rocsparse_analysis_policy_force has to be used.

Note
If the matrix sparsity pattern changes, the gathered information will become invalid.
This function is blocking with respect to the host.
This routine does not support execution in a hipGraph context.
Parameters
[in]handle- handle to the rocSPARSE library context queue.
[in]dir- matrix storage of BSR blocks.
[in]trans- matrix operation type.
[in]mb- number of block rows of the sparse BSR matrix.
[in]nnzb- number of non-zero blocks of the sparse BSR matrix.
[in]descr- descriptor of the sparse BSR matrix.
[in]bsr_val- array of nnzb blocks of the sparse BSR matrix.
[in]bsr_row_ptr- array of mb+1 elements that point to the start of every block row of the sparse BSR matrix.
[in]bsr_col_ind- array of nnz containing the block column indices of the sparse BSR matrix.
[in]block_dim- block dimension of the sparse BSR matrix.
[out]myInfo- structure that holds the information collected during the analysis step.
[in]analysis- rocsparse_analysis_policy_reuse or rocsparse_analysis_policy_force.
[in]solve- rocsparse_solve_policy_auto.
[in]temp_buffer- temporary storage buffer allocated by the user.
Return values
rocsparse_status_successthe operation completed successfully.
rocsparse_status_invalid_handlethe library context was not initialized.
rocsparse_status_invalid_sizemb, nnzb, or block_dim is invalid.
rocsparse_status_invalid_pointerdescr, bsr_row_ptr, bsr_col_ind, info, or temp_buffer pointer is invalid.
rocsparse_status_internal_erroran internal error occurred.
rocsparse_status_not_implementedtrans == rocsparse_operation_conjugate_transpose or rocsparse_matrix_type != rocsparse_matrix_type_general.

Member Function/Subroutine Documentation

◆ rocsparse_sbsrsv_analysis_()

integer(kind(rocsparse_status_success)) function hipfort_rocsparse::rocsparse_sbsrsv_analysis::rocsparse_sbsrsv_analysis_ ( type(c_ptr), value  handle,
integer(kind(rocsparse_direction_row)), value  dir,
integer(kind(rocsparse_operation_none)), value  trans,
integer(c_int), value  mb,
integer(c_int), value  nnzb,
type(c_ptr), value  descr,
type(c_ptr), value  bsr_val,
type(c_ptr), value  bsr_row_ptr,
type(c_ptr), value  bsr_col_ind,
integer(c_int), value  block_dim,
type(c_ptr), value  myinfo,
integer(kind(rocsparse_analysis_policy_reuse)), value  analysis,
integer(kind(rocsparse_solve_policy_auto)), value  solve,
type(c_ptr), value  temp_buffer 
)

◆ rocsparse_sbsrsv_analysis_rank_0()

integer(kind(rocsparse_status_success)) function hipfort_rocsparse::rocsparse_sbsrsv_analysis::rocsparse_sbsrsv_analysis_rank_0 ( type(c_ptr)  handle,
integer(kind(rocsparse_direction_row))  dir,
integer(kind(rocsparse_operation_none))  trans,
integer(c_int)  mb,
integer(c_int)  nnzb,
type(c_ptr)  descr,
real(c_float), target  bsr_val,
integer(c_int), target  bsr_row_ptr,
integer(c_int), target  bsr_col_ind,
integer(c_int)  block_dim,
type(c_ptr)  myinfo,
integer(kind(rocsparse_analysis_policy_reuse))  analysis,
integer(kind(rocsparse_solve_policy_auto))  solve,
type(c_ptr)  temp_buffer 
)

◆ rocsparse_sbsrsv_analysis_rank_1()

integer(kind(rocsparse_status_success)) function hipfort_rocsparse::rocsparse_sbsrsv_analysis::rocsparse_sbsrsv_analysis_rank_1 ( type(c_ptr)  handle,
integer(kind(rocsparse_direction_row))  dir,
integer(kind(rocsparse_operation_none))  trans,
integer(c_int)  mb,
integer(c_int)  nnzb,
type(c_ptr)  descr,
real(c_float), dimension(:), target  bsr_val,
integer(c_int), dimension(:), target  bsr_row_ptr,
integer(c_int), dimension(:), target  bsr_col_ind,
integer(c_int)  block_dim,
type(c_ptr)  myinfo,
integer(kind(rocsparse_analysis_policy_reuse))  analysis,
integer(kind(rocsparse_solve_policy_auto))  solve,
type(c_ptr)  temp_buffer 
)

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