dss_define_structure
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 size to the solver.
dss_define_structure
communicates the locations of the nNonZeros
number of non-zero elements in a matrix of nRows
* nCols
The DSS software operates only on square matrices, so
Intel® oneAPI Math Kernel Library
nRows
must be equal to nCols
.To communicate the locations of non-zero elements in the matrix, do the following:
- Define the general non-zero structure of the matrix by specifying the value for the options argumentopt. 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_COMPLEXThe information about the matrix type must be defined indss_define_structure.
- Provide the actual locations of the non-zeros by means of the arraysrowIndexandcolumns(see Sparse Matrix Storage Format).
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 isMKL_DSS_SYMMETRIC.
- rowIndex
- Array of size. Defines the location of non-zero entries in the matrix.nRows+1
- nRows
- Number of rows in the matrix.
- nCols
- Number of columns in the matrix; must be equal tonRows.
- columns
- Array of sizenNonZeros. 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