Spotted by Alain Savard, Joost VandeVondele, Ronald de Man, Fabian Fichter, Chris Cain, xoto10
No functional change
braich
Brian Sheppard (SapphireBrand)
Bryan Cross (crossbr)
+Bujun Guo (noobpwnftw)
Chris Cain (ceebo)
Dan Schmidt
Daniel Dugovic (ddugovic)
Nathan Rugg (nmrugg)
Nicklas Persson (NicklasPersson)
Niklas Fiekas (niklasf)
-noobpwnftw
Oskar Werkelin Ahlin
Pablo Vazquez
Pascal Romaret
} // w != 0
// Scale down bonus for candidate passers which need more than one
- // pawn push to become passed or have a pawn in front of them.
+ // pawn push to become passed, or have a pawn in front of them.
if ( !pos.pawn_passed(Us, s + Up)
|| (pos.pieces(PAWN) & forward_file_bb(Us, s)))
bonus = bonus / 2;
if (pos.non_pawn_material() < SpaceThreshold)
return SCORE_ZERO;
- // Find the safe squares for our pieces inside the area defined by
- // SpaceMask. A square is unsafe if it is attacked by an enemy
- // pawn, or if it is undefended and attacked by an enemy piece.
+ // Find the available squares for our pieces inside the area defined by SpaceMask
Bitboard safe = SpaceMask
& ~pos.pieces(Us, PAWN)
& ~attackedBy[Them][PAWN];
operator TT() const { return entry; }
void operator<<(int bonus) {
- assert(abs(bonus) <= D); // Ensure range is [-D, D]
- assert(D < std::numeric_limits<T>::max()); // Ensure we don't overflow
+ assert(abs(bonus) <= D); // Ensure range is [-D, D]
+ static_assert(D <= std::numeric_limits<T>::max(), "D overflows T");
entry += bonus - entry * abs(bonus) / D;
// Strength of pawn shelter for our king by [distance from edge][rank].
// RANK_1 = 0 is used for files where we have no pawn, or pawn is behind our king.
- Value ShelterStrength[int(FILE_NB) / 2][RANK_NB] = {
+ constexpr Value ShelterStrength[int(FILE_NB) / 2][RANK_NB] = {
{ V( -9), V(64), V(77), V( 44), V( 4), V( -1), V(-11) },
{ V(-15), V(83), V(51), V(-10), V( 1), V(-10), V(-28) },
{ V(-18), V(84), V(27), V(-12), V(21), V( -7), V(-36) },
const PieceToHistory* contHist[] = { (ss-1)->contHistory, (ss-2)->contHistory, nullptr, (ss-4)->contHistory };
Move countermove = thisThread->counterMoves[pos.piece_on(prevSq)][prevSq];
- MovePicker mp(pos, ttMove, depth, &thisThread->mainHistory, &thisThread->captureHistory, contHist, countermove, ss->killers);
+ MovePicker mp(pos, ttMove, depth, &thisThread->mainHistory,
+ &thisThread->captureHistory,
+ contHist,
+ countermove,
+ ss->killers);
value = bestValue; // Workaround a bogus 'uninitialized' warning under gcc
skipQuiets = false;
// to search the moves. Because the depth is <= 0 here, only captures,
// queen promotions and checks (only if depth >= DEPTH_QS_CHECKS) will
// be generated.
- MovePicker mp(pos, ttMove, depth, &pos.this_thread()->mainHistory, &pos.this_thread()->captureHistory, to_sq((ss-1)->currentMove));
+ MovePicker mp(pos, ttMove, depth, &pos.this_thread()->mainHistory,
+ &pos.this_thread()->captureHistory,
+ to_sq((ss-1)->currentMove));
// Loop through the moves until no moves remain or a beta cutoff occurs
while ((move = mp.next_move()) != MOVE_NONE)
}
/// ThreadPool::set() creates/destroys threads to match the requested number.
-/// Created and launced threads wil go immediately to sleep in idle_loop.
+/// Created and launched threads wil go immediately to sleep in idle_loop.
/// Upon resizing, threads are recreated to allow for binding if necessary.
void ThreadPool::set(size_t requested) {