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 by nCols size to the solver.

Note that currently the Intel MKL DSS software operates only on square matrices, so nRows must be equal to nCols.

To communicate the locations of non-zeros 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 starting from the 10.2 release.
  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_COL_ERR

MKL_DSS_NOT_SQUARE

MKL_DSS_TOO_FEW_VALUES

MKL_DSS_TOO_MANY_VALUES


Submit feedback on this help topic

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