void update_quiet_stats(const Position& pos, Stack* ss, Move move, Move* quiets, int quietCount, int bonus);
void update_capture_stats(const Position& pos, Move move, Move* captures, int captureCount, int bonus);
- inline bool gives_check(const Position& pos, Move move) {
- Color us = pos.side_to_move();
- return type_of(move) == NORMAL && !(pos.blockers_for_king(~us) & pos.pieces(us))
- ? pos.check_squares(type_of(pos.moved_piece(move))) & to_sq(move)
- : pos.gives_check(move);
- }
-
// perft() is our utility to verify move generation. All the leaf nodes up
// to the given depth are generated and counted, and the sum is returned.
template<bool Root>
extension = DEPTH_ZERO;
captureOrPromotion = pos.capture_or_promotion(move);
movedPiece = pos.moved_piece(move);
- givesCheck = gives_check(pos, move);
+ givesCheck = pos.gives_check(move);
// Step 13. Extensions (~70 Elo)
if (!pos.see_ge(move, Value(-29 * lmrDepth * lmrDepth)))
continue;
}
- else if ( !extension // (~20 Elo)
- && !pos.see_ge(move, -PawnValueEg * (depth / ONE_PLY)))
+ else if (!pos.see_ge(move, -PawnValueEg * (depth / ONE_PLY))) // (~20 Elo)
continue;
}
{
assert(is_ok(move));
- givesCheck = gives_check(pos, move);
+ givesCheck = pos.gives_check(move);
moveCount++;