+ // Decrease reduction at PvNodes if bestvalue
+ // is vastly different from static evaluation
+ if (PvNode && !ss->inCheck && abs(ss->staticEval - bestValue) > 250)
+ r--;
+
+ // Decrease reduction for PvNodes based on depth
+ if (PvNode)
+ r -= 1 + 15 / ( 3 + depth );
+
+ // Increase reduction if next ply has a lot of fail high else reset count to 0
+ if ((ss+1)->cutoffCnt > 3 && !PvNode)
+ r++;
+