# Implementation Details

Several aspects of the Intel MKL RCI ISS interface are platform-specific and language-specific. To promote portability across platforms and ease of use across different languages, include one of the Intel MKL RCI ISS language-specific header files. Currently, there is one language specific header file for C programs.

This language-specific header file defines function prototypes and they are the following:

`void dcg_init(int *n, double *x, double *b, int *rci_request, int *ipar, double dpar, double *tmp);`

`void dcg_check(int *n, double *x, double *b, int *rci_request, int *ipar, double dpar, double *tmp);`

`void dcg(int *n, double *x, double *b, int *rci_request, int *ipar, double dpar, double *tmp);`

`void dcg_get(int *n, double *x, double *b, int *rci_request, int *ipar, double dpar, double *tmp, int *itercount);`

`void dcgmrhs_init(int *n, double *x, int *nRhs, double *b, int *method, int *rci_request, int *ipar, double dpar, double *tmp);`

`void dcgmrhs_check(int *n, double *x, int *nRhs, double *b, int *rci_request, int *ipar, double dpar, double *tmp);`

`void dcgmrhs(int *n, double *x, int *nRhs, double *b, int *rci_request, int *ipar, double dpar, double *tmp);`

`void dcgmrhs_get(int *n, double *x, int *nRhs, double *b, int *rci_request, int *ipar, double dpar, double *tmp, int *itercount);`

`void dfgmres_init(int *n, double *x, double *b, int *rci_request, int *ipar, double dpar, double *tmp);`

`void dfgmres_check(int *n, double *x, double *b, int *rci_request, int *ipar, double dpar, double *tmp);`

`void dfgmres(int *n, double *x, double *b, int *rci_request, int *ipar, double dpar, double *tmp);`

`void dfgmres_get(int *n, double *x, double *b, int *rci_request, int *ipar, double dpar, double *tmp, int *itercount);`

### Note

Intel MKL does not support the RCI ISS interface without the language specific header file included.

Parent topic: Iterative Sparse Solvers based on Reverse Communication Interface (RCI ISS)