Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Attack Bitboards

Author: Sune Fischer

Date: 06:51:04 10/30/01

Go up one level in this thread


On October 30, 2001 at 09:21:49, Gerd Isenberg wrote:

>May be you win performance if rank and file of a rook are not occupied or only
>occupied by one other man (sliding or noot). But if there are more than one man
>on rooks rank or file, the loop becomes very ineffective. The straight foreward
>way with four incremental updated occupied bitboards and two 64 Bit reads for
>the rook is quite cheap and in average the fastest way without any conditional
>jump.

Yes _on average_ that is the faster, but with few man positions there might be
something faster.

Also if you have a hash hit, then the pre-calculation of all 4 occupied boards
have been wasted (that is if you have done these). So if you have a hash hit 66%
of the time, it's actually 24 operations "per move", unless you fix that in the
algorithm somehow.
A pre-calculation with 1 occupied bitmap would only need 6 operations.

Ok, I know you guys probably solved these problems long time ago, but I haven't
seen it written down anywhere.

>For the four preprocessed xxx_attacks[square][status] arrays it's not necessary
>to use all 8 squares on xxx for occupied status, the inner six squares are
>enough - so use xxx_attacks[64][64] instead of xxx_attacks[64][256].

Ah yes, brilliant - should be more cache efficient I guess :)

>Gerd

-S.



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.