#include <algorithm>
#include <cassert>
+#include <cmath>
#include <cstdlib>
#include <fstream>
#include <iomanip>
}
-// Returns a static, purely materialistic evaluation of the position
-// from the point of view of the given color. It can be divided by PawnValue to get
+// Returns a static, purely materialistic evaluation of the position from
+// the point of view of the given color. It can be divided by PawnValue to get
// an approximation of the material advantage on the board in terms of pawns.
Value Eval::simple_eval(const Position& pos, Color c) {
return PawnValue * (pos.count<PAWN>(c) - pos.count<PAWN>(~c))
int shuffling = pos.rule50_count();
int simpleEval = simple_eval(pos, stm) + (int(pos.key() & 7) - 3);
- bool lazy = abs(simpleEval) >= RookValue + KnightValue + 16 * shuffling * shuffling
- + abs(pos.this_thread()->bestValue)
- + abs(pos.this_thread()->rootSimpleEval);
+ bool lazy = std::abs(simpleEval) >= RookValue + KnightValue + 16 * shuffling * shuffling
+ + std::abs(pos.this_thread()->bestValue)
+ + std::abs(pos.this_thread()->rootSimpleEval);
if (lazy)
v = Value(simpleEval);
Value optimism = pos.this_thread()->optimism[stm];
// Blend optimism and eval with nnue complexity and material imbalance
- optimism += optimism * (nnueComplexity + abs(simpleEval - nnue)) / 512;
- nnue -= nnue * (nnueComplexity + abs(simpleEval - nnue)) / 32768;
+ optimism += optimism * (nnueComplexity + std::abs(simpleEval - nnue)) / 512;
+ nnue -= nnue * (nnueComplexity + std::abs(simpleEval - nnue)) / 32768;
int npm = pos.non_pawn_material() / 64;
v = (nnue * (915 + npm + 9 * pos.count<PAWN>()) + optimism * (154 + npm)) / 1024;