Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 3/31/2023
Public

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

Document Table of Contents

DSS Interface Description

Each DSS routine reads from or writes to a data object called a handle. Refer to Memory Allocation and Handles to determine the correct method for declaring a handle argument for each language. For simplicity, the descriptions in DSS routines refer to the data type as MKL_DSS_HANDLE.

Routine Options

The DSS routines have an integer argument (referred below to as opt) for passing various options to the routines. The permissible values for opt should be specified using only the symbol constants defined in the language-specific header files (see Implementation Details). The routines accept options for setting the message and termination levels as described in Table "Symbolic Names for the Message and Termination Levels Options". Additionally, each routine accepts the option MKL_DSS_DEFAULTS that sets the default values (as documented) for opt to the routine.

Symbolic Names for the Message and Termination Levels Options
Message Level Termination Level
MKL_DSS_MSG_LVL_SUCCESS MKL_DSS_TERM_LVL_SUCCESS
MKL_DSS_MSG_LVL_INFO MKL_DSS_TERM_LVL_INFO
MKL_DSS_MSG_LVL_WARNING MKL_DSS_TERM_LVL_WARNING
MKL_DSS_MSG_LVL_ERROR MKL_DSS_TERM_LVL_ERROR
MKL_DSS_MSG_LVL_FATAL MKL_DSS_TERM_LVL_FATAL

The settings for message and termination levels can be set on any call to a DSS routine. However, once set to a particular level, they remain at that level until they are changed in another call to a DSS routine.

You can specify both message and termination level for a DSS routine by adding the options together. For example, to set the message level to debug and the termination level to error for all the DSS routines, use the following call:

dss_create( handle, MKL_DSS_MSG_LVL_INFO + MKL_DSS_TERM_LVL_ERROR)

User Data Arrays

Many of the DSS routines take arrays of user data as input. For example, pointers to user arrays are passed to the routine dss_define_structure to describe the location of the non-zero entries in the matrix.

CAUTION:

Do not modify the contents of these arrays after they are passed to one of the solver routines.