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

Pardiso Hermitian matrix input

mullervki
Einsteiger
1.711Aufrufe

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 Antworten
Kirill_V_Intel
Mitarbeiter
1.711Aufrufe

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
Einsteiger
1.711Aufrufe

Hi Kirill,

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

-Arthur

Antworten