mkl_pardiso_pivot

Replaces routine which handles Intel MKL PARDISO pivots with user-defined routine.

Syntax

Fortran:

call mkl_pardiso_pivot (ai, bi, eps)

C:

void mkl_pardiso_pivot (void *ai, void *bi, void *eps);

Include Files

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

Description

The mkl_pardiso_pivot routine allows you to handle diagonal elements which arise during numerical factorization that are zero or near zero. By default, Intel MKL PARDISO determines that a diagonal element bi is a pivot if bi < eps, and if so, replaces it with eps. But you can provide your own routine to modify the resulting factorized matrix in case there are small elements on the diagonal during the factorization step.

Note

To use this routine, you must set iparm(56) to 1 before the main pardiso loop.

Note

This routine is only available for in-core Intel MKL PARDISO.

Input Parameters

ai

DOUBLE PRECISION - for real types of matrices (mtype=2, -2, 4, and 6) and for double precision Intel MKL PARDISO (iparm(28)=0)

Diagonal element of initial matrix corresponding to pivot element.

bi

DOUBLE PRECISION - for real types of matrices (mtype=2, -2, 4, and 6) and for double precision Intel MKL PARDISO (iparm(28)=0)

Diagonal element of factorized matrix that could be chosen as a pivot element.

eps

DOUBLE PRECISION

Scalar to compare with diagonal of factorized matrix. On input equal to parameter described by iparm(10).

Output Parameters

bi

In case element is chosen as a pivot, value with which to replace the pivot.

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