web-dev-qa-db-fra.com

Comment vérifier le numéro de version de la bibliothèque de modèles Eigen C ++?

J'ai ajouté plusieurs versions différentes d'Eigen par défaut, y compris le répertoire de Visual C++. Mais j'ai eu un problème d'effondrement lors de l'utilisation de LDLT (décomposition Cholesky) pour certains des exemples numériques de test.

Je veux donc déterminer quelle version est réellement active lors du débogage du code.

Y a-t-il une fonction qui peut indiquer le numéro de version Eigen actif actuel?

22
LCFactorization

Cette réponse n'est qu'un résumé des commentaires ci-dessus:

  • Au moment de la compilation, vous avez EIGEN_WORLD_VERSION, EIGEN_MAJOR_VERSION et EIGEN_MINOR_VERSION, vous pouvez facilement intégrer ces informations dans votre application.

  • 3.1.91 sonne comme un beta version de 3.2.

  • Les macros de numéro de version sont définies dans Macros.h situé à \Eigen\src\Core\util\.

33
LCFactorization

Afin de vérifier le numéro de version de la bibliothèque de modèles Eigen C++, tapez simplement

dpkg -p libeigen3-dev

dans le terminal. Ou tapez simplement

pkg-config --modversion eigen3

vous obtiendrez la version Eigen.

8
NAK

Bien que ce ne soit pas le but de l'OP, les personnes qui trouvent cette question peuvent être intéressées à vérifier si la version est égale à une version plus récente qu'une version spécifique pour des raisons de compatibilité avec différentes versions d'Eigen. Cela peut être fait plus facilement en utilisant la macro EIGEN_VERSION_AT_LEAST(x, y, z) comme suit:

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

Cette macro est également définie dans Eigen/src/Core/util/Macros.h et utilise EIGEN_WORLD_VERSION, EIGEN_MAJOR_VERSION et EIGEN_MINOR_VERSION en interne.

3
m7913d