Repo

kjana00@gmail.com

older <-

2011-01-08 01:20:49

今朝は晴れ。朝ごはんはパンとサラダとベーコンエッグ。ちょっと脂っぽくなり過ぎるのが難点か。おいしいんだけどね。

昨日あきらめて帰ったコードについてはちょっと何も思い付かない、ということで現実逃避気味に Visual C++ で GSL を使えるようにするという方向をもうちょっと追求してみる。1.8 なんていうだいぶ前のバージョンのポートを拾ってきたものの今一つ使い方がわからなかったりした後で、cccl を使って Cygwin 上で make するっていうのに乗ってみた。さすがにそれで上手く行ったっていう報告をなぞってるだけなだけあって、大した苦労もなく作れた、という辺りで午前中がおしまい。

午後になって真面目なデバッグに戻る。でも何が怪しいんだかさっぱりなんだよね、ぱっと見。ということで、ぱっと見ではちゃんと出て来ないところを真面目に見てみることにした。具体的には絶対値差が大き過ぎて +0 とか -0 とか表示されてるところを真面目に眺めて比べてみるとか。やってる途中で何かヤコビアンの小さい値のところが段々離れていくっていうのが見えてきた。解ベクタはそこまで乖離してない段階。まあそこまでって、確かに二倍とか四倍とかの幅だとは言え 10^-8 とかのオーダーなんだけど。

ここの計算はって言うかこの辺りは計算も何も 1 か -1 を突っ込んでるだけで、次が真っ当に計算してるところで、それで中身は……と追っ掛けてみてて気付く事実。そりゃ 1/104 は 0 やんな。1 がリテラルで 104 が size_t だったら。…… 1.0 にしたらまともな解が出て来るようになった。脱力……

良く特性っていうことで出されてるグラフ全域分の値をファイルに吐き出すようにして、走らせたらあまりにも帰ってこないから調べたら極端に収束が遅くなってて、でもその収束しない引数での計算を単独でやるとすぐに終わって、そうしたら何かごみの影響かと掃除するようにしたらまともになって……なんていうのを挟みつつ。結果を見るに移植元と同等の精度は出てる様子。同等に連続なはずの曲線が不連続になってるのは精度落とし過ぎたところがあるかと移植元の方で収束判定と pseudoinverse を作る時に捨てる特異値のしきい値を真面目に調整したら直ったんで C コードの方も直して、とりあえず最低限の確認は出来ました、と。昨日引っ掛かった時点では絶望しとこうかと思ったけど何とかなったわね。

ちょっと時間があるからと午前中に作ったライブラリで Visual C++ によるビルドを試してみる。ランタイムライブラリのリンク周りどうにか出来るならどうにかした方がいいなとか、何か異常に遅いって良く考えたらライブラリ作れるっていうのを確認したいばっかりで最適化オプション何も付けてなかったなとかありつつ、途中までの計算は gcc on Cygwin で作ったバイナリと同等の精度が出てるようで。これももうちょっと何かするはするけど概ねいい感じかな。

そんなことで気分良く帰る。また連休だことだし。で、晩ごはんはカレー。この赤身の切り落としは妙にいい肉だった。しゃぶしゃぶでもおいしそうな。これぐらい芋っぽいんだったらいいかもと辛味大根を放り込んでみたのはまずまずといったところ。特別効いてるっていうわけでもないけど悪いところもない。

後は WWW 見たりゲームしたり。ストレートで負けかけから逆転勝利って気分いいです。特にその前にストレートに 2 ゲームで負けた後だと。

older <-

goto

hint can be:

Tags

old

2007-05 -- 2006-12

ゲーム関係の古い記録

before 2005-12