Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: significant math

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.08 seconds to execute

Last modified: Thu, 07 Jul 11 08:48:38 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.