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

Pardiso Hermitian matrix input

mullervki
Beginner
649 Views

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 Replies
Kirill_V_Intel
Employee
649 Views

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

0 Kudos
mullervki
Beginner
649 Views

Hi Kirill,

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

-Arthur

0 Kudos
Reply