]> git.sesse.net Git - stockfish/blobdiff - src/search.cpp
Better self-document LMR reduction() formula
[stockfish] / src / search.cpp
index 80aa55cb34b8ec3c87ecd7ba079d5a54e8f0e8e3..6a42cc50b05a233bb181ac884bcefaec6268a062 100644 (file)
@@ -216,7 +216,7 @@ namespace {
   int8_t ReductionMatrix[2][64][64]; // [pv][depth][moveNumber]
 
   template <NodeType PV>
-  inline Depth reduction(Depth d, int mn) { return (Depth) ReductionMatrix[PV][Min(d / 2, 63)][Min(mn, 63)]; }
+  inline Depth reduction(Depth d, int mn) { return (Depth) ReductionMatrix[PV][Min(d / ONE_PLY, 63)][Min(mn, 63)]; }
 
   // Easy move margin. An easy move candidate must be at least this much
   // better than the second best move.
@@ -1933,11 +1933,8 @@ split_point_start: // At split points actual search starts from here
     {
         lastInfoTime = t;
 
-        if (dbg_show_mean)
-            dbg_print_mean();
-
-        if (dbg_show_hit_rate)
-            dbg_print_hit_rate();
+        dbg_print_mean();
+        dbg_print_hit_rate();
 
         // Send info on searched nodes as soon as we return to root
         SendSearchedNodes = true;
@@ -2442,13 +2439,13 @@ split_point_start: // At split points actual search starts from here
     TTEntry* tte;
     int ply = 1;
 
-    assert(pv[0] != MOVE_NONE && move_is_legal(pos, pv[0]));
+    assert(pv[0] != MOVE_NONE && pos.move_is_legal(pv[0]));
 
     pos.do_move(pv[0], *st++);
 
     while (   (tte = TT.retrieve(pos.get_key())) != NULL
            && tte->move() != MOVE_NONE
-           && move_is_legal(pos, tte->move())
+           && pos.move_is_legal(tte->move())
            && ply < PLY_MAX
            && (!pos.is_draw() || ply < 2))
     {
@@ -2472,7 +2469,7 @@ split_point_start: // At split points actual search starts from here
     Value v, m = VALUE_NONE;
     int ply = 0;
 
-    assert(pv[0] != MOVE_NONE && move_is_legal(pos, pv[0]));
+    assert(pv[0] != MOVE_NONE && pos.move_is_legal(pv[0]));
 
     do {
         k = pos.get_key();