From 918c29f83ab8a013d3946916887e1d1d7b9cfb9a Mon Sep 17 00:00:00 2001 From: mstembera Date: Mon, 28 Apr 2014 01:30:06 -0700 Subject: [PATCH] Minor stuff scattered around Just random minor stuff I found while browsing the code. No functional change. --- src/Makefile | 3 +-- src/evaluate.cpp | 22 ++++++---------------- src/movegen.cpp | 2 +- 3 files changed, 8 insertions(+), 19 deletions(-) diff --git a/src/Makefile b/src/Makefile index 1ae8bfac..932a678a 100644 --- a/src/Makefile +++ b/src/Makefile @@ -34,9 +34,8 @@ ifeq ($(UNAME),Haiku) endif BINDIR = $(PREFIX)/bin -### Built-in benchmark for pgo-builds and signature +### Built-in benchmark for pgo-builds PGOBENCH = ./$(EXE) bench 32 1 1 default time -SIGNBENCH = ./$(EXE) bench ### Object files OBJS = benchmark.o bitbase.o bitboard.o book.o endgame.o evaluate.o main.o \ diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 5c66202a..ccc3d915 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -222,20 +222,6 @@ namespace { } - // interpolate() interpolates between a middlegame and an endgame score, - // based on game phase. It also scales the return value by a ScaleFactor array. - - Value interpolate(const Score& v, Phase ph, ScaleFactor sf) { - - assert(-VALUE_INFINITE < mg_value(v) && mg_value(v) < VALUE_INFINITE); - assert(-VALUE_INFINITE < eg_value(v) && eg_value(v) < VALUE_INFINITE); - assert(PHASE_ENDGAME <= ph && ph <= PHASE_MIDGAME); - - int eg = (eg_value(v) * int(sf)) / SCALE_FACTOR_NORMAL; - return Value((mg_value(v) * int(ph) + eg * int(PHASE_MIDGAME - ph)) / PHASE_MIDGAME); - } - - // init_eval_info() initializes king bitboards for given color adding // pawn attacks. To be done at the beginning of the evaluation. @@ -734,7 +720,7 @@ namespace { ei.attackedBy[WHITE][ALL_PIECES] |= ei.attackedBy[WHITE][KING]; ei.attackedBy[BLACK][ALL_PIECES] |= ei.attackedBy[BLACK][KING]; - // Do not include in mobility squares protected by enemy pawns or occupied by our pieces + // Do not include in mobility squares protected by enemy pawns or occupied by our pawns or king Bitboard mobilityArea[] = { ~(ei.attackedBy[BLACK][PAWN] | pos.pieces(WHITE, PAWN, KING)), ~(ei.attackedBy[WHITE][PAWN] | pos.pieces(BLACK, PAWN, KING)) }; @@ -793,7 +779,11 @@ namespace { sf = ScaleFactor(50 * sf / SCALE_FACTOR_NORMAL); } - Value v = interpolate(score, ei.mi->game_phase(), sf); + // Interpolate between a middlegame and an endgame score, scaling by 'sf' + Value v = mg_value(score) * int(ei.mi->game_phase()) + + eg_value(score) * int(sf) / SCALE_FACTOR_NORMAL * int(PHASE_MIDGAME - ei.mi->game_phase()); + + v /= PHASE_MIDGAME; // In case of tracing add all single evaluation contributions for both white and black if (Trace) diff --git a/src/movegen.cpp b/src/movegen.cpp index 829a1abc..dab830ba 100644 --- a/src/movegen.cpp +++ b/src/movegen.cpp @@ -368,7 +368,7 @@ ExtMove* generate(const Position& pos, ExtMove* mlist) { Color us = pos.side_to_move(); Square ksq = pos.king_square(us); Bitboard sliderAttacks = 0; - Bitboard sliders = pos.checkers() & ~pos.pieces(KNIGHT) & ~pos.pieces(PAWN); + Bitboard sliders = pos.checkers() & ~pos.pieces(KNIGHT, PAWN); // Find all the squares attacked by slider checkers. We will remove them from // the king evasions in order to skip known illegal moves, which avoids any -- 2.39.2