Retire HistoryMax
authorMarco Costalba <mcostalba@gmail.com>
Sat, 15 Jan 2011 08:30:07 +0000 (09:30 +0100)
committerMarco Costalba <mcostalba@gmail.com>
Sat, 15 Jan 2011 08:30:39 +0000 (09:30 +0100)
Infact we don't use it anymore already.

No functional change.

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

index 6849839ca2305161b24b32e4be106de833126c2f..f10e7619126fe03528fb82347164a0f979dcfcb9 100644 (file)
@@ -57,12 +57,6 @@ void History::success(Piece p, Square to, Depth d) {
   assert(square_is_ok(to));
 
   history[p][to] += int(d) * int(d);
-
-  // Prevent history overflow
-  if (history[p][to] >= HistoryMax)
-      for (int i = 0; i < 16; i++)
-          for (int j = 0; j < 64; j++)
-              history[i][j] /= 2;
 }
 
 
@@ -76,12 +70,6 @@ void History::failure(Piece p, Square to, Depth d) {
   assert(square_is_ok(to));
 
   history[p][to] -= int(d) * int(d);
-
-  // Prevent history underflow
-  if (history[p][to] <= -HistoryMax)
-      for (int i = 0; i < 16; i++)
-          for (int j = 0; j < 64; j++)
-              history[i][j] /= 2;
 }
 
 
index ce87b7e137e03ba002636b5c47741a0df01db168..bbe2aab3fffb8302d81f90afbda1c7eb71786814 100644 (file)
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-
 #if !defined(HISTORY_H_INCLUDED)
 #define HISTORY_H_INCLUDED
 
-////
-//// Includes
-////
-
 #include "depth.h"
 #include "move.h"
 #include "piece.h"
 #include "value.h"
 
 
-////
-//// Types
-////
-
 /// The History class stores statistics about how often different moves
 /// have been successful or unsuccessful during the current search. These
 /// statistics are used for reduction and move ordering decisions. History
@@ -58,27 +49,6 @@ private:
   int maxStaticValueDelta[16][64];  // [piece][from_square][to_square]
 };
 
-
-////
-//// Constants and variables
-////
-
-/// HistoryMax controls how often the history counters will be scaled down:
-/// When the history score for a move gets bigger than HistoryMax, all
-/// entries in the table are divided by 2. It is difficult to guess what
-/// the ideal value of this constant is. Scaling down the scores often has
-/// the effect that parts of the search tree which have been searched
-/// recently have a bigger importance for move ordering than the moves which
-/// have been searched a long time ago.
-/// Current policy is to set this as high as possible, but avoid overflow.
-
-const int HistoryMax = (1 << 28);
-
-
-////
-//// Inline functions
-////
-
 inline int History::value(Piece p, Square to) const {
   return history[p][to];
 }
index 9b274d59ff6be53d8f5948ac85189df4416ccb21..ab79c22f2f5cf560cccf99b17d3b57df8dd1df70 100644 (file)
@@ -247,10 +247,10 @@ void MovePicker::score_evasions() {
   {
       m = cur->move;
       if ((seeScore = pos.see_sign(m)) < 0)
-          cur->score = seeScore - HistoryMax; // Be sure are at the bottom
+          cur->score = seeScore - (1 << 29); // Be sure are at the bottom
       else if (pos.move_is_capture(m))
           cur->score =  pos.midgame_value_of_piece_on(move_to(m))
-                      - pos.type_of_piece_on(move_from(m)) + HistoryMax;
+                      - pos.type_of_piece_on(move_from(m)) + (1 << 29);
       else
           cur->score = H.value(pos.piece_on(move_from(m)), move_to(m));
   }