Author: Sune Fischer
Date: 01:35:04 06/22/02
Go up one level in this thread
On June 21, 2002 at 17:08:43, Dann Corbit wrote: >On June 21, 2002 at 15:45:11, Dieter Buerssner wrote: > >>On June 21, 2002 at 15:23:40, Robert Hyatt wrote: >> >>>why not replace that long long module with >>> >>>address = (int) (hash_signature) % table_size >> >>I suggested something similar. I am too lazy to check exactly, but it seems that >>the cast to (signed) int will introduce a bug. Preferably would be a cast to >>unsigned, or even better to size_t (In my suggestion I used unsigned long, which >>will work on compilers with 16bit int and an adress space > 16bit, but those are >>outdated. I still have one and use it now and then ...) >> >>BTW. adress might be a bit misleading, because adress IMHO seems to imply a >>pointer, while it actually is a index/offset/whatever you want to call it. > >I tried this: > >Changed type of NHash: >unsigned NHash; > >Changed hash index calculation to this: >unsigned *pHash = (unsigned *) &Hashkey; >unsigned aHash = pHash[0]^pHash[1]; >hashentry = aHash % NHash; > >It's a heck of a lot faster and does not seem to introduce any problems. Could you explain the point of this: >unsigned aHash = pHash[0]^pHash[1]; and why is it faster than what Bob suggested: hashentry = (unsigned int) hkey % table_size -S.
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.