Author: Gerd Isenberg
Date: 00:24:05 04/10/04
Go up one level in this thread
On April 09, 2004 at 23:46:38, Christophe Theron wrote: >On April 09, 2004 at 16:27:51, Uri Blass wrote: <snip> >So basically bitboards or not bitboards is not the important question. So I >prefer to have code simpler to read and not to mess with ((b&(b-1))|~b). > One reason i like bitboards so much, are the semantic of operators ;-) Bitwise operations (&|^~) peform basic setwise operations. Shifting left/right 1,7,8,9 perform fill actions in one direction - or in general shifting a bitboard is adding a scalar to a vector. And unary minus or binary minus (one) is nice to isolate/reset the least significant one bit. isolate lsb one: b & -b or b & (~b+1) reset lsb one: b & (b-1) or b ^ (b&-b) Bytewise (rankwise) minus is nice to get rook attacks, since the next occupied piece acts like a borrow bit... So (b&(b-1)) resets the lsb, ~b is the complement set. The union set of both leave all elements set, except the reset lsb one. So ((b&(b-1))|~b) is equivalent to the cheaper ~(b&-b). Gerd > > > Christophe
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.