- Value raisedBeta = beta + 176 - 49 * improving;
- assert(raisedBeta < VALUE_INFINITE);
- MovePicker mp(pos, ttMove, raisedBeta - ss->staticEval, &captureHistory);
+ // if ttMove is a capture and value from transposition table is good enough produce probCut
+ // cutoff without digging into actual probCut search
+ if ( ttHit
+ && tte->depth() >= depth - 3
+ && ttValue != VALUE_NONE
+ && ttValue >= probCutBeta
+ && ttMove
+ && pos.capture_or_promotion(ttMove))
+ return probCutBeta;
+
+ assert(probCutBeta < VALUE_INFINITE);
+ MovePicker mp(pos, ttMove, probCutBeta - ss->staticEval, &captureHistory);