// Razoring and futility margin based on depth
const int razor_margin[4] = { 483, 570, 603, 554 };
- Value futility_margin(Depth d) { return Value(200 * d); }
+ Value futility_margin(Depth d) { return Value(150 * d); }
// Futility and reductions lookup tables, initialized at startup
int FutilityMoveCounts[2][16]; // [improving][depth]
// Step 8. Null move search with verification search (is omitted in PV nodes)
if ( !PvNode
- && depth >= 2 * ONE_PLY
&& eval >= beta
&& (ss->staticEval >= beta - 35 * (depth / ONE_PLY - 6) || depth >= 13 * ONE_PLY)
&& pos.non_pawn_material(pos.side_to_move()))
// Futility pruning: parent node
if ( predictedDepth < 7 * ONE_PLY
- && ss->staticEval + futility_margin(predictedDepth) + 256 <= alpha)
+ && ss->staticEval + 256 + 200 * predictedDepth / ONE_PLY <= alpha)
continue;
// Prune moves with negative SEE at low depths and below a decreasing