Repo

kjana00@gmail.com

older <-

2013-02-15 01:12:32

今朝はくもり。朝ごはんはパンとサラダとソーセージ。日が差しそうで差さない感じの薄ぐもりだから、そのうち晴れてくる……といいな、という。

手伝ってくれって言われた二つの機能のうち、昨日片付けたのじゃない方についての質問に返事が来てたんでそこから。一応作ったんだけど上手く動かないんで見てもらえないかという。で、見た。うん、それは動かないなというのが即、一つ。セル配列に誤差最小値を与えるパラメータと誤差を持っておいて、それを随時更新していくっていうコード。そこは、自分で作った時と基本的に変わってない。で、パラメータの内の一つに関する操作を評価関数外でだけいじって評価関数には常に 0 を渡すようにしたっていうのが修正内容。当然、評価関数はセル配列を更新したつもりでそのパラメータは 0 にしてくれる。つまり、そこのパラメータだけ絶対動かない。そりゃいくら繰り返したって収束しないよ、と。

自分でやるんだったらこの修正、評価関数の中で操作はやることにしてただろうなと思いつつ、現担当の方針をそのまま受けるなら評価関数外で中でやってるのと同じようにセル配列の更新をしなきゃいけませんねと返事しておく。他にも前方探索と後方探索で同じ関数を同じパラメータで呼んでちゃいけないだろうとか、整数でしか動かないようにしていたパラメータを 1 以下の単位でも動くようにしたいうのが目玉なのに ceil とか入ってちゃ駄目だろうとかの指摘を載せて、ついでに自分でやるんだったら、の方針に沿った場合の修正をさくっとでっち上げて付けておいて。

それで元に戻って昨日の帰りに手を付けかけて止めた計算の置き換えを真面目に。1000 で割って 1000 倍したのの商を 1000 倍したのと余りを 1,000,000 倍して割ったのを足すだけだとだいぶ足りなくて、前者の割り算での余りを 1000 倍して割ったのを足す必要があるようだ、というのを数式操作だけで納得出来ないもんだから C コード起こしてみて、それで納得してから絵を描いて……って何か甚しく本末転倒な気がするな、今これを書きながら考えるに。

信号線の繋ぎ方を間違えてみたり型が合わないと怒られて自動設定になってた出力型を指定したり mod だと負の数に対してつじつまを合わせ難かったんで rem にしたりしてとりあえず出来上がり。元の計算を置き換えてみて悪影響が無いのを確認して、生成コードでのシミュレーションでもちゃんと精度出てるのを確認。これで良し、と思ったら生成コードに排除したはずの 64bits 演算マクロが入ってきちゃっておや? となる。ちゃんと型指定もしてるからそうならないつもりだったんで。

お客さんの方での更新をマージしてコード生成してっていうのを挟みつつ延々悩んでみる。小さなモデルで実験してたらこれで大丈夫ってなったんで元に戻って組み込んでみたらまた駄目だったとか。何でこの Gain は int32 受け取ると固定小数点数を出力型にするかね? 置き換えた計算を詰め込んだサブシステム内の Gain の出力型を全部 double に固定してやって、uint32 な信号線を Type Conversion で int32 にしてるのの後にもう一つ Type Conversion 挟んで double にしてやって、でようやく単純に "/" と "%" を使ったコードを吐けるようになった。何か思ったよりだいぶ手間がかかったな、これ。

これでこっちのモジュールについては二つのシミュレーションモードのどちらでもほぼ同じようにテストが通ったり通らなかったりするようになったんで、もう一つのモジュールについてもちょっと見てみる。ええと、だいぶ差があるように見えるけど、このサブシステムの出力がもうちょっとましになるだけで全然違うな、多分。

で、そのサブシステムを見てみたんだけど……別段変な設定をしてるわけでもないし、変なコードが吐かれてるわけでもないように見えるのに出力が全然違うっていうので悩む。悩んで、今日のところはあきらめた。下位のサブシステムのコード見て変じゃないって思ってたけど、このサブシステムのテストでどうなってるか見てなかったなとか、生成コードの方で途中経過を見るの面倒臭いんだけどなとか思いつつ帰る。

今日はずいぶんあったかいようなと思いつつ、帰る途中で晩ごはんに野菜煮込みラーメン。野菜おいしいですよ。何かネットワーク系のクーポン配りをやってたらしく、それで来た客でいつもよりちょっと混んでた。それにしても、壁掛けカレンダーのラブリーな子猫が目に入るたびに自動的に和む自分がちょっとあれな感じ。

部屋に戻って後は WWW 見たりゲームしたりまんが読んだり寝たり。装備の強化もレベルアップもそう簡単には果たせなくなってるんで進捗が無い感じ。で、ボ帝ビル相手に残り HP 2、死ぬ、死ぬとか危いことをやってたりする。……ちょっとよろしくない感じ。危険、危険。

older <-

goto

hint can be:

Tags

old

2007-05 -- 2006-12

ゲーム関係の古い記録

before 2005-12