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?
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\
.
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.
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.