Author: Robert Hyatt
Date: 07:57:01 11/20/02
Go up one level in this thread
On November 20, 2002 at 05:44:10, Sune Fischer wrote:
>On November 20, 2002 at 05:37:43, Steffan Westcott wrote:
>
>>On November 20, 2002 at 05:05:25, Sune Fischer wrote:
>>
>>> I believe that "move for move" 0x88 is faster because you don't have to do
>>> that extra bit scan to get the square
>>
>>Which square are you referring to? Source square? Destination square? I may be
>>able to help you...
>
>With bitboards (as I'm sure you know) you need a piece of assembler using bsf,
>then you need to clear the bit afterwards. This is not needed with 0x88.
>
>ie:
> while (padvances2) {
> to=FirstOne(padvances2);
> *move++=(to+16)|(to<<6)|(pawn<<12);
> Clear(to,padvances2);
> }
>
Wrong idea however. Most of the move generations done are for captures. 0x88
can't keep up with bitmaps there, because bitmaps generate _only_ capture moves,
while 0x88 walks down each rank/file/diagonal skipping empty squares.
that is one of the strengths of bitmaps. finding a bit is quick. Clearing it
takes one
cycle. not very expensive.
>
>>When using bitboards and looking for a pattern instance for a _single_ square,
>>think again : You should be looking for pattern instances on _all_ squares
>>simulataneously.
>
>Right, I get the idea :)
>
>-S.
>
>>Puzzled,
>>Steffan
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.