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

number of non-zero elements in matrix of size *nNonZeros*

by *nRows*

.*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