else if (Type == QUIETS)
m.value = (*mainHistory)[pos.side_to_move()][from_to(m)]
- + (*staticHistory)[pos.side_to_move()][from_to(m)]
- + 2 * (*continuationHistory[0])[pos.moved_piece(m)][to_sq(m)]
- + 2 * (*continuationHistory[1])[pos.moved_piece(m)][to_sq(m)]
- + 2 * (*continuationHistory[3])[pos.moved_piece(m)][to_sq(m)]
- + (*continuationHistory[5])[pos.moved_piece(m)][to_sq(m)]
+ + 2 * (*continuationHistory[0])[history_slot(pos.moved_piece(m))][to_sq(m)]
+ + 2 * (*continuationHistory[1])[history_slot(pos.moved_piece(m))][to_sq(m)]
+ + 2 * (*continuationHistory[3])[history_slot(pos.moved_piece(m))][to_sq(m)]
+ + (*continuationHistory[5])[history_slot(pos.moved_piece(m))][to_sq(m)]
+ (ply < MAX_LPH ? std::min(4, depth / 3) * (*lowPlyHistory)[ply][from_to(m)] : 0);
else // Type == EVASIONS
constexpr Score WeakUnopposed = S(13, 25);
// Bonus for blocked pawns at 5th or 6th rank
- constexpr Score BlockedPawn[RANK_NB - 5] = { S(-13, -4), S(-5, 2) };
- constexpr Score BlockedPawn[2] = { S(-15, -3), S(-6, 3) };
++ constexpr Score BlockedPawn[RANK_NB - 5] = { S(-15, -3), S(-6, 3) };
constexpr Score BlockedStorm[RANK_NB] = {
- S(0, 0), S(0, 0), S(76, 78), S(-10, 15), S(-7, 10), S(-4, 6), S(-1, 2)
+ S(0, 0), S(0, 0), S(75, 78), S(-8, 16), S(-6, 10), S(-6, 6), S(0, 2)
};
// Connected pawn bonus