#include <algorithm>
#include <cassert>
+#include <cmath>
#include <cstdlib>
#include <fstream>
#include <iomanip>
std::string msg1 =
"Network evaluation parameters compatible with the engine must be available.";
std::string msg2 = "The network file " + eval_file + " was not loaded successfully.";
- std::string msg3 =
- "The UCI option EvalFile might need to specify the full path, including the directory name, to the network file.";
- std::string msg4 =
- "The default net can be downloaded from: https://tests.stockfishchess.org/api/nn/"
- + std::string(EvalFileDefaultName);
+ std::string msg3 = "The UCI option EvalFile might need to specify the full path, "
+ "including the directory name, to the network file.";
+ std::string msg4 = "The default net can be downloaded from: "
+ "https://tests.stockfishchess.org/api/nn/"
+ + std::string(EvalFileDefaultName);
std::string msg5 = "The engine will be terminated now.";
sync_cout << "info string ERROR: " << msg1 << sync_endl;
}
-// 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;