_ uBlas のベクトルと行列をお手軽に初期化 istringstream を使う。出力形式と同じ形式の文字列からベクトルと行列を生成することが出来る。 #include <boost/numeric/ublas/vector.hpp> #include <boost/numeric/ublas/io.hpp> #include <iostream> int main () { using namespace boost::numeric; using namespace std; ublas::vector<double> v; istringstream is("[3] (0.1, 2, 2)"); is >> v; cout << v << endl; } $./a.out [3](0.1,2,2)
行列なんてそんなに詳しく無いので、 三角行列とか対称行列の表現手段とか色々面白そうなのですが、 まあよくわかりません。 だから、非常に重要な基礎技術である、 expression template について解説をしてみます。 prod(mat3, prod(mat1, mat2)); prod(mat3, matrix<int>(prod(mat1, mat2))); prod(mat3, prod<matrix<int> >(mat1, mat2)); matrix<int> mat4(prod(mat3, prod(mat1, mat2))); matrix<int> mat4(prod(mat3, matrix<int>(prod(mat1, mat2)))); matrix<int> mat4(prod(mat3, prod<matrix<int> >(mat1, mat2)));
boost::numeric::ublas 線形代数ライブラリの使い方 連立方程式を解く・逆行列を求める DT Specials -> Boost -> boost::numeric::ublas 線形代数ライブラリの使い方 Last update : Jan. 13th, 2005 はじめに この文書は,線形演算ライブラリ boost::numeric::ublas の使い方の一部を簡単に説明したものです. どうも boost ― uBLAS については日本語の説明書きがないようです.頼みの日本語解説書[2]も uBLAS はたった 2 ページ.Web をあさっても私の希望にあう解説は見あたりません.仕方がないので英語のオリジナルドキュメントと格闘しました.その結果,なんとか連立1次方程式を解くことと,逆行列を求めることはできるようになったので,私と同じようなお悩みを抱えて Web を巡
boost::shared_ptr は動的削除子 (dynamic deleter) と呼ばれる技法に基づいて実装されています.この動的削除子という技法で重要なのは, boost::shared_ptr が最終的に呼び出す解放処理が boost::shared_ptr のテンプレート引数の型に関係なく,コンストラクタに実際に渡されたポインタの型で,かつ boost::shared_ptr のコンストラクタの呼び出しの段階で 決定する,ということです. 以下のようなコードが,動的削除子の効果が一番分かりやすい例になるでしょう. class X{ public: ~X() { std::cout << "X::~X" << std::endl; } }; class B{ public: ~B() // virtual でないことに注意!! { std::cout << "B::~B" <<
概要 この文書は,アルゴリズム,シーケンス,メタ関数クラスの拡張可能なコンパイル時フレームワークである, Boost C++ テンプレートメタプログラミングライブラリ(MPL) について述べている. ライブラリは実環境での実際の実際の仕様に十分な,強力で使いやすいツールセットを構築するために, ジェネリックプログラミング,及び関数プログラミングの世界から,重要な抽象化を導入している. MPL は,C++標準ライブラリ[STL94], [ISO98]の一部である,標準テンプレートライブラリ (STL) の影響を強く受けている. STLの様に,MPLはこの領域に将来貢献するための土台となるような,公開された概念と実装の枠組みを定義している. ライブラリの基本的な概念とイディオムにより,ユーザが与えられたメタプログラミングの問題に対して, アドホックなアプローチの世界に引きづり込まれることなく,
C++ 某所でデリゲートと関数ポインタが話題になっているで、ここでは boost.function を。 boost.function はありとあらゆる関数表現を統一して扱えるというもの。boost.function がなければ、かなり厄介な作業を強いられるだろう(特に boost.bind と boost.lambda の返値は凶悪なので)。 function<bool (int, int)> と書けば、int の引数を 2 つ持ち、bool を返す関数「のようなもの」は何でも受け入れる事ができる。古いコンパイラでは「bool (int, int)」と書けないので、他の手段を用いなければならないが、古いコンパイラなんて誰も使わないよね。 以下は、引数が偶数かどうかを返す関数(のようなもの)を扱った例。 #include <algorithm> #include <boost/bind.h
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く