Info 512 returned by 'dsyevr' in the Intel MKL library
We use Intel MKL 10.1.1.019 for numerical calculation in C++. The 'dsyevr' function is used for eigenvalue decomposition. It works as expected in most cases. But for some cases, it returns info = 512. According to the doc, it means internal error in the Intel MKL library. I wonder what info 512 means exactly for the error. It is a single threaded calculation. The matrix size is4000 x 4000 at most. Any input will be appreciated.
Thanks for the reply. We will follow your advice and see if the problem will go away.
Meanwhile, I wonder if some hints could be given onwhat kind of error it is. Any chances that it could be caused by user errors? Orany precautionsthe users cantakein their code tolower the probability of stepping into the same situation again?
Behavior of DSYEVR in Intel MKL corresponds to the function available in NETLIB LAPACK. And there isdefinitelycould be a better description for values of INFO. The positive values represents following:
1. For JOBZ='N' this is the INFO value returned by underlying DSTEBZ (0<5, see description of DSTEBZ for more details)
2. For JOBZ='V' this is the INFO value returned by underlyingDSTEIN and means number ofeigenvectors failed to converge. IWORK(2*N:2*N+N-1)stores the indices of eigenvectorsthat corresponding to eigenvectors that fail to converge.
So the reported INFO could relate to how the MRRR algorithm handles your input data.You could try other symmetrical eigensolvers which in general more stable in terms of finding solution to see if they could solve you task: DSYEVD (similar by performance) and DSYEV (slower due higher operations count).