2010-01-01から1年間の記事一覧

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

SfM

をこちらで行うことになりました。TRIさんの研究を引き継ぎます。

分散 variance

結構前に作ったんですが、STL となるべく互換性を持たせて作った分散を求める関数。内容も短いしイテレータさえあれば使えるので便利かも? #include <cmath> #include <iterator> #include <numeric> /*! variance between iterators 'b' and 'e' with average 'a'. */ template <typename V, typename InItr> inli</typename></numeric></iterator></cmath>…

TortoiseSVN のエラー

いつの間にやらエラーが出てリポジトリにアクセスできなくなった問題。 Error: network connection closed unexpectedly 日本語版を入れていると英語版に戻してもこのメッセージが完全に文字化けするので原因究明が困難にorz。 原因は PuTTY のデフォルトの…

関数の合成

合成関数はSGI ライブラリにはあるが、標準C++ライブラリには無い。使いたい場合は STLport か Boost を用いる…ってBoost では compose は無くなって Bind で代用すんのか。使い方は大体一緒?

GCCのRVO最適化のバグ?

warning: ‘r.203’ may be used uninitialized in this function note: ‘r.203’ was declared here コード上の変数名は r で、r.203 てのは多分RVO のために自動でつけられた名前か?自動的に埋め込まれたメンバ変数か…?わけ分からん。警告が出る箇所はコン…

青画面

OSクリーンインストールしたのにやっぱりブルースクリーンorz。やっぱりNICドライバがエラー吐いているような気がする…大丈夫か、このマシンで…

Google Gears Portable on Firefox 3.6

https://addons.mozilla.org/ja/firefox/addon/13492 Firefox 3.6でも動くのでやっと3.6に更新しました。

std::distance and std::advance

<iterator> - C++ Reference それぞれイテレータの差を取得する関数とイテレータを前進させる関数。std::distance はイテレータ(ポインタ)から配列の添え字を計算するときなどに使う。単純便利なのに意外と今まで知らなかった…</iterator>

仮想デストラクタと多様性(ポリモーフィズム)

継承を使う場合には通常、基底クラスのデストラクタは仮想関数(デストラクタ)にする。なぜなら、基底クラスのポインタ経由で派生クラスオブジェクトを削除しようとすると、その結果は不定であるため。というわけで、Effective C++ では基底クラスのデストラ…

value of const std::valarray

26.3.2.3 valarray element access T operator[](size_t) const; T& operator[](size_t);

valarray on icc

const and valarray reference - C / C++ どうやら Intel コンパイラではアドレス取得が不可能な模様…かくなる上は、滅多に使わない const_cast。 const std::valarray<int> v(100); const int* p = &(*const_cast<std::valarray<int>*>(&v))[0]; 多分これで、標準準拠でもデータの先</std::valarray<int></int>…

C++

最近またC++言語を使うこと自体が楽しくなってきました。コードの可読性、保守性、さらには速度もかなり上がってる。STLや Boost も含めて、ずいぶん使いこなせるようになったもんだ。

新手法

また新しい理論を思いついて、実装までしてみて、そしてかなり性能もよいことがわかったけど…パラメータ依存だ。収束性が分からん…

std::valarray と NaN と max(), min(), sum()

標準C++ライブラリの std::valarray は、浮動小数点数型で NaN を含んでいると、メンバ関数 max(), min(), sum() の値が NaN になったりする。これは無論 valarray に限ったことではなく、std::vector だろうと配列だろうと、標準テンプレートライブラリ関数…

従来手法の性能

ソースコード次第という事か…?プログラマの実力次第という事か…?それとも…?

STL algorithm 等と速度

とっても微妙な話だけど、手軽に実行速度をなるべく上げたいときに STL を使うべきかそうでないか。GCC 4.3.4 のSTLのソースコードと、実際の計測速度とかから判断したもの。なお、最適化 -O3 を使っています。 std::copy, std::equal, std::fill_n bits/stl…

Google C++ スタイルガイド

textdrop.net - このウェブサイトは販売用です! -&nbsptextdrop リソースおよび情報 コーディング規則は世の中に沢山あるが、これは比較的まとまっているので参考になる。

Firefox 3.6 リリース

新機能ペルソナでメニュー背景がコロコロ変わって楽しい! しかしながら、google gears が対応していないので、オフライン Gmail などを使っている人はまだアップグレードできない…残念。

GSLで3元連立3変数2階偏微分方程式を解く

のは不可能? GSL に出来ることは、1次元n元連立1変数1階常微分方程式だけらしい…残念 GNU Scientific Library – Reference Manual: Ordinary Differential Equations

icc

Qualify for Free Software | Intel® Software Intel 純正コンパイラ Linux版。非商用で使う個人向けの無料版。学生も対象。ただし、お給料をもらって研究している人は対象ではない。…というわけで私には使えない。RAの学生がどうなのかはよく分からんが…多…

GSL

今後はフリーでメジャーなライブラリを中心に使っていくことにした。そして自作は最小限で。コレスキー分解などが使えるので別のライブラリから乗り換える予定。

C++0x

リリース〆切が6年も伸びたw error

離散幾何用ライブラリ

こんなんビルドできねえよ!とりあえず判明したこと; Cygwin 版 CMake ではビルド不可能 インクルードしようにもCygwin 版の標準Cライブラリでは対応不可能(ANSI C 非標準関数を使っている) ていうかほとんどC++言語じゃなくてC言語とのチャンポン ライセン…

CMake

クロスプラットフォームなビルドファイル(Makefile とか)自動生成ツールらしい。Windows 版はGUIもある。とある研究ライブラリのビルドに必要なのでとりあえず調査。 CMake - Wikipedia

multi_array_ref

boost::multi_array_ref はメモリ上の連続データを multi_array として利用するためのインターフェイス。というわけで、これを使えば既存の std::vector や std::valarray のデータを boost::multi_array として使うこともできる。

Blitz++

http://www.oonumerics.org/blitz/manual/blitz04.html#l80 こ、これは! ステンシル(差分演算のための型抜き)がC++で作れる! これでソースコードが読みやすくなる?

CUDA

http://www13.plala.or.jp/code_01/index904_32_23.html インストールには X サーバを停めなければいけないんだってさ。 一応、C++でも使えるようだ。内部的に g++ を呼んでいるのだろうか?Ubuntu 9.10 64bit 版にCUDA 2.3 を導入。CUDA 公式サイトにある古…

MultiArray

やはり仕様が難しくて分かりにくい…しかし今の知識なら使えるぞ。イメージ的には、頓挫した標準ライブラリ valarray の slice, gslice で仕様化したかったことがきちんと実装されているという感じ。

初登校(研究所だけど)

誰もいない。まぁみんな下宿だからかね。しかしBoss がゼミがあると思ってきているのだがどういうことなんでしょう…