2014-02-01 1 views
13

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

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

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

+4

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

+0

спасибо. Еще один вопрос, если они являются '3',' 1' и '91', означает ли это самый последний' 3.20', поскольку нет выпуска '3.191'? – LCFactorization

+1

3.1.91 звучит как бета-версия 3.2 для меня, но я точно не знаю. –

ответ

19

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

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

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

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

+2

В Debian или аналогичном: 'cat /usr/include/eigen3/Eigen/src/Core/util/Macros.h | grep VERSION' покажет вам версию. – kebs

2

Хотя это не цель ОП, люди, нашедшие этот вопрос может быть заинтересованы в проверке, если версия равно новее, чем конкретный выпуск по причинам совместимости с различными версиями Эйгена. Это может быть сделано более легко, используя 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 внутри.

0

Чтобы проверить номер версии библиотеки шаблонов Эйген C++, просто введите

dpkg -p libeigen3-dev 

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

pkg-config --modversion eigen3 

вы получите версию Эйген.

 Смежные вопросы

  • Нет связанных вопросов^_^