rocsolver_scsrrf_refactlu Interface Reference

rocsolver_scsrrf_refactlu Interface Reference#

HIPFORT API Reference: hipfort_rocsolver::rocsolver_scsrrf_refactlu Interface Reference
hipfort_rocsolver::rocsolver_scsrrf_refactlu Interface Reference

The CSRRF_REFACTLU functions perform a fast LU factorization of a sparse matrix \(A\) based on the information from the factorization of a previous matrix \(M\) with the same sparsity pattern (refactorization). More...

Public Member Functions

integer(kind(rocblas_status_success)) function rocsolver_scsrrf_refactlu_ (handle, n, nnza, ptra, inda, vala, nnzt, ptrt, indt, valt, pivp, pivq, rfinfo)
 

Detailed Description

The CSRRF_REFACTLU functions perform a fast LU factorization of a sparse matrix \(A\) based on the information from the factorization of a previous matrix \(M\) with the same sparsity pattern (refactorization).

Consider a sparse matrix \(M\) previously factorized as

\[ PMQ = L_MU_M \]

where \(L_M\) is lower triangular with unit diagonal, \(U_M\) is upper triangular, and \(P\) and \(Q\) are permutation matrices associated with pivoting and reordering (to minimize fill-in), respectively. If \(A\) has the same sparsity pattern as \(M\), then the refactorization

\[ PAQ = L_AU_A \]

can be computed numerically without a symbolic analysis phase.

This function supposes that rfinfo has been updated, by function CSRRF_ANALYSIS, after the analysis phase of the previous matrix M and its initial factorization. Both functions, CSRRF_ANALYSIS and CSRRF_REFACTLU must be run with the same rfinfo mode (LU factorization, the default mode), otherwise, the workflow will result in an error.

Parameters
[in]handle- rocblas_handle.
[in]n- rocblas_int. n >= 0. The number of rows (and columns) of matrix A.
[in]nnzA- rocblas_int. nnzA >= 0. The number of non-zero elements in A.
[in]ptrA- pointer to rocblas_int. Array on the GPU of dimension n+1. It contains the positions of the beginning of each row in indA and valA. The last element of ptrM is equal to nnzA.
[in]indA- pointer to rocblas_int. Array on the GPU of dimension nnzA. It contains the column indices of the non-zero elements of M. Indices are sorted by row and by column within each row.
[in]valA- pointer to type. Array on the GPU of dimension nnzA. The values of the non-zero elements of A.
[in]nnzT- rocblas_int. nnzT >= 0. The number of non-zero elements in T.
[in]ptrT- pointer to rocblas_int. Array on the GPU of dimension n+1. It contains the positions of the beginning of each row in indT and valT. The last element of ptrT is equal to nnzT.
[in]indT- pointer to rocblas_int. Array on the GPU of dimension nnzT. It contains the column indices of the non-zero elements of T. Indices are sorted by row and by column within each row.
[out]valT- pointer to type. Array on the GPU of dimension nnzT. The values of the non-zero elements of the new bundle matrix (L_A - I) + U_A.
[in]pivP- pointer to rocblas_int. Array on the GPU of dimension n. Contains the pivot indices representing the permutation matrix P, that is, the order in which the rows of matrix M were rearranged.
[in]pivQ- pointer to rocblas_int. Array on the GPU of dimension n. Contains the pivot indices representing the permutation matrix Q, that is, the order in which the columns of matrix M were rearranged.
[in]rfinfo- rocsolver_rfinfo. Structure that holds the meta data generated in the analysis phase.

Member Function/Subroutine Documentation

◆ rocsolver_scsrrf_refactlu_()

integer(kind(rocblas_status_success)) function hipfort_rocsolver::rocsolver_scsrrf_refactlu::rocsolver_scsrrf_refactlu_ ( type(c_ptr), value  handle,
integer(c_int), value  n,
integer(c_int), value  nnza,
type(c_ptr), value  ptra,
type(c_ptr), value  inda,
type(c_ptr), value  vala,
integer(c_int), value  nnzt,
type(c_ptr), value  ptrt,
type(c_ptr), value  indt,
type(c_ptr), value  valt,
type(c_ptr), value  pivp,
type(c_ptr), value  pivq,
type(c_ptr), value  rfinfo 
)

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