Implement init_search()
authorJoona Kiiski <joona.kiiski@gmail.com>
Sun, 7 Feb 2010 11:15:39 +0000 (13:15 +0200)
committerMarco Costalba <mcostalba@gmail.com>
Sun, 7 Feb 2010 12:09:03 +0000 (13:09 +0100)
No functional change

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
src/application.cpp
src/search.cpp
src/search.h

index 2e6adcaca6954fe547e053e59ac3510be954c740..3bdd70bb0a9f93155ffcfe18233e7763c89b6cdb 100644 (file)
@@ -49,6 +49,7 @@ Application::Application() {
     Position::init_piece_square_tables();
     init_eval(1);
     init_bitbases();
+    init_search();
     init_threads();
 
     // Make random number generation less deterministic, for book moves
index 4eabb59f385ce597707139544c861008778b0a83..c13431bc9721d418b1eabded12b677df2bb7ba23 100644 (file)
@@ -527,21 +527,13 @@ bool think(const Position& pos, bool infinite, bool ponder, int side_to_move,
 }
 
 
-/// init_threads() is called during startup. It launches all helper threads,
-/// and initializes the split point stack and the global locks and condition
-/// objects.
+/// init_search() is called during startup. It initializes various
+/// lookup tables.
 
-void init_threads() {
-
-  volatile int i;
-  bool ok;
-
-#if !defined(_MSC_VER)
-  pthread_t pthread[1];
-#endif
+void init_search() {
 
   // Init our reduction lookup tables
-  for (i = 1; i < 64; i++) // i == depth
+  for (int i = 1; i < 64; i++) // i == depth (OnePly = 1)
       for (int j = 1; j < 64; j++) // j == moveNumber
       {
           double    pvRed = 0.5 + log(double(i)) * log(double(j)) / 6.0;
@@ -551,15 +543,30 @@ void init_threads() {
       }
 
   // Init futility margins array
-  for (i = 0; i < 14; i++) // i == depth (OnePly = 2)
+  for (int i = 0; i < 14; i++) // i == depth (OnePly = 2)
       for (int j = 0; j < 64; j++) // j == moveNumber
       {
           FutilityMarginsMatrix[i][j] = (i < 2 ? 0 : 112 * bitScanReverse32(i * i / 2)) - 8 * j; // FIXME: test using log instead of BSR
       }
 
   // Init futility move count array
-  for (i = 0; i < 32; i++) // i == depth (OnePly = 2)
+  for (int i = 0; i < 32; i++) // i == depth (OnePly = 2)
       FutilityMoveCountArray[i] = 3 + (1 << (3 * i / 8));
+}
+
+
+/// init_threads() is called during startup. It launches all helper threads,
+/// and initializes the split point stack and the global locks and condition
+/// objects.
+
+void init_threads() {
+
+  volatile int i;
+  bool ok;
+
+#if !defined(_MSC_VER)
+  pthread_t pthread[1];
+#endif
 
   for (i = 0; i < THREAD_MAX; i++)
       Threads[i].activeSplitPoints = 0;
index 7b114bf2126ec4b20639bf8772219c8d2130888b..4a6d3da583dab2f629527248c6dc8b46ec757bf0 100644 (file)
@@ -68,6 +68,7 @@ struct SearchStack {
 //// Prototypes
 ////
 
+extern void init_search();
 extern void init_threads();
 extern void stop_threads();
 extern bool think(const Position &pos, bool infinite, bool ponder, int side_to_move,