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.