Use a constant instead of value_mate_in(PLY_MAX)
authorMarco Costalba <mcostalba@gmail.com>
Fri, 1 Apr 2011 12:35:39 +0000 (14:35 +0200)
committerMarco Costalba <mcostalba@gmail.com>
Fri, 1 Apr 2011 20:46:45 +0000 (21:46 +0100)
And also apply the same to value_mated_in(PLY_MAX)

No functional change.

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

index 1660fcb151e573b5fe5f9ea6f0360e2be4c3e9c4..a95fa5541c3349979d18a8591491a3b00143cee4 100644 (file)
@@ -920,7 +920,7 @@ namespace {
         && !isCheck
         &&  refinedValue < beta - razor_margin(depth)
         &&  ttMove == MOVE_NONE
-        &&  abs(beta) < value_mate_in(PLY_MAX)
+        &&  abs(beta) < VALUE_MATE_IN_PLY_MAX
         && !pos.has_pawn_on_7th(pos.side_to_move()))
     {
         Value rbeta = beta - razor_margin(depth);
@@ -939,7 +939,7 @@ namespace {
         &&  depth < RazorDepth
         && !isCheck
         &&  refinedValue >= beta + futility_margin(depth, 0)
-        &&  abs(beta) < value_mate_in(PLY_MAX)
+        &&  abs(beta) < VALUE_MATE_IN_PLY_MAX
         &&  pos.non_pawn_material(pos.side_to_move()))
         return refinedValue - futility_margin(depth, 0);
 
@@ -949,7 +949,7 @@ namespace {
         &&  depth > ONE_PLY
         && !isCheck
         &&  refinedValue >= beta
-        &&  abs(beta) < value_mate_in(PLY_MAX)
+        &&  abs(beta) < VALUE_MATE_IN_PLY_MAX
         &&  pos.non_pawn_material(pos.side_to_move()))
     {
         ss->currentMove = MOVE_NULL;
@@ -970,7 +970,7 @@ namespace {
         if (nullValue >= beta)
         {
             // Do not return unproven mate scores
-            if (nullValue >= value_mate_in(PLY_MAX))
+            if (nullValue >= VALUE_MATE_IN_PLY_MAX)
                 nullValue = beta;
 
             if (depth < 6 * ONE_PLY)
@@ -1131,7 +1131,7 @@ split_point_start: // At split points actual search starts from here
           // Move count based pruning
           if (   moveCount >= futility_move_count(depth)
               && !(threatMove && connected_threat(pos, move, threatMove))
-              && bestValue > value_mated_in(PLY_MAX)) // FIXME bestValue is racy
+              && bestValue > VALUE_MATED_IN_PLY_MAX) // FIXME bestValue is racy
           {
               if (SpNode)
                   lock_grab(&(sp->lock));
@@ -1162,7 +1162,7 @@ split_point_start: // At split points actual search starts from here
 
           // Prune moves with negative SEE at low depths
           if (   predictedDepth < 2 * ONE_PLY
-              && bestValue > value_mated_in(PLY_MAX)
+              && bestValue > VALUE_MATED_IN_PLY_MAX
               && pos.see_sign(move) < 0)
           {
               if (SpNode)
@@ -1494,7 +1494,7 @@ split_point_start: // At split points actual search starts from here
 
       // Detect non-capture evasions that are candidate to be pruned
       evasionPrunable =   isCheck
-                       && bestValue > value_mated_in(PLY_MAX)
+                       && bestValue > VALUE_MATED_IN_PLY_MAX
                        && !pos.move_is_capture(move)
                        && !pos.can_castle(pos.side_to_move());
 
@@ -1674,10 +1674,10 @@ split_point_start: // At split points actual search starts from here
 
   Value value_to_tt(Value v, int ply) {
 
-    if (v >= value_mate_in(PLY_MAX))
+    if (v >= VALUE_MATE_IN_PLY_MAX)
       return v + ply;
 
-    if (v <= value_mated_in(PLY_MAX))
+    if (v <= VALUE_MATED_IN_PLY_MAX)
       return v - ply;
 
     return v;
@@ -1689,10 +1689,10 @@ split_point_start: // At split points actual search starts from here
 
   Value value_from_tt(Value v, int ply) {
 
-    if (v >= value_mate_in(PLY_MAX))
+    if (v >= VALUE_MATE_IN_PLY_MAX)
       return v - ply;
 
-    if (v <= value_mated_in(PLY_MAX))
+    if (v <= VALUE_MATED_IN_PLY_MAX)
       return v + ply;
 
     return v;
@@ -1811,8 +1811,8 @@ split_point_start: // At split points actual search starts from here
     Value v = value_from_tt(tte->value(), ply);
 
     return   (   tte->depth() >= depth
-              || v >= Max(value_mate_in(PLY_MAX), beta)
-              || v < Min(value_mated_in(PLY_MAX), beta))
+              || v >= Max(VALUE_MATE_IN_PLY_MAX, beta)
+              || v < Min(VALUE_MATED_IN_PLY_MAX, beta))
 
           && (   ((tte->type() & VALUE_TYPE_LOWER) && v >= beta)
               || ((tte->type() & VALUE_TYPE_UPPER) && v < beta));
index 9d3fb4ca355899bb7bcc100aa28b9ce5872c868c..1b17254a84b70362230c493db08f3a9ab315f106 100644 (file)
@@ -23,8 +23,6 @@
 #include "move.h"
 #include "types.h"
 
-const int PLY_MAX = 100;
-const int PLY_MAX_PLUS_2 = PLY_MAX + 2;
 
 /// The SearchStack struct keeps track of the information we need to remember
 /// from nodes shallower and deeper in the tree during the search.  Each
index 623e51d9856570b713e69431d121378d0f1e2c61..bf0a03f49e9e1d367de21c9e33b7cbd55e90efb2 100644 (file)
@@ -158,6 +158,9 @@ const bool CpuIs64Bit = false;
 typedef uint64_t Key;
 typedef uint64_t Bitboard;
 
+const int PLY_MAX = 100;
+const int PLY_MAX_PLUS_2 = PLY_MAX + 2;
+
 enum ValueType {
   VALUE_TYPE_NONE  = 0,
   VALUE_TYPE_UPPER = 1,
@@ -172,6 +175,10 @@ enum Value {
   VALUE_MATE      = 30000,
   VALUE_INFINITE  = 30001,
   VALUE_NONE      = 30002,
+
+  VALUE_MATE_IN_PLY_MAX  =  VALUE_MATE - PLY_MAX,
+  VALUE_MATED_IN_PLY_MAX = -VALUE_MATE + PLY_MAX,
+
   VALUE_ENSURE_INTEGER_SIZE_P = INT_MAX,
   VALUE_ENSURE_INTEGER_SIZE_N = INT_MIN
 };