diff options
Diffstat (limited to 'src/searchsup.c')
| -rw-r--r-- | src/searchsup.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/searchsup.c b/src/searchsup.c index c7ac842..8d15e57 100644 --- a/src/searchsup.c +++ b/src/searchsup.c @@ -252,6 +252,21 @@ ComputeMoveScore(IN SEARCHER_THREAD_CONTEXT *ctx, { ASSERT(iMoveScore > 0); iMoveScore &= STRIP_OFF_FLAGS; + + // _ScoreAllMoves (generate.c) bakes a flat +120 move-ordering + // bias plus small MVV-LVA tie-break nudges + // (PIECE_VALUE_OVER_100 terms) on top of the real SEE/ + // material-diff value for winning/even captures and + // promotions -- harmless for sorting (every capture gets + // the same treatment), but this function's callers use the + // result as an eval-axis quantity (compared against + // material-scale margins in futility/extension code), so + // back the ordering-only bias back out to recover the pure + // SEE/material-diff value, same axis as the raw + // PIECE_VALUE() fallback below. + iMoveScore -= (PIECE_VALUE_OVER_100(mv.pCaptured) + 120 + + PIECE_VALUE_OVER_100(mv.pPromoted) - + PIECE_VALUE_OVER_100(mv.pMoved)); } else { @@ -439,7 +454,7 @@ Return value: // Singular response to check... if ((mv.pCaptured) && - (iRoughEval + 225 < iAlpha) && + (iRoughEval + 400 < iAlpha) && (iMoveScore + 75 > iAlpha)) { *piExtend += ONE_PLY; |
