Visible to Intel only — GUID: GUID-C0C23CE7-4DCB-4DEC-A447-31673B8B0F66
Visible to Intel only — GUID: GUID-C0C23CE7-4DCB-4DEC-A447-31673B8B0F66
sparse_matrix_checker
Checks the correctness of a sparse matrix.
Syntax
error = sparse_matrix_checker (handle)
Include Files
- mkl_sparse_handle.fi, mkl_sparse_handle.f90
Description
The sparse_matrix_checker routine checks a user-defined array used to store a sparse matrix in order to detect issues which could cause problems in routines that require sparse input matrices, such as Intel® oneAPI Math Kernel Library (oneMKL) PARDISO, DSS, or Sparse BLAS.
Input Parameters
handle |
TYPE (SPARSE_STRUCT), INTENT(INOUT) Pointer to the data structure describing the sparse array to check. |
Return Values
The routine returns a value error. Additionally, the check_result parameter returns information about where the error occurred, which can be used when message_level is MKL_NO_PRINT.
error value |
Meaning |
Location |
---|---|---|
MKL_SPARSE_CHECKER_SUCCESS |
The input array successfully passed all checks. |
|
MKL_SPARSE_CHECKER_NON_MONOTONIC |
The input array is not 0 or 1 based (ia(1), is not 0 or 1) or elements of ia are not in non-decreasing order as required. |
Fortran: ia(i + 1) and ia(i + 2) are incompatible. check_result(1) = i check_result(2) = ia(i + 1) check_result(3) = ia(i + 2) |
MKL_SPARSE_CHECKER_OUT_OF_RANGE |
The value of the ja array is lower than the number of the first column or greater than the number of the last column. |
Fortran: ia(i + 1) and ia(i + 2) are incompatible. check_result(1) = i check_result(2) = ia(i + 1) check_result(3) = ia(i + 2) |
MKL_SPARSE_CHECKER_NONTRIANGULAR |
The matrix_structure parameter is MKL_UPPER_TRIANGULAR and both ia and ja are not upper triangular, or the matrix_structure parameter is MKL_LOWER_TRIANGULAR and both ia and ja are not lower triangular |
Fortran: ia(i + 1) and ja(j + 1) are incompatible. check_result(1) = i check_result(2) = ia(i + 1) = j check_result(3) = ja(j + 1) |
MKL_SPARSE_CHECKER_NONORDERED |
The elements of the ja array are not in non-decreasing order in each row as required. |
Fortran: ja(j + 1) and ja(j + 2) are incompatible. check_result(1) = j check_result(2) = ja(j + 1) check_result(3) = ja(j + 2) |