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

A documentation ambiguity with DGEEV

utab
Beginner
406 Views

Dear developers,

I have a problem with the documentation of the DGEEV function on page 1030 of the pdf manual, namely, the lwork parameter, I am copying directly from the manual,

The dimension of the array work.
Constraint:
lwork ≥ max(1, 3n), and if jobvl = 'V' or jobvr = 'V', lwork <
max(1, 4n) (for real flavors);
lwork < max(1, 2n) (for complex flavors).
For good performance, lwork must generally be larger.

And for my problem I need to compute only the right eigenvectors, so I am setting jobvr = 'V', jobvl = 'N' however setting

lwork = 3*n + 5(or 4*n)

DGEEV results in -13 error for a problem size of 82X82. However setting it to 5*n or 10*n works fine. So could you please make this point clear for me?

Best regards,

Umut

0 Kudos
2 Replies
Zhang_Z_Intel
Employee
406 Views

I'll get some clarification from the MKL team about the description for lwork. Meanwhile, you can set lwork to -1 for the first call to DGEEV. When it returns it will tell you the optimal value ( via work(1) ) you should use for lwork. Then, you call DGEEV again with this optimal lwork value to do the actual computation.

0 Kudos
Konstantin_A_Intel
406 Views

Hi Umut,

This definitely looks like a mistake/misprint in MKL documentation. lwork should be constraint like “not less than” rather than “less than”. All "<" values in the description of lwork should be read as ">=".

We’ll fix it in the next release of MKL. Thank you for your attention!

Best regards,

Konstantin

0 Kudos
Reply