]> git.sesse.net Git - stockfish/blobdiff - src/search.cpp
Tone down a bit futility parameters
[stockfish] / src / search.cpp
index b5f37cb8a66b0678d4099de5bc11bbffe0425c60..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),
@@ -1416,10 +1416,42 @@ namespace {
           &&  move != ttMove)
       {
           //std::cout << std::endl;
-          //for (int d = 2; d <= 14; d+=2)
-          //    std::cout << d / 2 << ", " << 3+(1 << (3*d/8)) << std::endl;
+          //for (int d = 2; d < 14; d++)
+          //    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
+            3 -> 288 -  308
+            4 -> 512 -  316
+            5 -> 544 -  316
+            6 -> 592 -  332
+            7 -> 624 -  364
+            8 -> 672 -  428
+            9 -> 704 -  428
+           10 -> 832 -  556
+           11 -> 864 -  812
+           12 -> 928 -  1324
+           13 -> 960 -  1324
+
+
             3 + (1 << (3*int(depth)/8))
 
             1 * onePly - > moveCount >= 4
@@ -1441,8 +1473,7 @@ namespace {
           {
               if (futilityValue == VALUE_NONE)
                   futilityValue =  evaluate(pos, ei, threadID)
-                                 + FutilityMargins[int(depth) - 2]
-                                 + 4*IncrementalFutilityMargin;
+                                 + 64*(2+bitScanReverse32(int(depth) * int(depth)));
 
               futilityValueScaled = futilityValue - moveCount * IncrementalFutilityMargin;