dss_define_structure

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

Syntax

C:

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

Fortran:

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

Include Files

The FORTRAN 77 interface is specified in the mkl_dss.f77 include file, the Fortran 90 interface is specified in the mkl_dss.f90 include file, and the C interface is specified in the mkl_dss.h include file.

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 iconNote

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

Name

Type

Description

opt

FORTRAN 77: INTEGER

Fortran 90: INTEGER, INTENT(IN)

C: _INTEGER_t const*

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)

C: _INTEGER_t const*

Array of size min(nRows, nCols)+1. Defines the location of non-zero entries in the matrix.

nRows

FORTRAN 77: INTEGER

Fortran 90: INTEGER, INTENT(IN)

C: _INTEGER_t const*

Number of rows in the matrix.

nCols

FORTRAN 77: INTEGER

Fortran 90: INTEGER, INTENT(IN)

C: _INTEGER_t const*

Number of columns in the matrix.

columns

FORTRAN 77: INTEGER

Fortran 90: INTEGER, INTENT(IN)

C: _INTEGER_t const*

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

nNonZeros

FORTRAN 77: INTEGER

Fortran 90: INTEGER, INTENT(IN)

C: _INTEGER_t const*

Number of non-zero elements in the matrix.

Output Parameters

Name

Type

Description

handle

FORTRAN 77: INTEGER*8

Fortran 90: TYPE (MKL_DSS_HANDLE), INTENT(INOUT)

C: _MKL_DSS_HANDLE_t*

Pointer to the data structure storing intermediate 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


Submit feedback on this help topic

Copyright © 1994 - 2011, Intel Corporation. All rights reserved.