Fix a bug where bestValue could decrease during quiescence search pruning, producing non‑monotonic values observed in practice.
The change mirrors the Stockfish patch (dev-20260106-c27c1747) to avoid bestValue going down in the SEE pruning branch.
Keeping bestValue monotonic prevents inconsistent alpha/beta updates and improves stability of transposition table entries.
Description
Update the SEE pruning branch in Search::Worker::qsearch (src/search.cpp) to use bestValue = std::max(bestValue, std::min(alpha, futilityBase)) instead of assigning std::min(alpha, futilityBase) directly.
This ensures the pruning path if (!pos.see_ge(move, alpha - futilityBase)) cannot lower the current bestValue.
The change is a single-line logic fix and does not alter other qsearch behavior.
Testing
No automated tests were executed as part of this rollout.
No hi ha l’arxiu
Ja és pujant. En breu l’afegeixo al post.
Hello,
Wordfish 3.70 070126 does not work when “MCTS enabled” is selected. That’s a shame. I use “Wordfish 3.70 070126Avx2”.
Kind regards, Karl Kungl