Don’t score and sort all captures in RECAPTURES stage.
authorprotonspring <mike@whiteley.org>
Mon, 5 Feb 2018 16:27:59 +0000 (17:27 +0100)
committerStéphane Nicolet <cassio@free.fr>
Mon, 5 Feb 2018 16:27:59 +0000 (17:27 +0100)
    For these recaptures, we’re are only considering those captures
    that recapture the recapture square (small portion of all the
    captures). Therefore, scoring all of the captures and pick_besting
    out of the whole group is not necessary.

    STC
    LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
    Total: 85583 W: 18978 L: 18983 D: 47622
    http://tests.stockfishchess.org/tests/view/5a717faa0ebc590f2c86e9a7

    LTC
    LLR: 2.96 (-2.94,2.94) [-3.00,1.00]
    Total: 20231 W: 3533 L: 3411 D: 13287
    http://tests.stockfishchess.org/tests/view/5a73ad330ebc5902971a96ba

    Bench: 5023593

src/movepick.cpp

index 9882960..74da320 100644 (file)
@@ -307,14 +307,13 @@ Move MovePicker::next_move(bool skipQuiets) {
   case QSEARCH_RECAPTURES:
       cur = moves;
       endMoves = generate<CAPTURES>(pos, cur);
-      score<CAPTURES>();
       ++stage;
       /* fallthrough */
 
   case QRECAPTURES:
       while (cur < endMoves)
       {
-          move = pick_best(cur++, endMoves);
+          move = *cur++;
           if (to_sq(move) == recaptureSquare)
               return move;
       }