ベンチマーク

このコードがどれくらいの効率を持っているかだが、Zebraの日本語訳のサイトには「200-300クロック」と書いてあったように記憶している。
前回のコードを8方向分に膨らませ(全てのステップで直前のビット演算への依存が高いので、IPCを稼ぐために2方向分ずつバンドルした)、配置をわずかに変えながら1x10^8の計算を行ったところ、実行時間は6.335秒であった。
これから単純計算で、

6.335 x 3.2 x 10^9 x 10^-8 = 202.72

から、一度の関数の呼び出しあたり203クロック程度消費していることになる。
この結果から、それ以外の処理も含めているのでほぼ200クロックで次に置ける石の位置を特定できたと言ってよい。これはZebraの下限に近い値であり、十分な速度を有していると言えるだろう。とはいえ、SSEのレジスタが拡張された最近のx86プロセッサに最適化されたコードには負けそうだが。

なお、前回書き忘れたのだが、この課題は「強いオセロプログラムをつくる」ことを目的とはしていない。
あくまでも「高速にオセロの盤面配置を検索するプログラム」が目的である。

次に手を付けるべきは実際に手を打ったときに石をひっくり返す部分だが、どうやれば高速にできるかなかなかアイデアがないので、時間がかかりそうだ。