EigenSolver Returns Empty Set of Eigenvalues
Submitted by Philipp Verpoort
Assigned to Nobody
Link to original bugzilla bug (#1174)
Version: 3.3 (current stable)
Description
Created attachment 661
Example program demonstrating the bug.
In the example attached to this bug report, you will find a very simple program, that tries to determine the eigenvalues of a 12x12 real matrix. The matrix has 12 real eigenvalues, but Eigen returns no eigenvalues at all (the vector containing the eigenvalues returned by the EigenSolver has size zero).
Interestingly, you can obtain the right answer from Eigen, by making it use the Intel MKL. In the provided example code, just uncomment the line '#define EIGEN_USE_MKL_ALL' above the Eigen includes.
The provided 'CMakeLists.txt' file allows you to compile and run the program simply by using CMake:
mkdir build
cd build
cmake ..
cmake --build .
./Main
You will have to adjust the path to Eigen (EIGEN3_INCLUDE_DIR) in the 'CMakeLists.txt', as well as the path to the Intel C compiler (CMAKE_CXX_COMPILER). It is not necessary, to use the Intel C Compiler, I can confirm this bug under GCC as well. However, you can nicely see, how the behaviour changes by using the Intel C compiler with the '-mkl' flag, and then add/remove the 'EIGEN_USE_MKL_ALL' option.
This has been tested using Eigen 3.2.8, and 3.3-beta1.
Attachment 661, "Example program demonstrating the bug.":
testprogram.tar.gz