Code: Select all
if (null_score >= beta && depth > 5)
{
null_score = -search(beta, alpha, depth - 5, TRUE);
if (null_score >= beta)
return beta;
}
else
{
if (null_score >= beta)
return beta;
if (null_score < -INF + 10 * maxdepth)
extensions++;
}
an example from fruit:
Code: Select all
if (value >= beta) {
if (value > +ValueEvalInf) value = +ValueEvalInf; // do not return unproven mates
ASSERT(!value_is_mate(value));
stockfish code looks a bit simpler:
Code: Select all
if (nullValue >= beta)
{
// Do not return unproven mate scores
if (nullValue >= value_mate_in(PLY_MAX))
nullValue = beta;
The other possible problem is that in move ordering the PV is scored highest at INF... I wonder if I need to drop that lower, hash for example is INF - 10000. Thanks.