タグ

Boostに関するkojosanのブックマーク (7)

  • sing a song of song - FC2 BLOG パスワード認証

  • 羊堂本舗 脳ざらし紀行 (2006-05-05)

    _ 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)

  • boost user - uBLAS

    行列なんてそんなに詳しく無いので、 三角行列とか対称行列の表現手段とか色々面白そうなのですが、 まあよくわかりません。 だから、非常に重要な基礎技術である、 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 数学関係ライブラリの使い方

    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 を巡

  • 動的削除子 (dynamic deleter) - 意外と知られていない? boost::shared_ptr の側面 - Cry’s Diary

    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" <<

    動的削除子 (dynamic deleter) - 意外と知られていない? boost::shared_ptr の側面 - Cry’s Diary
  • The Boost C++ Metaprogramming Library

    概要 この文書は,アルゴリズム,シーケンス,メタ関数クラスの拡張可能なコンパイル時フレームワークである, 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

  • 1