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: