Scale eval when down to only one pawn

Passed both short TC
LLR: 2.97 (-2.94,2.94) [-1.50,4.50]
Total: 11921 W: 2346 L: 2208 D: 7367

And long TC
LLR: 2.97 (-2.94,2.94) [0.00,6.00]
Total: 21002 W: 3395 L: 3197 D: 14410

bench: 7602383
This commit is contained in:
shane31
2014-01-01 07:45:20 +11:00
committed by Marco Costalba
parent c9dcda6ac4
commit 153309e287
3 changed files with 19 additions and 8 deletions

View File

@@ -358,9 +358,9 @@ Value do_evaluate(const Position& pos) {
// If we don't already have an unusual scale factor, check for opposite
// colored bishop endgames, and use a lower scale for those.
if ( ei.mi->game_phase() < PHASE_MIDGAME
&& pos.opposite_bishops()
&& sf == SCALE_FACTOR_NORMAL)
if ( ei.mi->game_phase() < PHASE_MIDGAME
&& pos.opposite_bishops()
&& (sf == SCALE_FACTOR_NORMAL || sf == SCALE_FACTOR_ONEPAWN))
{
// Ignoring any pawns, do both sides only have a single bishop and no
// other pieces?
@@ -375,7 +375,7 @@ Value do_evaluate(const Position& pos) {
else
// Endgame with opposite-colored bishops, but also other pieces. Still
// a bit drawish, but not as drawish as with only the two bishops.
sf = ScaleFactor(50);
sf = ScaleFactor(50 * sf / SCALE_FACTOR_NORMAL);
}
Value v = interpolate(score, ei.mi->game_phase(), sf);