Author: Filip Tvrzsky
Date: 19:19:53 06/24/02
Go up one level in this thread
On June 24, 2002 at 20:33:32, Russell Reagan wrote: >I am not an experienced bitboard user. I've been thinking about trying them out >just to see how they work in comparison with my current 0x88 implementation. Is >there any potential problem in mixing the two approaches? One problem that I can >see would be that if you have an index for a bitboard, it's not going to index >into the same square in your 0x88 array. I suppose the only real reason to keep >0x88 would be for efficient edge detection. Do bitboards offer a solution to >edge detection? Or do they even need edge detection when using bitboards (ex. >using the BSF asm instuction would seem to avoid edge detection altogheter)? > >Thanks, >Russell I am not an experienced bitboard user too ... :-), but I have tried to mix both approaches in my program, so I think it is possible very well. I assume x86 CPU architecture farther, because I have no another expierence. My goal was to take advantage of bitboards anywhere if it could be more efficient then pure 0x88 representation, so I choose the way of improvement of my originally 0x88 program step by step. It is simple with knights and pawns, somewhat more complicated with rooks and most of all with bishops (I do not use bitboards here yet, but I work on it now). Something is possible to do with MMX instructions, but this instruction set has unfortunately many limitations. Generally I use bitboards by move generator, check detector and in evaluation function too. The cost of simultaneous keeping both 0x88 and bitboard representations is, in my opinion, more then outweighted by gains. The pure bitboard representation seems to me to be rather unefficient on x86 architecture, but I am not sure, I do not know it in detail. And regarding indexes for bitboards and 0x88 board, the mapping of one on other is not complicated, just 3 or 4 CPU instructions, no memory acces is needed: A - bitboard index (range 0-63), B - 0x88 index (range 0-7, 16-24, ... 112-119). Now, A == (B + (B & 7)) >> 1, and B == A + (A & ~7). Greeting you, Filip.
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.