dss_reorder

Computes or sets a permutation vector that minimizes the fill-in during the factorization phase.

Syntax

Fortran:

call dss_reorder(handle, opt, perm)

C:

MKL_INT dss_reorder(_MKL_DSS_HANDLE_t *handle, MKL_INT const *opt, MKL_INT const *perm)

Include Files

  • Fortran: mkl.fi
  • Fortran 90: mkl_dss.f90
  • C: mkl.h

Description

If opt contains the option MKL_DSS_AUTO_ORDER, then the routine dss_reorder computes a permutation vector that minimizes the fill-in during the factorization phase. For this option, the routine ignores the contents of the perm array.

If opt contains the option MKL_DSS_METIS_OPENMP_ORDER, then the routine dss_reorder computes permutation vector using the parallel nested dissections algorithm to minimize the fill-in during the factorization phase. This option can be used to decrease the time of dss_reorder call on multi-core computers. For this option, the routine ignores the contents of the perm array.

If opt contains the option MKL_DSS_MY_ORDER, then you must supply a permutation vector in the array perm. In this case, the array perm is of length nRows, where nRows is the number of rows in the matrix as defined by the previous call to dss_define_structure.

If opt contains the option MKL_DSS_GET_ORDER, then the permutation vector computed during the dss_reorder call is copied to the array perm. In this case you must allocate the array perm beforehand. The permutation vector is computed in the same way as if the option MKL_DSS_AUTO_ORDER is set.

Input Parameters

opt

FORTRAN 77: INTEGER

Fortran 90: INTEGER, INTENT(IN)

Parameter to pass the DSS options. The default value for the permutation type is MKL_DSS_AUTO_ORDER.

perm

FORTRAN 77: INTEGER

Fortran 90: INTEGER, INTENT(IN)

Array of length nRows. Contains a user-defined permutation vector (accessed only if opt contains MKL_DSS_MY_ORDER or MKL_DSS_GET_ORDER).

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_REORDER_ERR

MKL_DSS_REORDER1_ERR

MKL_DSS_I32BIT_ERR

MKL_DSS_FAILURE

MKL_DSS_OUT_OF_MEMORY

MKL_DSS_MSG_LVL_ERR

MKL_DSS_TERM_LVL_ERR

For more complete information about compiler optimizations, see our Optimization Notice.