Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: quick bitboard question

Author: Alessandro Damiani

Date: 03:40:43 08/27/05

Go up one level in this thread


On August 27, 2005 at 05:54:16, Gerd Isenberg wrote:

>On August 27, 2005 at 05:33:17, Alessandro Damiani wrote:
>
>>On August 27, 2005 at 03:12:23, Gerd Isenberg wrote:
>>
>>>On August 26, 2005 at 16:11:53, Dan Honeycutt wrote:
>>>
>>>>Run the lowest bits down the a or h file and you can do pawn captures without
>>>>having to mask those files.
>>>>
>>>>Best
>>>>Dan H.
>>>
>>>Hi Dan,
>>>
>>>a very nice idea! Keeping the a-file in least significant byte and the h-file in
>>>the most significant byte (or vice versa) to avoid a-h-wraps for pawn attacks
>>>and further ands.
>>>
>>>eg. with a1 == 0:
>>>
>>>a1 a2 a3 a4 a5 a6 a7 a8
>>>b1 b2 b3 b4 b5 b6 b7 b8
>>>c1 c2 c3 c4 c5 c6 c7 c8
>>>d1 d2 d3 d4 d5 d6 d7 d8
>>>e1 e2 e3 e4 e5 e6 e7 e8
>>>f1 f2 f3 f4 f5 f6 f7 f8
>>>g1 g2 g3 g4 g5 g6 g7 g8
>>>h1 h2 h3 h4 h5 h6 h7 h8
>>>
>>>"left" attacks of white pawns  ::= white pawns >> 7 ; eg. e4:d5
>>>"right" attacks of white pawns ::= white pawns << 9 ; eg. e4:f5
>>>"left" attacks of black pawns  ::= black pawns >> 9 ; eg. e4:d3
>>>"right" attacks of black pawns ::= black pawns << 7 ; eg. e4:f3
>>>
>>>Gerd
>>
>>A nice idea indeed, but then vertical shifting needs masking, e.g. shiftUp(e8) =
>>f1. So, no real gain in the end, I guess.
>>
>>Or do I miss something?
>>
>>Alessandro
>
>Since pawns usually don't stay on back ranks, there is no need to worry about
>rank1/8 pawn push wraps. So for pawns there is a small gain for their attacks.
>For x86-32 it might be negligible since the double register shifts are much more
>expensive than two "ands" with immediate operands.
>
>For x86-64 there is only one reg64 shift. The "and reg64, mem64" reads the mask
>from memory - so the relative gain might be more significant here.
>
>Gerd

Sorry, I mistakenly thought to apply this method to all piece bitboards. But,
right, if only applied to pawns then there is no drawback.

Alessandro



This page took 0.01 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.