How to check the version number of Eigen C++ template library?

Although it is not the goal of the OP, people finding this question may be interested in checking if the version is equal to are newer than a specific release for compatibility reasons with different versions of Eigen. This can be done more easily using the EIGEN_VERSION_AT_LEAST(x, y, z) macro as follows:

#if EIGEN_VERSION_AT_LEAST(3,3,0)
    // Implementation for Eigen 3.3.0 and newer
#else
    // Implementation for older Eigen versions
#endif 

This macro is also defined in Eigen/src/Core/util/Macros.h and uses EIGEN_WORLD_VERSION, EIGEN_MAJOR_VERSION and EIGEN_MINOR_VERSION internally.


On Linux:

grep "#define EIGEN_[^_]*_VERSION" /usr/local/include/eigen3/Eigen/src/Core/util/Macros.h

You'll get something like:

#define EIGEN_WORLD_VERSION 3
#define EIGEN_MAJOR_VERSION 3
#define EIGEN_MINOR_VERSION 7

It means version 3.3.7


In order to check the version number of Eigen C++ template library, just type

dpkg -p libeigen3-dev

in the terminal. Or just type

pkg-config --modversion eigen3

you will get the Eigen version.


This answer is only a summary from the comments above:

  • At compile-time you have EIGEN_WORLD_VERSION, EIGEN_MAJOR_VERSION and EIGEN_MINOR_VERSION, you can easily embed this information in your application.

  • 3.1.91 sounds like a beta version of 3.2.

  • The version number macros are defined in Macros.h located at \Eigen\src\Core\util\.

Tags:

C++

Eigen