X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fsearch.cpp;h=8b6e1690404bf5317f3dab7bf8fde61c4fc802d7;hp=64e9028b10bd82fd1c7bc2d77e52bb960f17048f;hb=b3525fa9ea88e230a38d72351826cbc16c282938;hpb=85924db496af2fb8d70b6c89b17fc8541339ca19 diff --git a/src/search.cpp b/src/search.cpp index 64e9028b..8b6e1690 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -213,6 +213,7 @@ void Search::clear() { { th->history.clear(); th->counterMoves.clear(); + th->fromTo.clear(); } Threads.main()->previousScore = VALUE_INFINITE; @@ -967,7 +968,8 @@ moves_loop: // When in check search starts from here Value val = thisThread->history[moved_piece][to_sq(move)] + (cmh ? (*cmh )[moved_piece][to_sq(move)] : VALUE_ZERO) + (fmh ? (*fmh )[moved_piece][to_sq(move)] : VALUE_ZERO) - + (fmh2 ? (*fmh2)[moved_piece][to_sq(move)] : VALUE_ZERO); + + (fmh2 ? (*fmh2)[moved_piece][to_sq(move)] : VALUE_ZERO) + + thisThread->fromTo.get(~pos.side_to_move(), move); // Increase reduction for cut nodes if (cutNode) @@ -1395,7 +1397,8 @@ moves_loop: // When in check search starts from here ss->killers[1] = ss->killers[0]; ss->killers[0] = move; } - + + Color c = pos.side_to_move(); Value bonus = Value((depth / ONE_PLY) * (depth / ONE_PLY) + 2 * depth / ONE_PLY - 2); Square prevSq = to_sq((ss-1)->currentMove); @@ -1405,6 +1408,7 @@ moves_loop: // When in check search starts from here Thread* thisThread = pos.this_thread(); thisThread->history.update(pos.moved_piece(move), to_sq(move), bonus); + thisThread->fromTo.update(c, move, bonus); if (cmh) { @@ -1422,6 +1426,7 @@ moves_loop: // When in check search starts from here for (int i = 0; i < quietsCnt; ++i) { thisThread->history.update(pos.moved_piece(quiets[i]), to_sq(quiets[i]), -bonus); + thisThread->fromTo.update(c, quiets[i], -bonus); if (cmh) cmh->update(pos.moved_piece(quiets[i]), to_sq(quiets[i]), -bonus);