告知欄です

1- レス

Million Fever!!◆トリップ・チェイサー◆常駐スレpart82


[752] ◆sine4kuduo :04/07/31 02:13
>>749 ビットスライス使う限りは、解決策はほとんどないっすよ。 ここではlongは64bitとしてください。 long a1 = 0x00000000FFFFFFFF ; long a2 = 0x0000FFFF0000FFFF ; long a3 = 0x00FF00FF00FF00FF ; long a4 = 0x0F0F0F0F0F0F0F0F ; long a5 = 0x33333333333333333 ; long a6 = 0x55555555555555555 ; //long NOT = 0xFFFFFFFFFFFFFFFF ; //使うかどうかは知らないが こいつと4種類程度の論理演算の組み合わせだけで、64bit全空間の数字を作れますよね? こいつからout1, out2, out3, out4の数値を作ります。 で、ツリーを構成しながら総当たり検索。同じ値が出たらその時点でツリーは抹消。 out1〜out4の4つの値が出た時点で終了。 ツリーを逆順にたどってゲートを絞り込む。これで、最低限必要なゲートだけが残る。 俺が考えた、もっとも単純(だがメモリ馬鹿食い)な、最短ゲート探索アルゴリズム。 俺みたいなアホでも思いつくアルゴリズムですから、KwanのBSのコードの最適化は 完了してると思ってます。 ゲート数を削減というアプローチでは根本的には無理だと思います。 movqのレイテンシ隠蔽っていうアプローチをとるにしても、コンパイラや CPUのスーパースケーラ・アウトオブオーダ実行ユニットがやってくれるレベルの話だし。


0ch BBS 2004-01-25