1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-29 16:23:09 +00:00

Rename futilityMargin in kingDanger in EvalInfo

This is what actually is.

A standard naming convention suggests to name a variable
with someting resembling _what_ the variable is and not
_how_ the variable is used. This normally results
in easier to read code.

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba 2010-05-06 14:22:53 +02:00
parent b14846b6d7
commit b95b1a9705
3 changed files with 12 additions and 14 deletions

View file

@ -837,14 +837,13 @@ namespace {
// out of bounds errors.
attackUnits = Min(99, Max(0, attackUnits));
// Finally, extract the king danger score from the KingDangerTable[] array.
// Subtract the score from evaluation, and set ei.futilityMargin[].
// The reason for storing the king danger score to futility margin
// is that the king danger scores can sometimes be very big, and that
// capturing a single attacking piece can therefore result in a score
// change far bigger than the value of the captured piece.
// Finally, extract the king danger score from the KingDangerTable[]
// array and subtract the score from evaluation. Set also ei.kingDanger[]
// value that will be used for pruning because this value can sometimes
// be very big, and so capturing a single attacking piece can therefore
// result in a score change far bigger than the value of the captured piece.
ei.value -= Sign[Us] * KingDangerTable[Us][attackUnits];
ei.futilityMargin[Us] = mg_value(KingDangerTable[Us][attackUnits]);
ei.kingDanger[Us] = mg_value(KingDangerTable[Us][attackUnits]);
}
}

View file

@ -47,7 +47,7 @@ class Position;
struct EvalInfo {
EvalInfo() { futilityMargin[0] = futilityMargin[1] = Value(0); }
EvalInfo() { kingDanger[0] = kingDanger[1] = Value(0); }
// Middle game and endgame evaluations
Score value;
@ -95,9 +95,8 @@ struct EvalInfo {
// Middle game and endgame mobility scores
Score mobility;
// Extra futility margin. This is added to the standard futility margin
// in the quiescence search. One for each color.
Value futilityMargin[2];
// Value of the danger for the king of the given color
Value kingDanger[2];
};

View file

@ -1654,7 +1654,7 @@ namespace {
if (bestValue >= beta)
{
// Store the score to avoid a future costly evaluation() call
if (!isCheck && !tte && ei.futilityMargin[pos.side_to_move()] == 0)
if (!isCheck && !tte && ei.kingDanger[pos.side_to_move()] == 0)
TT.store(pos.get_key(), value_to_tt(bestValue, ply), VALUE_TYPE_EV_LO, Depth(-127*OnePly), MOVE_NONE);
return bestValue;
@ -1673,7 +1673,7 @@ namespace {
MovePicker mp = MovePicker(pos, ttMove, deepChecks ? Depth(0) : depth, H);
CheckInfo ci(pos);
enoughMaterial = pos.non_pawn_material(pos.side_to_move()) > RookValueMidgame;
futilityBase = staticValue + FutilityMarginQS + ei.futilityMargin[pos.side_to_move()];
futilityBase = staticValue + FutilityMarginQS + ei.kingDanger[pos.side_to_move()];
// Loop through the moves until no moves remain or a beta cutoff occurs
while ( alpha < beta
@ -1753,7 +1753,7 @@ namespace {
{
// If bestValue isn't changed it means it is still the static evaluation
// of the node, so keep this info to avoid a future evaluation() call.
ValueType type = (bestValue == staticValue && !ei.futilityMargin[pos.side_to_move()] ? VALUE_TYPE_EV_UP : VALUE_TYPE_UPPER);
ValueType type = (bestValue == staticValue && !ei.kingDanger[pos.side_to_move()] ? VALUE_TYPE_EV_UP : VALUE_TYPE_UPPER);
TT.store(pos.get_key(), value_to_tt(bestValue, ply), type, d, MOVE_NONE);
}
else if (bestValue >= beta)