Author: Gerd Isenberg
Date: 14:29:57 09/12/03
Go up one level in this thread
On September 12, 2003 at 17:06:15, Omid David Tabibi wrote: >On September 12, 2003 at 17:02:04, Gerd Isenberg wrote: > >>On September 12, 2003 at 16:53:44, Omid David Tabibi wrote: >> >>>On September 12, 2003 at 16:49:09, Gerd Isenberg wrote: >>> >>>>On September 12, 2003 at 16:39:33, Omid David Tabibi wrote: >>>> >>>>>On September 12, 2003 at 16:34:48, Gian-Carlo Pascutto wrote: >>>>> >>>>>>On September 12, 2003 at 16:33:13, Omid David Tabibi wrote: >>>>>> >>>>>>>I still don't understand why modulus is needed, and >>>>>>>I have a pawn hash of 2^17 entries. What is so special >>>>>>>about pawn hash that you need the modulus operation >>>>>>>there while you don't need it in the normal hash table? >>>>>> >>>>>>You don't? >>>>>> >>>>>>I assume you have 32 or 64 bit hash keys. >>>>> >>>>>64 bit. >>>>> >>>>>> >>>>>>How do you map 2^64 -> 2^17 ? >>>>> >>>>>Please, don't tell me that you guys are mapping the hash key as following: >>>>> >>>>>address = key % table_size; >>>> >>>> >>>>Yes, unless you use zobrist keys and power of two table sizes for pawn hashing, >>>>which is probably smarter. Do you have a smarter way of getting a hashkey from >>>>white/black pawn bitboards? >>>> >>>>> >>>>>??? >>>>> >>>>>Do you know how many cycles does the modolus operation take??? >>>>> >>>> >>>>Yes, that's the reason for my initial posting. >>>> >>> >>>assuming 'table_size' is a power of 2, the following two expressions are >>>equivalent: >>> >>>address = key % table_size; >>>address = key & (table_size - 1); >>> >> >> >>Yes, but if "key" is whitePawns-blackPawns, bitboards as 64-bit ints, you may >>loose some pawns. That's the advantage with zobrist keys. I guess a 32-bit key, >>incremental updated if pawn structure changed, is good enough to address the >>pawn hash table. >> > >Well, well... In this case I must quote Vincent: don't waste time with bitboards >:) > >But seriously, I have always used zobrist keys for pawn hash tables. >Incrementally updating the pawn key, the cost is negligible. > Yes, i understand - it makes sense with a 64K or 128K table. The idea is to safe a (recursive) 32-bit int in conjunction with tables not necessarily power of two sized - where you should use the modulus anyway. Gerd
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.