Author: Alessandro Damiani
Date: 03:44:14 08/27/05
Go up one level in this thread
On August 27, 2005 at 06:40:43, Alessandro Damiani wrote: >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 To determine the squares in front of the pawns we still need to mask. Something used in eval. Alessandro
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.