/// setup_bench() builds a list of UCI commands to be run by bench. There
/// are five parameters: TT size in MB, number of search threads that
/// should be used, the limit value spent for each position, a file name
-/// where to look for positions in FEN format, the type of the limit:
-/// depth, perft, nodes and movetime (in millisecs), and evaluation type
-/// mixed (default), classical, NNUE.
+/// where to look for positions in FEN format, and the type of the limit:
+/// depth, perft, nodes and movetime (in milliseconds). Examples:
///
-/// bench -> search default positions up to depth 13
-/// bench 64 1 15 -> search default positions up to depth 15 (TT = 64MB)
-/// bench 64 4 5000 current movetime -> search current position with 4 threads for 5 sec
-/// bench 64 1 100000 default nodes -> search default positions for 100K nodes each
-/// bench 16 1 5 default perft -> run a perft 5 on default positions
+/// bench : search default positions up to depth 13
+/// bench 64 1 15 : search default positions up to depth 15 (TT = 64MB)
+/// bench 64 1 100000 default nodes : search default positions for 100K nodes each
+/// bench 64 4 5000 current movetime : search current position with 4 threads for 5 sec
+/// bench 16 1 5 blah perft : run a perft 5 on positions in file "blah"
vector<string> setup_bench(const Position& current, istream& is) {
} // namespace Detail
+
// Initialize the evaluation function parameters
static void initialize() {
// We manually align the arrays on the stack because with gcc < 9.3
// overaligning stack variables with alignas() doesn't work correctly.
-
constexpr uint64_t alignment = CacheLineSize;
#if defined(ALIGNAS_ON_STACK_VARIABLES_BROKEN)
}
- // format_cp_aligned_dot() converts a Value into pawns, always keeping two decimals.
+ // format_cp_aligned_dot() converts a Value into pawns, always keeping two decimals
static void format_cp_aligned_dot(Value v, std::stringstream &stream) {
+
const double pawns = std::abs(0.01 * UCI::to_cp(v));
stream << (v < 0 ? '-' : v > 0 ? '+' : ' ')
// trace() returns a string with the value of each piece on a board,
// and a table for (PSQT, Layers) values bucket by bucket.
-
std::string trace(Position& pos) {
std::stringstream ss;
}
// Set up the improving flag, which is true if current static evaluation is
- // bigger than the previous static evaluation at our turn (if we were in
- // check at our previous move we look at static evaluaion at move prior to it
+ // bigger than the previous static evaluation at our turn (if we were in
+ // check at our previous move we look at static evaluation at move prior to it
// and if we were in check at move prior to it flag is set to true) and is
// false otherwise. The improving flag is used in various pruning heuristics.
improving = (ss-2)->staticEval != VALUE_NONE ? ss->staticEval > (ss-2)->staticEval