#include <array>
#include <cassert>
+#include <cmath>
#include <cstdint>
#include <cstdlib>
#include <limits>
operator const T&() const { return entry; }
void operator<<(int bonus) {
- assert(abs(bonus) <= D); // Ensure range is [-D, D]
+ assert(std::abs(bonus) <= D); // Ensure range is [-D, D]
static_assert(D <= std::numeric_limits<T>::max(), "D overflows T");
- entry += (bonus * D - entry * abs(bonus)) / (D * 5 / 4);
+ entry += bonus - entry * std::abs(bonus) / D;
- assert(abs(entry) <= D);
+ assert(std::abs(entry) <= D);
}
};
const ButterflyHistory*,
const CapturePieceToHistory*,
const PieceToHistory**,
- const PawnHistory*,
- Square);
+ const PawnHistory*);
MovePicker(const Position&, Move, Value, const CapturePieceToHistory*);
Move next_move(bool skipQuiets = false);
Move ttMove;
ExtMove refutations[3], *cur, *endMoves, *endBadCaptures;
int stage;
- Square recaptureSquare;
Value threshold;
Depth depth;
ExtMove moves[MAX_MOVES];