mirror of
https://github.com/sockspls/badfish
synced 2025-04-29 08:13:08 +00:00
Revert "Pass evalMargin through SearchStack as eval"
Restore full no functional change also in Faked Split mode. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
parent
141caf1d5b
commit
3b7bf34b02
2 changed files with 11 additions and 12 deletions
|
@ -700,7 +700,7 @@ namespace {
|
|||
int64_t nodes;
|
||||
Move move;
|
||||
Depth depth, ext, newDepth;
|
||||
Value value, alpha, beta;
|
||||
Value value, evalMargin, alpha, beta;
|
||||
bool isCheck, moveIsCheck, captureOrPromotion, dangerous;
|
||||
int researchCountFH, researchCountFL;
|
||||
|
||||
|
@ -719,8 +719,7 @@ namespace {
|
|||
|
||||
// Step 5. Evaluate the position statically
|
||||
// At root we do this only to get reference value for child nodes
|
||||
ss->evalMargin = VALUE_NONE;
|
||||
ss->eval = isCheck ? VALUE_NONE : evaluate(pos, ss->evalMargin);
|
||||
ss->eval = isCheck ? VALUE_NONE : evaluate(pos, evalMargin);
|
||||
|
||||
// Step 6. Razoring (omitted at root)
|
||||
// Step 7. Static null move pruning (omitted at root)
|
||||
|
@ -966,7 +965,7 @@ namespace {
|
|||
Key posKey;
|
||||
Move ttMove, move, excludedMove, threatMove;
|
||||
Depth ext, newDepth;
|
||||
Value bestValue, value, oldAlpha;
|
||||
Value bestValue, value, evalMargin, oldAlpha;
|
||||
Value refinedValue, nullValue, futilityBase, futilityValueScaled; // Non-PV specific
|
||||
bool isCheck, singleEvasion, singularExtensionNode, moveIsCheck, captureOrPromotion, dangerous;
|
||||
bool mateThreat = false;
|
||||
|
@ -981,6 +980,7 @@ namespace {
|
|||
{
|
||||
sp = ss->sp;
|
||||
tte = NULL;
|
||||
evalMargin = VALUE_ZERO;
|
||||
ttMove = excludedMove = MOVE_NONE;
|
||||
threatMove = sp->threatMove;
|
||||
mateThreat = sp->mateThreat;
|
||||
|
@ -1041,19 +1041,19 @@ namespace {
|
|||
// Step 5. Evaluate the position statically and
|
||||
// update gain statistics of parent move.
|
||||
if (isCheck)
|
||||
ss->eval = ss->evalMargin = VALUE_NONE;
|
||||
ss->eval = evalMargin = VALUE_NONE;
|
||||
else if (tte)
|
||||
{
|
||||
assert(tte->static_value() != VALUE_NONE);
|
||||
|
||||
ss->eval = tte->static_value();
|
||||
ss->evalMargin = tte->static_value_margin();
|
||||
evalMargin = tte->static_value_margin();
|
||||
refinedValue = refine_eval(tte, ss->eval, ply);
|
||||
}
|
||||
else
|
||||
{
|
||||
refinedValue = ss->eval = evaluate(pos, ss->evalMargin);
|
||||
TT.store(posKey, VALUE_NONE, VALUE_TYPE_NONE, DEPTH_NONE, MOVE_NONE, ss->eval, ss->evalMargin);
|
||||
refinedValue = ss->eval = evaluate(pos, evalMargin);
|
||||
TT.store(posKey, VALUE_NONE, VALUE_TYPE_NONE, DEPTH_NONE, MOVE_NONE, ss->eval, evalMargin);
|
||||
}
|
||||
|
||||
// Save gain for the parent non-capture move
|
||||
|
@ -1179,7 +1179,7 @@ split_point_start: // At split points actual search starts from here
|
|||
CheckInfo ci(pos);
|
||||
ss->bestMove = MOVE_NONE;
|
||||
singleEvasion = !SpNode && isCheck && mp.number_of_evasions() == 1;
|
||||
futilityBase = ss->eval + ss->evalMargin;
|
||||
futilityBase = ss->eval + evalMargin;
|
||||
singularExtensionNode = !SpNode
|
||||
&& depth >= SingularExtensionDepth[PvNode]
|
||||
&& tte
|
||||
|
@ -1421,7 +1421,7 @@ split_point_start: // At split points actual search starts from here
|
|||
|
||||
ValueType vt = (bestValue <= oldAlpha ? VALUE_TYPE_UPPER : bestValue >= beta ? VALUE_TYPE_LOWER : VALUE_TYPE_EXACT);
|
||||
move = (bestValue <= oldAlpha ? MOVE_NONE : ss->bestMove);
|
||||
TT.store(posKey, value_to_tt(bestValue, ply), vt, depth, move, ss->eval, ss->evalMargin);
|
||||
TT.store(posKey, value_to_tt(bestValue, ply), vt, depth, move, ss->eval, evalMargin);
|
||||
|
||||
// Update killers and history only for non capture moves that fails high
|
||||
if ( bestValue >= beta
|
||||
|
@ -2576,7 +2576,7 @@ split_point_start: // At split points actual search starts from here
|
|||
|
||||
// Initialize search stack
|
||||
init_ss_array(ss, PLY_MAX_PLUS_2);
|
||||
ss[0].eval = ss[0].evalMargin = VALUE_NONE;
|
||||
ss[0].eval = VALUE_NONE;
|
||||
count = 0;
|
||||
|
||||
// Generate all legal moves
|
||||
|
|
|
@ -57,7 +57,6 @@ struct SearchStack {
|
|||
Move killers[2];
|
||||
Depth reduction;
|
||||
Value eval;
|
||||
Value evalMargin;
|
||||
bool skipNullMove;
|
||||
SplitPoint* sp;
|
||||
};
|
||||
|
|
Loading…
Add table
Reference in a new issue