]> git.sesse.net Git - stockfish/blobdiff - src/search.cpp
Tone down a bit futility parameters
[stockfish] / src / search.cpp
index b47e26a1c974f73e627adf73754aa4ccc5c70b90..94eb5af981315ea8587a77d35b909d5130bdcc13 100644 (file)
@@ -177,7 +177,7 @@ namespace {
   const Value FutilityMarginQS = Value(0x80);
 
   // Each move futility margin is decreased
-  const Value IncrementalFutilityMargin = Value(0xA);
+  const Value IncrementalFutilityMargin = Value(0x8);
 
   // Remaining depth:                  1 ply         1.5 ply       2 ply         2.5 ply       3 ply         3.5 ply
   const Value FutilityMargins[12] = { Value(0x100), Value(0x120), Value(0x200), Value(0x220), Value(0x250), Value(0x270),
@@ -1417,10 +1417,25 @@ namespace {
       {
           //std::cout << std::endl;
           //for (int d = 2; d < 14; d++)
-          //    std::cout << d << ", " << 300 + 2*(1 << (3*d/4)) << std::endl;
+          //    std::cout << d << ", " << 64*(1+bitScanReverse32(d*d)) << std::endl;
 
           //std::cout << std::endl;
 /*
+            64*(1+bitScanReverse32(d*d))
+
+            2 -> 256 -  256
+            3 -> 288 -  320
+            4 -> 512 -  384
+            5 -> 544 -  384
+            6 -> 592 -  448
+            7 -> 624 -  448
+            8 -> 672 -  512
+            9 -> 704 -  512
+           10 -> 832 -  512
+           11 -> 864 -  512
+           12 -> 928 -  576
+           13 -> 960 -  576
+
             300 + 2*(1 << (3*d/4))
 
             2 -> 256 -  304
@@ -1458,8 +1473,7 @@ namespace {
           {
               if (futilityValue == VALUE_NONE)
                   futilityValue =  evaluate(pos, ei, threadID)
-                                 + (300 + 2 * (1 << (3 * int(depth) /4)))
-                                 + 4*IncrementalFutilityMargin;
+                                 + 64*(2+bitScanReverse32(int(depth) * int(depth)));
 
               futilityValueScaled = futilityValue - moveCount * IncrementalFutilityMargin;