Author: GeoffW
Date: 14:59:01 06/04/04
Hi
I was just reading my hash code and thought I could improve the storage scheme.
The Hash Table Insert code was
MYBOOL hashInsert(U64 hashCode, S32 eval, move bestMove, S32 depth, U8 flags)
.
.
/* If the entry is a valid one and a different position with a greater depth
than the current position then dont update the table, just return */
if ((ph->code != hashCode) &&
((ph->flags & VALIDITY_FLAG_MASK) == VALID_FLAG) && (ph->depth > depth))
{
return FALSE;
}
/* else the code stores this entry irregardless of depth */
I decided this was not sensible as if the stored position was the same as
current position (64 bit hash key matches) then the code went on to potentially
replace a high depth entry with a low depth entry
I changed the code to
if (((ph->flags & VALIDITY_FLAG_MASK) == VALID_FLAG) && (ph->depth > depth))
{
return FALSE;
}
this should preserve a higher depth entry for the current position.
However when I went on to test this mod. it was significantly worse then before
?
Can anyone offer some explanation of this or point out my misunderstanding ?
Thanks
Geoff
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.