This forum has been archived. All content is frozen. Please use KDE Discuss instead.

error EIGEN_USE_LAPACKE_STRICT with VS 2015 (eigen 3.3.3)

Tags: None
(comma "," separated)
nelsons
Registered Member
Posts
23
Karma
0
Hi,

I tried to build my project with -DEIGEN_USE_LAPACKE_STRICT or -DEIGEN_USE_LAPACKE
I have some errors:

1>d:\developpements\github\eigen\eigen\src\misc\lapacke.h(91): error C2146: syntax error: missing ';' before identifier 'lapack_make_complex_float'
1>d:\developpements\github\eigen\eigen\src\misc\lapacke.h(91): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\developpements\github\eigen\eigen\src\misc\lapacke.h(107): error C2371: '_Complex': redefinition; different basic types
1> d:\developpements\github\eigen\eigen\src\misc\lapacke.h(91): note: see declaration of '_Complex'
1>d:\developpements\github\eigen\eigen\src\misc\lapacke.h(107): error C2146: syntax error: missing ';' before identifier 'lapack_make_complex_double'

I found this workaround:

#define EIGEN_USE_LAPACKE_STRICT
#include <complex>
#define lapack_complex_float std::complex<float>
#define lapack_complex_double std::complex<double>

Does it the way to do ? Could you add some information about this here : https://eigen.tuxfamily.org/dox-devel/T ... apack.html

(I tried to build with openblas, bench about schur, qr, eig are very good and it is easy to use/implement with Eigen, Good work !!!)

Thanks
User avatar
ggael
Moderator
Posts
3447
Karma
19
OS
Hi thank you for the tip.

I would prefer to fix the lapacke header so that it just work. Could you try with the latest version of our lapacke header:
https://bitbucket.org/eigen/eigen/raw/3 ... /lapacke.h

and without your own #define lapack_complex_*

I think that the problem was that we included complex.h within an extern "C" section...
nelsons
Registered Member
Posts
23
Karma
0
ggael wrote:Hi thank you for the tip.

I would prefer to fix the lapacke header so that it just work. Could you try with the latest version of our lapacke header:
https://bitbucket.org/eigen/eigen/raw/3 ... /lapacke.h

and without your own #define lapack_complex_*

I think that the problem was that we included complex.h within an extern "C" section...


Sorry, I tried your modified version of lapacke.h but I have again the same problem:

1>d:\developpements\eigen\eigen\src/misc/lapacke.h(87): error C2146: syntax error: missing ';' before identifier 'lapack_make_complex_float'
1>d:\developpements\eigen\eigen\src/misc/lapacke.h(87): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>d:\developpements\eigen\eigen\src/misc/lapacke.h(103): error C2371: '_Complex': redefinition; different basic types
1> d:\developpements\eigen\eigen\src/misc/lapacke.h(87): note: see declaration of '_Complex'


Bookmarks



Who is online

Registered users: abc72656, Bing [Bot], daret, Google [Bot], Sogou [Bot], Yahoo [Bot]