Registered Member
|
I am using the latest checkout from Mercurial.
The following simple code triggers huge amount of compilation errors. (Compiler: GCC 4.6.2, with -DEIGEN_USE_MKL_ALL )
I guess some standard head files are missing in Eigen? |
Moderator
|
I cannot reproduce. Do you experience the same issue without -DEIGEN_USE_MKL_ALL ? In any case, could you paste the first error messages. Thanks.
|
Registered Member
|
Ok. Below is more detailed information about how to produce the error (I did it again using clang++, which also met with compilation errors)
The version of Eigen that I am using is from directly checked out from Mercurial repo. Here is the info
Here is the C++ code (very simple, just not to include <iostream>). The filename is "simple_eigen.cpp"
Here is how I compile it
Here is the error messages (produced by clang++, ver 3.0). Note: if MKL is not turned on, then everything works fine.
There can be more errors (clang stop after it found 20). Similar things can be produced with g++. Hope the information helps. |
Registered Member
|
I tried to trace the error:
In current version (with changeset: 4600:7b5f0df90228), I found the following statement (line 126 @ TriangularMatrixVector_MKL.h)
This statement is part of the macro definition of EIGEN_MKL_TRMV_CM. It seems that such a macro is used to generate a long function. Then from line 154 to line 157, this macro is used to actually generate several functions, respectively for double/float/dcomplex/scomplex. So when there functions are called, the printing statement will inevitably executed, which I believe is not a desired effect. There are other such statements in the MKL-related codes, which, I believe, are just for debug purpose and should be commented out once the debugging is done. |
Moderator
|
thanks, I did not see them when reviewing the MKL code. (fixed in the devel branch)
|
Registered users: Bing [Bot], claydoh, Google [Bot], rblackwell, Yahoo [Bot]