- o["Use Search Log"] = UCIOption(false);
- o["Search Log Filename"] = UCIOption("SearchLog.txt");
- o["Book File"] = UCIOption("book.bin");
- o["Best Book Move"] = UCIOption(false);
- o["Mobility (Middle Game)"] = UCIOption(100, 0, 200);
- o["Mobility (Endgame)"] = UCIOption(100, 0, 200);
- o["Pawn Structure (Middle Game)"] = UCIOption(100, 0, 200);
- o["Pawn Structure (Endgame)"] = UCIOption(100, 0, 200);
- o["Passed Pawns (Middle Game)"] = UCIOption(100, 0, 200);
- o["Passed Pawns (Endgame)"] = UCIOption(100, 0, 200);
- o["Space"] = UCIOption(100, 0, 200);
- o["Aggressiveness"] = UCIOption(100, 0, 200);
- o["Cowardice"] = UCIOption(100, 0, 200);
- o["Minimum Split Depth"] = UCIOption(4, 4, 7);
- o["Maximum Number of Threads per Split Point"] = UCIOption(5, 4, 8);
- o["Threads"] = UCIOption(1, 1, MAX_THREADS);
- o["Use Sleeping Threads"] = UCIOption(true);
- o["Hash"] = UCIOption(32, 4, 8192);
- o["Clear Hash"] = UCIOption(false, "button");
- o["Ponder"] = UCIOption(true);
- o["OwnBook"] = UCIOption(true);
- o["MultiPV"] = UCIOption(1, 1, 500);
- o["Skill level"] = UCIOption(20, 0, 20);
- o["Emergency Move Horizon"] = UCIOption(40, 0, 50);
- o["Emergency Base Time"] = UCIOption(200, 0, 30000);
- o["Emergency Move Time"] = UCIOption(70, 0, 5000);
- o["Minimum Thinking Time"] = UCIOption(20, 0, 5000);
- o["UCI_Chess960"] = UCIOption(false);
- o["UCI_AnalyseMode"] = UCIOption(false);
-
- // Set some SMP parameters accordingly to the detected CPU count
- UCIOption& thr = o["Threads"];
- UCIOption& msd = o["Minimum Split Depth"];
-
- thr.defaultValue = thr.currentValue = stringify(cpu_count());
-
- if (cpu_count() >= 8)
- msd.defaultValue = msd.currentValue = stringify(7);
+ o["Use Debug Log"] = UCIOption(false, on_logger);
+ o["Use Search Log"] = UCIOption(false);
+ o["Search Log Filename"] = UCIOption("SearchLog.txt");
+ o["Book File"] = UCIOption("book.bin");
+ o["Best Book Move"] = UCIOption(false);
+ o["Mobility (Middle Game)"] = UCIOption(100, 0, 200, on_eval);
+ o["Mobility (Endgame)"] = UCIOption(100, 0, 200, on_eval);
+ o["Passed Pawns (Middle Game)"] = UCIOption(100, 0, 200, on_eval);
+ o["Passed Pawns (Endgame)"] = UCIOption(100, 0, 200, on_eval);
+ o["Space"] = UCIOption(100, 0, 200, on_eval);
+ o["Aggressiveness"] = UCIOption(100, 0, 200, on_eval);
+ o["Cowardice"] = UCIOption(100, 0, 200, on_eval);
+ o["Min Split Depth"] = UCIOption(msd, 4, 7, on_threads);
+ o["Max Threads per Split Point"] = UCIOption(5, 4, 8, on_threads);
+ o["Threads"] = UCIOption(cpus, 1, MAX_THREADS, on_threads);
+ o["Use Sleeping Threads"] = UCIOption(true, on_threads);
+ o["Hash"] = UCIOption(32, 4, 8192, on_hash_size);
+ o["Clear Hash"] = UCIOption(on_clear_hash);
+ o["Ponder"] = UCIOption(true);
+ o["OwnBook"] = UCIOption(false);
+ o["MultiPV"] = UCIOption(1, 1, 500);
+ o["Skill Level"] = UCIOption(20, 0, 20);
+ o["Emergency Move Horizon"] = UCIOption(40, 0, 50);
+ o["Emergency Base Time"] = UCIOption(200, 0, 30000);
+ o["Emergency Move Time"] = UCIOption(70, 0, 5000);
+ o["Minimum Thinking Time"] = UCIOption(20, 0, 5000);
+ o["Slow Mover"] = UCIOption(100, 10, 1000);
+ o["UCI_Chess960"] = UCIOption(false);
+ o["UCI_AnalyseMode"] = UCIOption(false, on_eval);