Author: Sune Fischer
Date: 02:56:25 10/23/02
Go up one level in this thread
On October 22, 2002 at 18:55:09, Gerd Isenberg wrote: >On October 22, 2002 at 18:52:11, Gerd Isenberg wrote: > >>On October 22, 2002 at 18:47:54, Gerd Isenberg wrote: >> >>>one possible improvement :-) >>> >>>I would guess this reduces dependencies and may shlightly or microscopic faster: >>> >>>bitboard WhitePawnAttacks (bitboard b) >>>{ >>> bitboard c = b; >>> b ^= b; // b ^= c has to wait for the previous instruction >>> b |= (c << 7) & 0x7F7F7F7F7F7F7F7F; >>> b |= (c << 9) & 0xFEFEFEFEFEFEFEFE; >>> return b; >>>} >>> >>>Gerd >> >>Or of course: >> >>bitboard WhitePawnAttacks (bitboard b) >>{ >> bitboard c = b; >> b = (c << 7) & 0x7F7F7F7F7F7F7F7F; >> b |= (c << 9) & 0xFEFEFEFEFEFEFEFE; >> return b; >>} > >what about this: > >bitboard WhitePawnAttacks (bitboard b) >{ > return ((b << 7) & 0x7F7F7F7F7F7F7F7F) > |((b << 9) & 0xFEFEFEFEFEFEFEFE); >} Isn't that what everyone is doing? ;) From Crafty: pcapturesl=(WhitePawns & mask_left_edge)>>7 & target; I don't know why Crafty also has a pawn attack table, seems pretty redundant to me, probably even a slowdown. -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.