ぎょーむ日誌 2006-02-22
2006 年 02 月 22 日 (水)
-
0850 起床.
うーむ.
コーヒー.
朝飯.
0950 自宅発.
曇.
1005 研究室着.
-
また母子里 Gibbs 林冠モデルの Perl → C++ 化作業.
光量データやりとりとか,
尤度計算の最底辺とか.
-
MCMC 計算にもちこむ一歩手前までできた.
時刻は 1125.
ここで少し方向をかえて output まわりの整備にとりくんでみる.
つまり今まで「前」からツメてきたのを,
今度は「うしろ」がわから包囲していく,
というような.
-
と思ったが,
また尤度計算まわりのほうにもどる.
一進一退.
-
また output まわりにもどる.
しかしまた寄り道,
デストラクターを明示的に階層的に定義していく.
ぢつはこの計算プログラムの場合,
デストラクター呼ぶときにはプロセスそのものが終了してるはずなンで,
かかる定義あれこれは特に必要ないハズなのだが
……
このあたりきちんと書かないで放置しとくと
言い知れぬ不安と猜疑にぢりぢりとココロ蝕まれていくところが
呪われ言語 C++ の呪われなゆえんだっ
……
-
昼飯.
-
R-help ML によると,
Ripley
先生が nested models における AIC モデル選択に関する
talk をやったらしい
(その投稿
……
Ripley talk の投影資料 PDF ファイルへのリンクがある).
ちょっといまかくのごとくどたばたしてて読んでないんだけど,
気になる内容だ.
いかにも Ripley 先生的というべきか,
いつものことながら親切なのか不親切なのかわかりかねる
There is a published paper version.
でオワってるコメントもあって,
これに対して当然ながら「出典は?」という質問が出たところ.
-
昼飯まえに作ったですとらくたーがちょっとした呪われの原因になった.
いやはや.
デストラクターの重要な仕事のひとつは
「こちらの世界」には pointer しかないような
「あちらの世界」のおぶぢぇくとを破壊してやることにある.
コンストラクターでこの pointer を初期化してやらなかったら,
C++ においてはいつものごとくてきとーな値が入る.
この状態で
delete pointer
とかやると当然のことながら Segmentation Fault
となる.
そこでコンストラクターで pointer(NULL)
してやり,
さらにデストラクターで NULL
でないこと確認したうえで delete
してやらねばならぬ
……
これが呪われ以外のなにものであらうか.
-
ついでにわかったというか思い出したんだけど,
pointer 経由で「あちらの世界」につながってるよーな
クラスのおぶぢぇくとの場合,
デストラクターはちゃんと書いたほうがよい.
用心してコード書いても,
どこかで
「一時的オブジェクトの生成」→「すぐに消滅」
となる場合があるからだ.
こんなのでリークを発生させたら,
そのでばっぐは悪夢そのものである.
-
とりあえず簡単な入出力試験は終了.
<cstdlib>
の sprintf()
の型をいいかげんにしてるとこれまた
Segmentation Fault
.
いやー,
Perl のケガれた sprintf()
にカラダが慣れてしまってるといちいち考えるのがめんどうですね.
R
の sprintf()
もケガれ系
(なので何も考えずに使える).
-
さて,
まだ C++ 化されてないのは計算中核部の中核部,
葉っぱを追加したり削除しながらススめる MCMC 計算まわり,
か.
このあたりも片づけてしまうか.
時刻は 1530.
-
乱数まわりでちとぢたばたする.
各ファイルから
メルセンヌツイスター
の関数を呼ぶのは,
やはりというかどうもトク策ではないらしく
(名前空間のせい?),
まあそういうこともあろうかと思って準備しておいた
C++ らっぱークラスのオブジェクトで置き換える.
-
Perl で計算させてた部分を C++ に置き換える作業,
1840 ひととーり終了.
Perl は入出力まわりが残っているだけ.
-
で,
試験運転やってみると
……
なンか無限ループにおちいってるな.
無限ループは比較的単純なばぐなので簡単になおせるよーな気もするのだが
……
アタマがかなりやられてるような気もするので,
本日の呪われはここまで.
-
SWIG の弱点のひとつは,
gdb
などでばっがーが使えないらしい,
ということで
……
(後記: これは使えるとわかった
---
24 日 の記述参照)
-
そして来月研究発表する M1 のヒトたちもかなりやられてるな.
1930 研究室発.
1950 帰宅.
-
呪われ解消のため運動.
体重 72.4kg.
晩飯.
今晩はコードはひねくらない.
-
R-help に Ripley 先生の
回答
が.
Ripley, B.D. (2004)
`Selecting amongst large classes of models'
In `Methods and Models in Statistics'
eds Adams, N., Crowder, M., Hand, D.J. and Stephens, D. Imperial College
Press, pp. 155-170.
だそーで
……
この本
か.
うーむ
……
-
[今日の運動]
-
[今日の食卓]
- 朝 (0920):
米麦 0.5 合.
トマト・ネギ・バーナ貝の煮物.
- 昼 (1340):
研究室お茶部屋.
米麦 0.5 合.
トマト・ネギ・バーナ貝の煮物.
- 晩 (2210):
米麦 0.7 合.
ハクサイ・ニンジン・ニラ・シイタケ・ショウガ・豚タンの八宝菜.