しゃけのブログ

某大学院で研究している人の備忘録

C++

Eigen::Matrixのpybind11での使い方

C++

Eigenではデフォルトで行列をFortranのようにCol Major方式で扱っている. この方式では,Row Major方式を採用しているpython numpy arrayとの連携で参照渡しをする際に問題が発生する. そのため,C++で使うEigenのMatrixをRowMajorに変更する必要がある. …

ユーザ型をEigen::Matrixへ変換するoperatorがうまく働かない

C++

問題 次のようなコードを書いた. ubuntu 16.04 struct pose { explicit operator Eigen::Matrix4f () const { Eigen::Translation3f translation(x, y, z); Eigen::AngleAxisf rotation_x(roll, Eigen::Vector3f::UnitX()); Eigen::AngleAxisf rotation_y(p…

Eigenの演算がすごく重たい

C++

あるプログラムを書き換えていたら,Eigenの演算が1000倍遅くなってしまった. 原因は,コンパイラ最適化オプションを最適化なしにしていたから. add_compile_options(-std=c++17 -O2 -Wall) としたら1000倍ぐらいの速度で演算してくれるようになった. (-…

VSCodeのC/C++ Intellisenseで#includeがどうしても解決しない

VSCode のC/C++ intellisense で自作ライブラリの#includeを行うとき,どうしても"configurationProvider 設定によって提供された情報に基づいて..."というエラーが発生して,ヘッダファイルをインクルードしたことにできなかった. god_library/ ┣ folder1/…