]> git.sesse.net Git - stockfish/blobdiff - src/ucioption.cpp
Stockfish 1.2
[stockfish] / src / ucioption.cpp
index 1bf5a4be08a6b0e9a153daf0271af7608f9ad2e6..68ab68e26a81189715fb8931cadf90d138123ce7 100644 (file)
@@ -1,13 +1,14 @@
 /*
-  Glaurung, a UCI chess playing engine.
-  Copyright (C) 2004-2008 Tord Romstad
+  Stockfish, a UCI chess playing engine derived from Glaurung 2.1
+  Copyright (C) 2004-2008 Tord Romstad (Glaurung author)
+  Copyright (C) 2008 Marco Costalba
 
-  Glaurung is free software: you can redistribute it and/or modify
+  Stockfish is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.
 
-  Glaurung is distributed in the hope that it will be useful,
+  Stockfish is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.
@@ -72,6 +73,7 @@ namespace {
 
   // load_defaults populates the options vector with the hard
   // coded names and default values.
+
   void load_defaults(Options& o) {
 
     o.push_back(Option("Use Search Log", false));
@@ -83,6 +85,7 @@ namespace {
     o.push_back(Option("Pawn Structure (Endgame)", 100, 0, 200));
     o.push_back(Option("Passed Pawns (Middle Game)", 100, 0, 200));
     o.push_back(Option("Passed Pawns (Endgame)", 100, 0, 200));
+    o.push_back(Option("Space", 100, 0, 200));
     o.push_back(Option("Aggressiveness", 100, 0, 200));
     o.push_back(Option("Cowardice", 100, 0, 200));
     o.push_back(Option("King Safety Curve", "Quadratic", COMBO));
@@ -94,8 +97,7 @@ namespace {
     o.push_back(Option("King Safety X Intercept", 0, 0, 20));
     o.push_back(Option("King Safety Max Slope", 30, 10, 100));
     o.push_back(Option("King Safety Max Value", 500, 100, 1000));
-    o.push_back(Option("Queen Contact Check Bonus", 4, 0, 8));
-    o.push_back(Option("Rook Contact Check Bonus", 2, 0, 4));
+    o.push_back(Option("Queen Contact Check Bonus", 3, 0, 8));
     o.push_back(Option("Queen Check Bonus", 2, 0, 4));
     o.push_back(Option("Rook Check Bonus", 1, 0, 4));
     o.push_back(Option("Bishop Check Bonus", 1, 0, 4));
@@ -118,13 +120,16 @@ namespace {
     o.push_back(Option("Full Depth Moves (non-PV nodes)", 3, 1, 100));
     o.push_back(Option("Threat Depth", 5, 0, 100));
     o.push_back(Option("Selective Plies", 7, 0, 10));
+    o.push_back(Option("Null driven IID", false));
     o.push_back(Option("Futility Pruning (Main Search)", true));
     o.push_back(Option("Futility Pruning (Quiescence Search)", true));
-    o.push_back(Option("Futility Margin 0", 50, 0, 1000));
-    o.push_back(Option("Futility Margin 1", 100, 0, 1000));
-    o.push_back(Option("Futility Margin 2", 300, 0, 1000));
+    o.push_back(Option("Futility Margin (Quiescence Search)", 50, 0, 1000));
+    o.push_back(Option("Futility Margin Scale Factor (Main Search)", 100, 0, 1000));
     o.push_back(Option("Maximum Razoring Depth", 3, 0, 4));
     o.push_back(Option("Razoring Margin", 300, 150, 600));
+    o.push_back(Option("LSN filtering", false));
+    o.push_back(Option("LSN Time Margin (sec)", 4, 1, 10));
+    o.push_back(Option("LSN Value Margin", 200, 100, 600));
     o.push_back(Option("Randomness", 0, 0, 10));
     o.push_back(Option("Minimum Split Depth", 4, 4, 7));
     o.push_back(Option("Maximum Number of Threads per Split Point", 5, 4, 8));
@@ -171,14 +176,16 @@ namespace {
   template<typename T>
   T get_option_value(const std::string& optionName) {
 
-      T ret;
+      T ret = T();
       Options::iterator it = option_with_name(optionName);
 
       if (it != options.end())
       {
           std::istringstream ss(it->currentValue);
           ss >> ret;
-      }
+      } else
+          assert(false);
+
       return ret;
   }