dss_define_structure

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

Syntax

Fortran:

call dss_define_structure(handle, opt, rowIndex, nRows, nCols, columns, nNonZeros);

C:

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

  • Fortran: mkl.fi
  • Fortran 90: mkl_dss.f90
  • C: 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 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).

Input Parameters

opt

FORTRAN 77: INTEGER

Fortran 90: INTEGER, INTENT(IN)

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

rowIndex

FORTRAN 77: INTEGER

Fortran 90: INTEGER, INTENT(IN)

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

nRows

FORTRAN 77: INTEGER

Fortran 90: INTEGER, INTENT(IN)

Number of rows in the matrix.

nCols

FORTRAN 77: INTEGER

Fortran 90: INTEGER, INTENT(IN)

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

columns

FORTRAN 77: INTEGER

Fortran 90: INTEGER, INTENT(IN)

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

nNonZeros

FORTRAN 77: INTEGER

Fortran 90: INTEGER, INTENT(IN)

Number of non-zero elements in the matrix.

Output Parameters

handle

FORTRAN 77: INTEGER*8

Fortran 90: 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

Pour de plus amples informations sur les optimisations de compilation, consultez notre Avertissement concernant les optimisations.