diff --git a/src/search.cpp b/src/search.cpp index fa87f1c3f0f..1d1f0735a15 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1454,6 +1454,12 @@ namespace { (ss-1)->currentMove != MOVE_NULL ? evaluate(pos) : -(ss-1)->staticEval; + if (ss->ply >= 3) { + // Discourage "2-fold" repetition at root + Move ply1move = (ss-(ss->ply-1))->currentMove, ply3move = (ss-(ss->ply-3))->currentMove; + bestValue -= (ply3move == make_move(to_sq(ply1move), from_sq(ply1move))); + } + // Stand pat. Return immediately if static value is at least beta if (bestValue >= beta) {