Author: Alessandro Damiani
Date: 10:50:03 09/14/02
Go up one level in this thread
On September 14, 2002 at 13:17:53, Steffan Westcott wrote: >On September 14, 2002 at 12:41:02, Alessandro Damiani wrote: > >>On September 14, 2002 at 07:27:17, Steffan Westcott wrote: >> >>>BitBoard WhitePassedPawns(BitBoard w_pawns, BitBoard b_pawns) >>>{ >>> return w_pawns & ~FillDown( b_pawns >>> | ShiftDownLeft (b_pawns) >>> | ShiftDownRight(b_pawns)); >>>} >> >>There is just a small improvement to your method "WhitePassedPawns()": factor >>out the "shift down" to avoid shifting down twice. >> >>BitBoard WhitePassedPawns(BitBoard w_pawns, BitBoard b_pawns) >>{ >> return w_pawns & ~FillDown( b_pawns >> | ShiftDown( ShiftLeft (b_pawns) >> | ShiftRight(b_pawns)); >>} >> > >Alessandro, > >I should have also included the following procedure definitions. Note these >diagonal shifts are about as fast as the rank and file shifts. So my original >code _may_ be a very narrow win over yours, or your favourite optimising >compiler may in fact give you the same object code for both! > >For clarity in my posts, I'm not writing 'inline' everywhere, please assume >their presence as appropriate :) > Ahh, sorry! My sense of math misled me when I saw these twice "down" in the shifts. That's why I was talking of "factoring out". I didn't remember how I implemented ShiftLeftDown/RightDown. Actually I use the same like yours but as macros. So, we are on the same boat. :) 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.