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

Eigenvalue precision


Hello everyone,

I am working on a project where it is important to distinguish between 0 eigenvalues and non zero eigenvalues. Using the MKL routine LAPACKE_zheev returns me a list of eigenvalues which include some very close to zero. I was wondering what the precision on those is or rather whether they can be reliably distinguished from a zero eigenvalue by the algorithm.

The only thing I have found on this topic so far is an article in the LAPACK specifications on Error bounds:

Does this article apply to the MKL routines aswell? I.e. is an eigenvalue larger than EERRBD guaranteed to belong to a non zero true eigenvalue? Is there a MKL routine that can be called to get the errorbound?

If anyone has information on this thanks in advance.

0 Kudos
1 Reply

The precision on the returned eigenvalues from LAPACKE_zheev is "double precision".

The error bounds of the results depend on both machine epsilon and the input matrix. There is a code sample right on the netlib page that you referenced showing exactly how to compute the error bounds.