Skip to content

Commit

Permalink
First check threshold in space evaluation
Browse files Browse the repository at this point in the history
Currently, we first calculate some bitboards at the top of Evaluation::space()
and then check whether we actually need them. Invert the ordering. Of course this
does not make a difference in current master because the constexpr bitboard
calculations are in fact done at compile time by any decent compiler, but I find
my version a bit healthier since it will always meet or exceed current implementation
even if we eventually change the spaceMask to something not contsexpr.

No functional change.
  • Loading branch information
Stefano80 authored and snicolet committed Aug 8, 2018
1 parent c569cf2 commit bd4d2b0
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions src/evaluate.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -718,14 +718,14 @@ namespace {
template<Tracing T> template<Color Us>
Score Evaluation<T>::space() const {

if (pos.non_pawn_material() < SpaceThreshold)
return SCORE_ZERO;

constexpr Color Them = (Us == WHITE ? BLACK : WHITE);
constexpr Bitboard SpaceMask =
Us == WHITE ? CenterFiles & (Rank2BB | Rank3BB | Rank4BB)
: CenterFiles & (Rank7BB | Rank6BB | Rank5BB);

if (pos.non_pawn_material() < SpaceThreshold)
return SCORE_ZERO;

// Find the available squares for our pieces inside the area defined by SpaceMask
Bitboard safe = SpaceMask
& ~pos.pieces(Us, PAWN)
Expand Down

0 comments on commit bd4d2b0

Please sign in to comment.