Author: Gerd Isenberg
Date: 12:48:57 11/19/02
Go up one level in this thread
<snip > >If you agree with me that the focus in the future is on evaluation, >it will not come as a surprise that more complex patterns get more >crucial. > >Let me present you a simple example. suppose you are scanning the board >for example for your king safety, mobility or whatever, for complex >patterns to evaluate: > >We are now at square sq and want to know whether a complex pattern is >happening. For example: > >if( sq >= 8 && board[sq-8] == bishop && board[sq-7] == rook && ... > >What's your bitboard equivalent here? > >snelbord is in the L1 cache of course. Let's not worry about L1 or L2 >caches here. Also let's not worry about that both in bitboards *and* >non bitboards you can get rid of at least 1 compare here. > >AFAIK you need an array for each value sq-8 and sq-7 to lookup the >mask needed for the bitboard to AND with. > >lemme give a shot out of the hand, writing compatible code >(so not writing out black & white : > >So here the bitboard equivalent without caring that in both >examples we can save out a CMP: > >if( sq >= 8 && (Bishops[side]&Mask[sq-8]) && (Rooks[side]&Mask[sq-7]) && ... > >Best regards, >Vincent Yes Vincent, exactly. But the sequence is wrong and that's the point. Instead of a loop over all squares looking for one ore more properties, one get a set of squares with the desired property, simply with a few bitwise operations. Then you may traverse the found bits, if any. Bitboards work like SIMD. Btw. instead of Mask[sq] you should use 1<<sq on 64 bit hardware. Often, if you traverse bitboards, it's even not necesseray to have a bitindex of a singular bitboard at all. The singular bitboard (bb & -bb) is fine to get attacks or attacks from with Kogge-Stone of a particulare square. That saves even the bsf-instruction. But the advantage of Kogge-Stone is to avoid a loop totally, the routine may be supplied with a set of multiple squares. If you want to know whether a white rook may reach a set of squares in n moves, without get being captured... Regards, Gerd
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.