Author: Robert Hyatt
Date: 15:47:42 11/17/02
Go up one level in this thread
On November 17, 2002 at 10:53:05, Joel wrote: >Hey All, > >I am a 2nd year Uni student from Australia who has recently gotten into chess >programming. My first attempt was a simple array-based alpha-beta variant which >struggled to search more than 6 levels deep in most positions! I think that >might have something to do with the fact that there was no move ordering, >transposition table, an expensive evaluation function, no killer moves and weak >coding :) > >I have been working on my second attempt for some time now. It uses Bitboards. I >have a few questions regarding move generation. > >It seems to me that the performance of the Bitboard approach relies somewhat >heavily on how fast you can retrieve the position of a 1 bit within a 64-bit >unsigned integer. I looked for sometime on the Internet for some kind of >magical, hacky solution to this dilemna, and the best I could find was this (b & >-b) trick which I used in a debatedly clever way. I was just wondering if there >is any approach significantly better than the one which I will outline below: > >1. (b & -b) to clear all 1 bit's except for one. >2. get this value, mod it by 67 (which has the property that every possible > value returned is unique, thus i can hash to the position of the bit in the > 64 bit integer.) > >I am no expert, but it doesn't seem too ineffecient to me. Any problems? > >Also, if there are any improvements, I would prefer to find out about the ones >which do not involve assembly coding - I do not want to make my program too >dependant on any one CPU architecture at this stage. > >Thanks for your time, >Joel The bit scan instructions in the X86 architecture are the fastest way to find a one bit. BSF/BSR are the instructions...
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.