2010-05-01から1ヶ月間の記事一覧

GCC最適化+α

最適化オプション -O3 に加えて、以下のオプションを与えるどうなるか。環境はIntel Core2 Duo 1.2GHz。プログラムはHS法の線型数値計算の反復1000回をYosemiteに。OpenMP有効、-O3で標準3.0秒弱。 -march=native: ほぼ変わらない。気持速くなる誤差。 -mfpm…

多様性

はじめてポリモーフィズムというものを使った。意外と便利。そして、基底クラスのメンバ関数内から派生クラスの仮想関数って呼べるのね。知らんかったよ。多様性のおかげで、同じコードが乱立してたフロー計算プログラムがすっきり。各手法の漸化式や独自パ…

関数バインダ

STL の std::bind1st や std::bind2nd は参照の参照問題を解決できないので、パフォーマンス的な問題が起こりうる。そこで、Boost の boost::bind。これは参照の参照問題を回避しているだけでなく std::ptr_fun などで関数オブジェクト化しなくても関数をそ…

Cast from C array to Boost::Array

http://d.hatena.ne.jp/kamekamekame877/20090627 での配列からのキャストを使った応用。 BOOST_STATIC_ASSERT(sizeof(int[10]) == sizeof(boost::array<int, 10>)); int a[10]; boost::array<int, 10> &b = *reinterpret_cast<boost::array<int, 10>*>(a);</boost::array<int,></int,></int,>