今日は時間の進みが遅かった。午後2時過ぎの感覚で実際は12時。仕事を終えた夜も時間感覚がゆっくりだった。いつもの2割か3割り増しの時間感覚だった。
ある問題の検出方法を作っていてそのアルゴリズムの見直し。先週末一応修正できたと思って今日テストしてみたら誤検出した。動作過程が期待と一致しないので一致するように修正。中々捗らなかった。git commitを細かくしながらロールバックできるようにして試していたけどうまくいかない。ハマりそうなので区切りの良いところまで戻して小休止。
一回流れを確認しつつ期待する動作自体も念のため確認した。最終的にこれは問題がなく、先週の修正案は修正に至っていないことが分かった。前処理部分が問題なのかアルゴリズムが問題なのか切り分けるため、前処理後のデータを紙に描いてみて確認した。こっちも最終的に問題がないと判断して、そもそも作っているアルゴリズムに問題があると判断に至った。
現在のアルゴリズムの動作をダンプして確認すると動作が足りていない。ステップ毎に書き出して眺めてたりして、ループネストの順番が逆と判明した。分かるとそれはそうなんだけど近視眼的になっていた。加えて処理も足りていない。データをシフトしながら確認する仕組みなのだけど必要なのはシフトではなくローテートだった。ネスト順入れ替えで分かった。
紙の上で完動と期待値一致を確認した。嬉しい気持ちが爆発しそうになるのを抑えて別のデータで確認。期待値と一致した。その後もう2回テストした。問題なし。データの規模が小さいのもあるので確信を持って出来たと言えないけど良い線行っていると思う。データは乱数で生成していて人為的な偏りはないので一応信頼している。このまま確認作業をしてやっぱりダメでしたより今日はこの嬉しさで終わろうと仕事を終了。
ご褒美にナガノパープルを買った。今日起きたら朝食代りに食べよう。