]> git.sesse.net Git - stockfish/blobdiff - src/search.cpp
Retire undo_null_move()
[stockfish] / src / search.cpp
index 438a01be6c8ed7defbf765430f0404c3a0f37ca1..25a3984d69331cb8a927e4424c6d0734e8440f29 100644 (file)
@@ -284,7 +284,7 @@ namespace {
     if (   captureOrPromotion
         && type_of(pos.piece_on(move_to(m))) != PAWN
         && (  pos.non_pawn_material(WHITE) + pos.non_pawn_material(BLACK)
-            - piece_value_midgame(pos.piece_on(move_to(m))) == VALUE_ZERO)
+            - PieceValueMidgame[pos.piece_on(move_to(m))] == VALUE_ZERO)
         && !is_special(m))
     {
         result += PawnEndgameExtension[PvNode];
@@ -870,12 +870,12 @@ namespace {
         if (refinedValue - PawnValueMidgame > beta)
             R++;
 
-        pos.do_null_move(st);
+        pos.do_null_move<true>(st);
         (ss+1)->skipNullMove = true;
         nullValue = depth-R*ONE_PLY < ONE_PLY ? -qsearch<NonPV>(pos, ss+1, -beta, -alpha, DEPTH_ZERO)
                                               : - search<NonPV>(pos, ss+1, -beta, -alpha, depth-R*ONE_PLY);
         (ss+1)->skipNullMove = false;
-        pos.undo_null_move();
+        pos.do_null_move<false>(st);
 
         if (nullValue >= beta)
         {
@@ -1399,7 +1399,7 @@ split_point_start: // At split points actual search starts from here
           && !pos.is_passed_pawn_push(move))
       {
           futilityValue =  futilityBase
-                         + piece_value_endgame(pos.piece_on(move_to(move)))
+                         + PieceValueEndgame[pos.piece_on(move_to(move))]
                          + (is_enpassant(move) ? PawnValueEndgame : VALUE_ZERO);
 
           if (futilityValue < beta)
@@ -1532,7 +1532,7 @@ split_point_start: // At split points actual search starts from here
     while (b)
     {
         victimSq = pop_1st_bit(&b);
-        futilityValue = futilityBase + piece_value_endgame(pos.piece_on(victimSq));
+        futilityValue = futilityBase + PieceValueEndgame[pos.piece_on(victimSq)];
 
         // Note that here we generate illegal "double move"!
         if (   futilityValue >= beta
@@ -1656,7 +1656,7 @@ split_point_start: // At split points actual search starts from here
     // Case 2: If the threatened piece has value less than or equal to the
     // value of the threatening piece, don't prune moves which defend it.
     if (   pos.is_capture(threat)
-        && (   piece_value_midgame(pos.piece_on(tfrom)) >= piece_value_midgame(pos.piece_on(tto))
+        && (   PieceValueMidgame[pos.piece_on(tfrom)] >= PieceValueMidgame[pos.piece_on(tto)]
             || type_of(pos.piece_on(tfrom)) == KING)
         && pos.move_attacks_square(m, tto))
         return true;