Developer Reference

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.
The
Intel® MKL
DSS software operates only on square matrices, so
nRows
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).
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

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804