Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 11/07/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

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.

Sparse Matrix Checker Error Values

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]