0x5a周囲に値が0の番人を置いた方が、境界チェックをしなくていいので高速になるぞ。するのがよい次世代状態計算(定義通りの自然な方法)まずは、ライフゲームの定義どおりに自然に計算する方法を示す。セルの次世代状態を求めた場合、処理時間は約24ミリ秒だった。32bitモードでビルドセル数は約100万なので、1セルあたりの処理時間は約24ナノ秒ということになる。1ナノ秒に約3命令を実行するとすれば、1セルを処理するのに約72命令を費やしている計算になる。次世代状態計算(テーブルを引く方法)次世代の状態は8近傍と注目点の合計9ビットの状態で決まるので、9ビット分のテーブルを用意しておいて、テーブルを引くことにより次世代状態を得ることも出来る。ビットをまとめて計算するようにしてみる。8ビットまとめて計算すれば、単純に言えば8倍高速になる。128ビットまとめて計算すれば、恐ろしく高速になる。ビットボード」でググると以下のページがみつかるビットボード(Bitboard)を用いたライフゲームのソースコードこのページで解説されているアルゴリズムは非常に面白い。byte)にしているが、処理単位は任意のレジスタ長で可能である。影響を及ばさないので不要である。使用可能だが、32ビットレジスタを2つで64ビット演算を行うので、32ビットで計算した場合よりも、かえって遅くなってしまった。s3;}8近傍の生データの取得位置を下図に示す。計算するのにもっと高速な方法はないものかとランチを食べながらいろいろ考えてたら、ピコン!とひらめいた。計算するのではなく、まずビットごとの加算を行う。合計の上限は8なので、4ビットあれば十分である。