Developer Reference for Intel® oneAPI Math Kernel Library for C
sparse_matrix_checker
Checks the correctness of a sparse matrix.
Syntax
MKL_INT sparse_matrix_checker (sparse_struct* handle);
Include Files
- mkl.h
 
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  |  
      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[0] is not 0 or 1) or elements of ia are not in non-decreasing order as required.  |  
        C: ia[i] and ia[i + 1] are incompatible. check_result[0] = i check_result[1] = ia[i] check_result[2] = ia[i + 1]  |  
       
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.  |  
        C: ia[i] and ia[i + 1] are incompatible. check_result[0] = i check_result[1] = ia[i] check_result[2] = ia[i + 1]  |  
       
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  |  
        C: ia[i] and ja[j] are incompatible. check_result[0] = i check_result[1] = ia[i] = j check_result[2] = ja[j]  |  
       
MKL_SPARSE_CHECKER_NONORDERED  |  
        The elements of the ja array are not in non-decreasing order in each row as required.  |  
        C: ia[i] and ia[i + 1] are incompatible. check_result[0] = j check_result[1] = ja[j] check_result[2] = ja[j + 1]  |