1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-05-01 01:03: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. // out of bounds errors.
attackUnits = Min(99, Max(0, attackUnits)); attackUnits = Min(99, Max(0, attackUnits));
// Finally, extract the king danger score from the KingDangerTable[] array. // Finally, extract the king danger score from the KingDangerTable[]
// Subtract the score from evaluation, and set ei.futilityMargin[]. // array and subtract the score from evaluation. Set also ei.kingDanger[]
// The reason for storing the king danger score to futility margin // value that will be used for pruning because this value can sometimes
// is that the king danger scores can sometimes be very big, and that // be very big, and so capturing a single attacking piece can therefore
// capturing a single attacking piece can therefore result in a score // result in a score change far bigger than the value of the captured piece.
// change far bigger than the value of the captured piece.
ei.value -= Sign[Us] * KingDangerTable[Us][attackUnits]; 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 { struct EvalInfo {
EvalInfo() { futilityMargin[0] = futilityMargin[1] = Value(0); } EvalInfo() { kingDanger[0] = kingDanger[1] = Value(0); }
// Middle game and endgame evaluations // Middle game and endgame evaluations
Score value; Score value;
@ -95,9 +95,8 @@ struct EvalInfo {
// Middle game and endgame mobility scores // Middle game and endgame mobility scores
Score mobility; Score mobility;
// Extra futility margin. This is added to the standard futility margin // Value of the danger for the king of the given color
// in the quiescence search. One for each color. Value kingDanger[2];
Value futilityMargin[2];
}; };

View file

@ -1654,7 +1654,7 @@ namespace {
if (bestValue >= beta) if (bestValue >= beta)
{ {
// Store the score to avoid a future costly evaluation() call // 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); TT.store(pos.get_key(), value_to_tt(bestValue, ply), VALUE_TYPE_EV_LO, Depth(-127*OnePly), MOVE_NONE);
return bestValue; return bestValue;
@ -1673,7 +1673,7 @@ namespace {
MovePicker mp = MovePicker(pos, ttMove, deepChecks ? Depth(0) : depth, H); MovePicker mp = MovePicker(pos, ttMove, deepChecks ? Depth(0) : depth, H);
CheckInfo ci(pos); CheckInfo ci(pos);
enoughMaterial = pos.non_pawn_material(pos.side_to_move()) > RookValueMidgame; 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 // Loop through the moves until no moves remain or a beta cutoff occurs
while ( alpha < beta while ( alpha < beta
@ -1753,7 +1753,7 @@ namespace {
{ {
// If bestValue isn't changed it means it is still the static evaluation // 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. // 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); TT.store(pos.get_key(), value_to_tt(bestValue, ply), type, d, MOVE_NONE);
} }
else if (bestValue >= beta) else if (bestValue >= beta)