From: loco-loco Date: Fri, 6 May 2016 03:56:47 +0000 (-0700) Subject: Merge good and bad quiets X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=969982406ce85e38b88d15768ae2d3ee31fe82bb Merge good and bad quiets STC: LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 58613 W: 10779 L: 10723 D: 37111 LTC: LLR: 2.95 (-2.94,2.94) [-3.00,1.00] Total: 33608 W: 4539 L: 4436 D: 24633 Bench: 9441294 --- diff --git a/src/movepick.cpp b/src/movepick.cpp index e248b729..3e907503 100644 --- a/src/movepick.cpp +++ b/src/movepick.cpp @@ -26,7 +26,7 @@ namespace { enum Stages { - MAIN_SEARCH, GOOD_CAPTURES, KILLERS, GOOD_QUIETS, BAD_QUIETS, BAD_CAPTURES, + MAIN_SEARCH, GOOD_CAPTURES, KILLERS, QUIET, BAD_CAPTURES, EVASION, ALL_EVASIONS, QSEARCH_WITH_CHECKS, QCAPTURES_1, CHECKS, QSEARCH_WITHOUT_CHECKS, QCAPTURES_2, @@ -199,17 +199,15 @@ void MovePicker::generate_next_stage() { endMoves = cur + 2 + (countermove != killers[0] && countermove != killers[1]); break; - case GOOD_QUIETS: - endQuiets = endMoves = generate(pos, moves); + case QUIET: + endMoves = generate(pos, moves); score(); - endMoves = std::partition(cur, endMoves, [](const ExtMove& m) { return m.value > VALUE_ZERO; }); - insertion_sort(cur, endMoves); - break; - - case BAD_QUIETS: - cur = endMoves; - endMoves = endQuiets; - if (depth >= 3 * ONE_PLY) + if (depth < 3 * ONE_PLY) + { + ExtMove* goodQuiet = std::partition(cur, endMoves, [](const ExtMove& m) + { return m.value > VALUE_ZERO; }); + insertion_sort(cur, goodQuiet); + } else insertion_sort(cur, endMoves); break; @@ -282,7 +280,7 @@ Move MovePicker::next_move() { return move; break; - case GOOD_QUIETS: case BAD_QUIETS: + case QUIET: move = *cur++; if ( move != ttMove && move != killers[0] diff --git a/src/movepick.h b/src/movepick.h index fc090d29..fffd4708 100644 --- a/src/movepick.h +++ b/src/movepick.h @@ -100,7 +100,7 @@ private: Square recaptureSquare; Value threshold; int stage; - ExtMove *endQuiets, *endBadCaptures = moves + MAX_MOVES - 1; + ExtMove* endBadCaptures = moves + MAX_MOVES - 1; ExtMove moves[MAX_MOVES], *cur = moves, *endMoves = moves; };