- improving = ss->staticEval >= (ss-2)->staticEval
- ||(ss-2)->staticEval == VALUE_NONE;
-
- if (skipEarlyPruning || !pos.non_pawn_material(pos.side_to_move()))
- goto moves_loop;
-
- // Step 7. Razoring (skipped when in check)
- if ( !PvNode
- && depth <= 2 * ONE_PLY)
- {
- if ( depth == ONE_PLY
- && eval + RazorMargin1 <= alpha)
- return qsearch<NonPV>(pos, ss, alpha, alpha+1);
-
- else if (eval + RazorMargin2 <= alpha)
- {
- Value ralpha = alpha - RazorMargin2;
-
- Value v = qsearch<NonPV>(pos, ss, ralpha, ralpha+1);
+ // Step 7. Razoring (~2 Elo)
+ if ( depth < 2 * ONE_PLY
+ && eval <= alpha - RazorMargin)
+ return qsearch<NT>(pos, ss, alpha, beta);