normally after probing TT we do something like:
Code: Select all
if (!PvNode & ttEntry.depth >= depth)
{
if ((ttEntry.bounds == Bounds::Exact) ||
(ttEntry.bounds == Bounds::Lower && ttScore >= beta) ||
(ttEntry.bounds == Bounds::Upper && ttScore <= alpha))
{
return ttScore;
}
}
However, when I did something more fancy:
Code: Select all
if (!PvNode & ttEntry.depth >= depth)
{
if (ttEntry.bounds == Bounds::Exact)
{
return ttScore;
}
else if (ttEntry.bounds == Bounds::Upper)
{
if (ttScore <= alpha) return alpha;
if (ttScore < beta) beta = ttScore;
}
else if (ttEntry.bounds == Bounds::Lower)
{
if (ttScore >= beta) return beta;
if (ttScore > alpha) alpha = ttScore;
}
}
Am I missing something, or just found some new way to speedup the search?