Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

cpp

C++からpython3スクリプトをコールする

実際のところ #include <cstdlib> int main() { // "helloworld.py" Pythonスクリプトを実行 int returnCode = system("python3 helloworld.py"); if (returnCode != 0) { // エラー処理 } return 0; } 参考もと cstdlib - cpprefjp C++日本語リファレンス</cstdlib>

【読書メモ】C/C++逆引き大全

現場ですぐに使える! C/C++逆引き大全 560の極意作者: 増田智明出版社/メーカー: 秀和システム発売日: 2018/03/27メディア: 単行本この商品を含むブログを見る名前の通り、まんまのC言語、またはC++言語の逆引きリファレンス集です。 初心者一歩あと*1になっ…

Boost::ublasで行列計算する その5:行と列

実際のところ matrix_row(行)とmatrix_column(列) #include <iostream> #include <boost/numeric/ublas/matrix.hpp> #include <boost/numeric/ublas/matrix_proxy.hpp> #include <boost/numeric/ublas/io.hpp> using namespace std; using namespace boost::numeric::ublas; int main() { // double型を要素とする行列 matrix<double> v(3,3);…</double></boost/numeric/ublas/io.hpp></boost/numeric/ublas/matrix_proxy.hpp></boost/numeric/ublas/matrix.hpp></iostream>

Boost::ublasで行列計算する その4:粗行列

cpp

疎行列 出典: フリー百科事典『ウィキペディア(Wikipedia)』疎行列(そぎょうれつ、英: sparse matrix)とは、成分のほとんどが零である行列のことをいう。スパース行列とも言う。 (中略) 数値解析の分野では、疎行列を前提とした解法が多い。疎行列であれ…

Boost::ublasで行列計算する その3:ゼロ行列・単位行列

cpp

実際のところ ゼロ行列 #include <boost/numeric/ublas/matrix.hpp> #include <boost/numeric/ublas/io.hpp> int main () { using namespace boost::numeric::ublas; zero_matrix<double> m (3, 3); std::cout << m << std::endl; } 単位行列 #include <boost/numeric/ublas/matrix.hpp> #include <boost/numeric/ublas/io.hpp> int main …</boost/numeric/ublas/io.hpp></boost/numeric/ublas/matrix.hpp></double></boost/numeric/ublas/io.hpp></boost/numeric/ublas/matrix.hpp>

Boost::ublasで行列計算する その2:加法・乗法

cpp

#include <iostream> #include <boost/numeric/ublas/matrix.hpp> #include <boost/numeric/ublas/io.hpp> namespace ublas = boost::numeric::ublas; using namespace std; int main() { // double型を要素とする行列 ublas::matrix<double> v(3,3); ublas::matrix<double> u(3,3); // 各要素の参照と代入 v(0,0) = 3.0; v(0,1) = 0.0; v(0,2…</double></double></boost/numeric/ublas/io.hpp></boost/numeric/ublas/matrix.hpp></iostream>

Boost::ublasで行列計算する その1:行列を生成

cpp

BoostのサブライブラリであるuBlasでは行列やベクトルのような線形代数の計算を高速かつ見通しよく実施することができます。 実際のところ 導入 Ubuntuでの導入なら、apt-get経由でlibboost-devを使ったほうが楽です。 私のように、単に試したいという動機な…

【自習メモ】typedefとusing

typedefやusingはc/cppにて独自のデータ型を作るときに使用する予約語です。 マイコンを跨いだ実装でありがちな取り扱いビット数の差も、これらを用いて吸収できます。 基本型の機能を極力使いたいけど、一部振る舞いだけ変えたいとき、 あるいはアーキテク…

boostのforeach文とsplitで改行等特定シンボル毎にリスト化する

cpp

for文よりスマートに記述できるケースも 実際のところ #include <boost/algorithm/string.hpp> #include <string> #include <list> #include <iostream> #include <boost/foreach.hpp> using namespace std; int main() { string str ("1,2\n3,4\n5,6"); string delim ("\n"); list<string> list_string; boost::split(list_string, str, boos</string></boost/foreach.hpp></iostream></list></string></boost/algorithm/string.hpp>…

boostライブラリでCSVをパース

boostはC++標準委員の中の人が関わってつくった、最強ライブラリです。 数学系やパーサー系の強力なのが揃っています。 実際のところ #include <iostream> #include <string> #include <boost/tokenizer.hpp> #include <boost/foreach.hpp> using namespace std; typedef boost::tokenizer< boost::escaped_list_separat</boost/foreach.hpp></boost/tokenizer.hpp></string></iostream>…