else
value = alpha + 1; // Just to trigger next condition
- if (value > alpha) // Go with full depth pv search
+ if (value > alpha) // Go with full depth non-pv search
{
ss[ply].reduction = Depth(0);
value = -search(pos, ss, -alpha, newDepth, ply+1, true, threadID);
continue;
// Value based pruning
- if (depth < 6 * OnePly && approximateEval < beta)
+ if (depth < 7 * OnePly && approximateEval < beta)
{
if (futilityValue == VALUE_NONE)
futilityValue = evaluate(pos, ei, threadID)
- + (depth < 2 * OnePly ? FutilityMargin1
- : FutilityMargin2 + (depth - 2*OnePly) * 32);
+ + (depth < 2 * OnePly ? FutilityMargin1 :
+ + (depth < 6 * OnePly ? FutilityMargin2 + (depth - 2*OnePly) * 32
+ : FutilityMargin2 + (depth - 2*OnePly) * 64));
+
if (futilityValue < beta)
{
if (futilityValue > bestValue)