Sparse Solver

Intel® MKL provides a user-callable direct sparse solver subroutine to solve symmetric and symmetricly-structured matrices with real or complex coefficients. For sparse symmetric matrices, this solver can solve both positive definite and indefinite systems.

pardiso calculates the solution of a set of sparse linear equations with multiple right-hand sides.
Fortran:
call pardiso (pt, maxfct, mnum, mtype, phase, n, a, ia, ja, perm, nrhs, iparm, msglvl, b, x, error)
C:
pardiso (pt, &maxfct, &mnum, &mtype, &phase, &n, a, ia, ja, perm, &nrhs, iparm, &msglvl, b, x, &error);

The Intel MKL supports an alternative interface for the direct sparse solver referred to as Direct Sparse Solver (DSS) interface:

dss_create initializes the solver.
dss_create (handle, opt)

dss_define_structure communicates to the solver locations of nNonZeros number of non-zero elements in matrix of size nRows by nCols.
dss_define_structure (handle, opt, rowIndex, nRows, nCols, columns, nNonZeros)

dss_reorder computes permutation vector that minimizes the fill-in during the factorization phase.
dss_reorder (handle, opt, perm)

dss_factor_real / dss_factor_complex compute the factorization of the matrix with previously specified location.
dss_factor_real (handle, opt, rValues)
dss_factor_complex (handle, opt, cValues)

dss_solve_real / dss_solve_complex compute the corresponding solutions vector and place it in the output array.
dss_solve_real (handle, opt, rRhsValues, nRhs, rSolValues)
dss_solve_complex (handle, opt, cRhsValues, nRhs, cSolValues)

dss_delete deletes all of data structures created during the solutions process.
dss_delete (handle, opt)

dss_statistics returns statistics about various phases of the solving process.
dss_statistics (handle, opt, statArr, retValues)

mkl_cvt_to_null_terminated_str passes character strings from Fortran routines to C routines.
mkl_cvt_to_null_terminated_str (destStr, destLen, srcStr)

* Legal Information © 1999, 2002-2004, Intel Corporation