Как проверить номер версии библиотеки шаблонов Eigen С++?

Я добавил несколько разных версий Eigen по умолчанию, включая каталог Visual С++. Но у меня возникла проблема развала при использовании LDLT (декомпозиция Холески) для некоторых из числовых примеров тестирования.

Итак, я хочу определить, какая версия действительно активна при отладке кода.

Есть ли какая-либо функция, которая может указывать текущий активный номер версии Eigen?

Ответ 1

Этот ответ является только резюме из комментариев выше:

  • Во время компиляции у вас есть EIGEN_WORLD_VERSION, EIGEN_MAJOR_VERSION и EIGEN_MINOR_VERSION, вы можете легко вставить эту информацию в ваше приложение.

  • 3.1.91 звучит как beta version of 3.2.

  • Макросы номера версии определяются в Macros.h, расположенном по адресу \Eigen\src\Core\util\.

Ответ 2

Хотя это не цель OP, люди, находящие этот вопрос, могут быть заинтересованы в проверке того, равна ли версия более новой, чем конкретная версия по соображениям совместимости с разными версиями Eigen. Это можно сделать более легко с помощью макроса EIGEN_VERSION_AT_LEAST(x, y, z) следующим образом:

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

Этот макрос также определяется в Eigen/src/Core/util/Macros.h и использует EIGEN_WORLD_VERSION, EIGEN_MAJOR_VERSION и EIGEN_MINOR_VERSION внутренне.

Ответ 3

Чтобы проверить номер версии библиотеки шаблонов Eigen С++, просто введите

dpkg -p libeigen3-dev

в терминале. Или просто введите

pkg-config --modversion eigen3

вы получите версию Eigen.