Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 10/31/2024
Public
Document Table of Contents

dss_define_structure

Communicates locations of non-zero elements in the matrix to the solver.

Syntax

MKL_INT dss_define_structure(_MKL_DSS_HANDLE_t *handle, MKL_INT const *opt, MKL_INT const *rowIndex, MKL_INT const *nRows, MKL_INT const *nCols, MKL_INT const *columns, MKL_INT const *nNonZeros);

Include Files

  • mkl.h

Description

The routine dss_define_structure communicates the locations of the nNonZeros number of non-zero elements in a matrix of nRows * nCols size to the solver.

NOTE:

The Intel® oneAPI Math Kernel Library (oneMKL) DSS software operates only on square matrices, sonRows must be equal to nCols.

To communicate the locations of non-zero elements in the matrix, do the following:

  1. Define the general non-zero structure of the matrix by specifying the value for the options argument opt. You can set the following values for real matrices:

    • MKL_DSS_SYMMETRIC_STRUCTURE

    • MKL_DSS_SYMMETRIC

    • MKL_DSS_NON_SYMMETRIC

    and for complex matrices:

    • MKL_DSS_SYMMETRIC_STRUCTURE_COMPLEX

    • MKL_DSS_SYMMETRIC_COMPLEX

    • MKL_DSS_NON_SYMMETRIC_COMPLEX

      The information about the matrix type must be defined in dss_define_structure.

  2. Provide the actual locations of the non-zeros by means of the arrays rowIndex and columns (see Sparse Matrix Storage Format).

NOTE:
No diagonal element can be omitted from the values array. If there is a zero value on the diagonal, for example, that element nonetheless must be explicitly represented.

Input Parameters

opt

Parameter to pass the DSS options. The default value for the matrix structure is MKL_DSS_SYMMETRIC.

rowIndex

Array of size nRows+1. Defines the location of non-zero entries in the matrix.

nRows

Number of rows in the matrix.

nCols

Number of columns in the matrix; must be equal to nRows.

columns

Array of size nNonZeros. Defines the column location of non-zero entries in the matrix.

nNonZeros

Number of non-zero elements in the matrix.

Output Parameters

handle

Pointer to the data structure storing internal DSS results (MKL_DSS_HANDLE).

Return Values

MKL_DSS_SUCCESS

MKL_DSS_STATE_ERR

MKL_DSS_INVALID_OPTION

MKL_DSS_STRUCTURE_ERR

MKL_DSS_ROW_ERR

MKL_DSS_COL_ERR

MKL_DSS_NOT_SQUARE

MKL_DSS_TOO_FEW_VALUES

MKL_DSS_TOO_MANY_VALUES

MKL_DSS_OUT_OF_MEMORY

MKL_DSS_MSG_LVL_ERR

MKL_DSS_TERM_LVL_ERR