Developer Reference for Intel® oneAPI Math Kernel Library for C
dss_define_structure
Communicates locations of non-zero elements in the matrix to the solver.
Syntax
MKL_INTdss_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
dss_define_structure 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.
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 argument opt . You can set the following values for real matrices:
and for complex matrices: * MKL_DSS_SYMMETRIC_STRUCTURE * MKL_DSS_SYMMETRIC * MKL_DSS_NON_SYMMETRIC
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 .
Provide the actual locations of the non-zeros by means of the arrays rowIndex and columns (see Sparse Matrix Storage Format ).
Input Parameters
- opt
-
INTEGER , INTENT(IN) Parameter to pass the DSS options. The default value for the matrix structure is MKL_DSS_SYMMETRIC .
- rowIndex
-
INTEGER , INTENT(IN) Array of size nRows+1 . Defines the location of non-zero entries in the matrix.
- nRows
-
INTEGER , INTENT(IN) Number of rows in the matrix.
- nCols
-
INTEGER , INTENT(IN) Number of columns in the matrix; must be equal to nRows .
- columns
-
INTEGER , INTENT(IN) Array of size nNonZeros . Defines the column location of non-zero entries in the matrix.
- nNonZeros
-
INTEGER , INTENT(IN) Number of non-zero elements in the matrix.
Output Parameters
- handle
-
TYPE (MKL_DSS_HANDLE) , INTENT(INOUT) 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