1. Standard adjustments for ply.
Code: Select all
Reading from TT:
if ( score > MATESCORE - MAXPLIES )
score -= ply;
else if ( score < -MATESCORE + MAXPLIES )
score += ply;
Saving in TT:
if ( score > MATESCORE - MAXPLIES )
score += ply;
else if ( score < -MATESCORE + MAXPLIES )
score -= ply;
... save score and scoreType in TT...
http://web.archive.org/web/200404270147 ... tehash.htm
Code: Select all
Reading from TT:
No adjustment.
Saving in TT:
if ( score > MATESCORE - MAXPLIES )
{
if ( scoreType == UPPERBOUND ) return; // don't save
score = MATESCORE - MAXPLIES;
scoreType = LOWERBOUND;
}
else if ( score < -MATESCORE + MAXPLIES )
{
if ( scoreType == LOWERBOUND ) return; // don't save
score = -MATESCORE + MAXPLIES;
scoreType = UPPERBOUND;
}
... save score and scoreType in TT...
It seems implausible that option #2 is "really" better, because in that case everyone would be using it.
More likely I have a bug (perhaps relating to scoreType for mate scores) that is rendered harmless by option #2. I am however, unable to see such a bug and would welcome ideas/suggestions how to proceed.
Robert P.