web-dev-qa-db-ja.com

Eigen C ++テンプレートライブラリのバージョン番号を確認する方法

Visual C++のディレクトリを含むEigenのいくつかの異なるバージョンをデフォルトに追加しました。しかし、いくつかのテスト数値例でLDLT(コレスキー分解)を使用すると、折りたたみ問題が発生しました。

したがって、コードのデバッグ時に実際にアクティブなバージョンを確認したいと思います。

現在アクティブな固有バージョン番号を示すことができる関数はありますか?

22
LCFactorization

この回答は、上記のコメントの要約にすぎません。

  • コンパイル時にはEIGEN_WORLD_VERSIONEIGEN_MAJOR_VERSIONEIGEN_MINOR_VERSIONがあり、この情報をアプリケーションに簡単に埋め込むことができます。

  • 3.1.91beta version/3.2のように聞こえます。

  • バージョン番号マクロは、Macros.hにある\Eigen\src\Core\util\で定義されています。

33
LCFactorization

Eigen C++テンプレートライブラリのバージョン番号を確認するには、次のように入力します。

dpkg -p libeigen3-dev

ターミナルで。または単にタイプする

pkg-config --modversion eigen3

eigenバージョンを取得します。

8
NAK

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_VERSIONEIGEN_MAJOR_VERSIONEIGEN_MINOR_VERSIONを内部で使用しています。

3
m7913d