Eigen:C++行列計算ライブラリ

C++用行列計算ライブラリを探していて、Eigenを見つけた。

いや、どうもかつて見たことがあったはず。

GSL(Gnu Scientific Library)よりこれの方が優秀と思われる。

下記参照

http://eigen.tuxfamily.org/index.php?title=Main_Page

下記も参照

https://tech.preferred.jp/ja/blog/eigen/
https://qiita.com/yohm/items/a03006790dc1e54a87be
https://www.regentechlog.com/2018/12/09/eigen-note/
https://qiita.com/vs4sh/items/7e8bc95250db8d88bc41

 

さて、最近のうちの連中はどうもトロイから導入手順を記載しておこう。

 

DLしたファイル(eigen-3.3.7.tar.bz2)を解凍・展開。

展開されたファイル INSTALL を読んでその指示に従う。

指示には「開始前の説明 Explanation before starting 」とあるので

ちゃんと読むべき。うちの連中だとまあこのファイル自体を読まないだろうな。

ここでは、方法2の CMake を使った導入を行う。

INSTALLファイルが置かれているディレクトリを 'source_dir' と呼ぶ。

導入作業開始前に 'build_dir' と呼ぶ別のディレクトリを作っておいて、

下記を実行。

cd build_dir
cmake source_dir
make install

"make install" では管理者権限が必要になるかもしれない。

"make install" 実行の前に下記に示す cmake の出力をよく読むべきである。

-- ************************************************************
-- Configured Eigen 3.3.7
-- Some things you can do now:
-- --------------+--------------------------------------------------------------
-- Command | Description
-- --------------+--------------------------------------------------------------
-- make install      | Install Eigen. Headers will be installed to:
--                          | <CMAKE_INSTALL_PREFIX>/<INCLUDE_INSTALL_DIR>
--                          | Using the following values:
--                          | CMAKE_INSTALL_PREFIX: /usr/local
--                          | INCLUDE_INSTALL_DIR: include/eigen3
--                          | Change the install location of Eigen headers using:
--                          | cmake . -DCMAKE_INSTALL_PREFIX=yourprefix
--                          | Or:
--                          | cmake . -DINCLUDE_INSTALL_DIR=yourdir
-- make doc         | Generate the API documentation, requires Doxygen & LaTeX
-- make check      | Build and run the unit-tests. Read this page:
--                          | http://eigen.tuxfamily.org/index.php?title=Tests
-- make blas         | Build BLAS library (not the same thing as Eigen)
-- make uninstall  | Removes files installed by make install
-- --------------+--------------------------------------------------------------
-- Configuring done
-- Generating done
-- Build files have been written to: /home/sugi/eigen-3.3.7_build_dir

-- ************************************************************

要するに、引数無しで  sudo make install すれば

/usr/local/include/eigen3 ディレクトリに

Eigenのヘッダファイルがコピーされる。

ついでなのでさらに make doc して make check してみた。

make check の結果は以下の通り。

787個のテストのうち1個(614番目)だけ通らなかったもよう。

 99% tests passed, 1 tests failed out of 787
Label Time Summary:Official       = 376.35 sec*proc (676 tests)Unsupported    =  59.80 sec*proc (110 tests)
Total Test time (real) = 563.87 sec
The following tests FAILED: 614 - sparseqr_2 (Child aborted)Errors while running CTestCMakeFiles/check.dir/build.make:57: recipe for target 'CMakeFiles/check' failedmake[3]: *** [CMakeFiles/check] Error 8CMakeFiles/Makefile2:355: recipe for target 'CMakeFiles/check.dir/all' failedmake[2]: *** [CMakeFiles/check.dir/all] Error 2CMakeFiles/Makefile2:362: recipe for target 'CMakeFiles/check.dir/rule' failedmake[1]: *** [CMakeFiles/check.dir/rule] Error 2Makefile:292: recipe for target 'check' failedmake: *** [check] Error 2

さらについでに make blas もしておいた。

以上