1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-30 08:43:09 +00:00

Sort again root moves after a fail low

Currently we use original sorting after a fail low to
research at wider window. This patch instead sorts the
moves according to the last available move's scores.

Strangely no functional change, but should be.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba 2010-03-06 11:43:31 +01:00
parent a303bde26c
commit 8d1d9f7181

View file

@ -645,7 +645,6 @@ namespace {
while (Iteration < PLY_MAX) while (Iteration < PLY_MAX)
{ {
// Initialize iteration // Initialize iteration
rml.sort();
Iteration++; Iteration++;
BestMoveChangesByIteration[Iteration] = 0; BestMoveChangesByIteration[Iteration] = 0;
if (Iteration <= 5) if (Iteration <= 5)
@ -666,7 +665,7 @@ namespace {
beta = Min(ValueByIteration[Iteration - 1] + AspirationDelta, VALUE_INFINITE); beta = Min(ValueByIteration[Iteration - 1] + AspirationDelta, VALUE_INFINITE);
} }
// Search to the current depth // Search to the current depth, rml is updated and sorted
value = root_search(p, ss, rml, alpha, beta); value = root_search(p, ss, rml, alpha, beta);
// Write PV to transposition table, in case the relevant entries have // Write PV to transposition table, in case the relevant entries have
@ -733,8 +732,6 @@ namespace {
break; break;
} }
rml.sort();
// If we are pondering or in infinite search, we shouldn't print the // If we are pondering or in infinite search, we shouldn't print the
// best move before we are told to do so. // best move before we are told to do so.
if (!AbortSearch && (PonderSearch || InfiniteSearch)) if (!AbortSearch && (PonderSearch || InfiniteSearch))
@ -808,6 +805,9 @@ namespace {
while (1) // Fail low loop while (1) // Fail low loop
{ {
// Sort the moves before to (re)search
rml.sort();
// Loop through all the moves in the root move list // Loop through all the moves in the root move list
for (int i = 0; i < rml.move_count() && !AbortSearch; i++) for (int i = 0; i < rml.move_count() && !AbortSearch; i++)
{ {
@ -925,7 +925,7 @@ namespace {
break; break;
// Remember beta-cutoff and searched nodes counts for this move. The // Remember beta-cutoff and searched nodes counts for this move. The
// info is used to sort the root moves at the next iteration. // info is used to sort the root moves for the next iteration.
int64_t our, their; int64_t our, their;
TM.get_beta_counters(pos.side_to_move(), our, their); TM.get_beta_counters(pos.side_to_move(), our, their);
rml.set_beta_counters(i, our, their); rml.set_beta_counters(i, our, their);
@ -1002,6 +1002,9 @@ namespace {
} // Fail low loop } // Fail low loop
// Sort the moves before to return
rml.sort();
return alpha; return alpha;
} }