From 24417a6cd9577e8574eadc26765e366888cc9b1e Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Wed, 28 Dec 2011 13:22:09 +0100 Subject: [PATCH] Better document how mate scores are stored in TT During the search we score a mate as "plies to mate from the root" to compare in an homogeneous way the values returned by different sub-trees. However we store in TT a mate score as "plies to mate from the current position" the let the TT value remain valid across the game. No functional change. Signed-off-by: Marco Costalba --- src/search.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/search.cpp b/src/search.cpp index c09de0ba..f976908e 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1370,7 +1370,7 @@ split_point_start: // At split points actual search starts from here // All legal moves have been searched. A special case: If we're in check // and no legal moves were found, it is checkmate. if (inCheck && bestValue == -VALUE_INFINITE) - return mated_in(ss->ply); + return mated_in(ss->ply); // Plies to mate from the root // Update transposition table move = bestValue <= oldAlpha ? MOVE_NONE : ss->bestMove; @@ -1495,8 +1495,8 @@ split_point_start: // At split points actual search starts from here // value_to_tt() adjusts a mate score from "plies to mate from the root" to - // "plies to mate from the current ply". Non-mate scores are unchanged. The - // function is called before storing a value to the transposition table. + // "plies to mate from the current position". Non-mate scores are unchanged. + // The function is called before storing a value to the transposition table. Value value_to_tt(Value v, int ply) { @@ -1510,8 +1510,9 @@ split_point_start: // At split points actual search starts from here } - // value_from_tt() is the inverse of value_to_tt(): It adjusts a mate score from - // the transposition table to a mate score corrected for the current ply. + // value_from_tt() is the inverse of value_to_tt(): It adjusts a mate score + // from the transposition table (where refers to the plies to mate/be mated + // from current position) to "plies to mate/be mated from the root". Value value_from_tt(Value v, int ply) { -- 2.39.2