Author: Dieter Buerssner
Date: 15:26:41 08/26/03
Go up one level in this thread
On August 26, 2003 at 18:03:30, Gerd Isenberg wrote: >oups, sorry for my awkwardness. Not at all. I really meant it. Perhaps my smiley was wrong. >May be you consider this method inferior. No. The only drawback, it will not work on platforms, that don't support 64-bit ints. The modulo method will even work on old 16-bit DOS compilers (I use 2 seperate unsigned longs for hash key manipulation by default, same for the few bitboards I use. The multiplication method is of course also possible by explicit coding of the multiplication - but that will be messy). >With modulo all 32-bits of the extracted hashkey have influence on the index. >With multiply some least significant bits in hashkey are not relevant. No idea >what does it mean for a "almost uniformly distribution". It won't have an influence. The indices will be equally well distributed, when you start with slightly decent random values for creating the key. >>One should perhaps check the assembler output, and might need to add a cast to >>convince the compiler to produce good code (so that it sees, that really that >>32*32-bit -> 64-bit multiplication is needed). > >Yes - index directly in edx. Whit Gcc, it produced that shift at the end sometimes (instead of directly using edx). With MSVC, the problem seemed rather to convince it, to not use some internal library call for 64*64-bit multiplication. Regards, Dieter
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.