Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

Pardiso Hermitian matrix input

mullervki
Principiante
2.675 Vistas

Hello,

If I have a Hermitian matrix (mtype=4 or -4), does it matter whether I enter the upper or lower matrices? For example, would both

int ia[4] = {1,3,5,6};

int ja[5] = {

1,  3,

  2, 3,

      3};

and

int ia[4] = {1,2,3,6};

int ja[5] = {

1,

   2,

1, 2, 3};

be equally valid? I ask because in the second case I'm getting an error:

*** Error in PARDISO  (incorrect input matrix  ) error_num= 24
*** Input check: j=3, ja(j)=3, ja(j+1)=1 are incompatible

But I can't understand what's wrong with the second input.

Thanks.

0 kudos
2 Respuestas
Kirill_V_Intel
Empleados
2.675 Vistas

Hi,

You need to pass the upper triangular part only.

The documentation at https://software.intel.com/content/www/us/en/develop/documentation/mkl-developer-reference-c/top/sparse-solver-routines/intel-mkl-pardiso-parallel-direct-sparse-solver-interface/pardiso.html#pardiso says: "For symmetric matrices, the solver needs only the upper triangular part of the system as is shown for columns array in Three Array Variation of CSR Format".

Best,
Kirill

mullervki
Principiante
2.675 Vistas

Hi Kirill,

Thanks! I looked throughout the documentation but missed the page you pointed me to. Much appreciated.

-Arthur

Responder