X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fsearch.cpp;h=97ab5918ae808090ca181aab078e35f15f8399d4;hp=d1b717b47124fece1fc71255ad68f6a4da90f2e7;hb=ade3bb9a4e774aa9b760235f3b0ee42e0a0420d9;hpb=6d58bf777caa32336676a51f45816a9019d88fcb diff --git a/src/search.cpp b/src/search.cpp index d1b717b4..97ab5918 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -549,6 +549,7 @@ namespace { assert(-VALUE_INFINITE <= alpha && alpha < beta && beta <= VALUE_INFINITE); assert(PvNode || (alpha == beta - 1)); assert(DEPTH_ZERO < depth && depth < DEPTH_MAX); + assert(!(PvNode && cutNode)); Move pv[MAX_PLY+1], quietsSearched[64]; StateInfo st; @@ -730,6 +731,7 @@ namespace { if ( !PvNode && depth >= 2 * ONE_PLY && eval >= beta + && (ss->staticEval >= beta || depth >= 12 * ONE_PLY) && pos.non_pawn_material(pos.side_to_move())) { ss->currentMove = MOVE_NULL; @@ -814,7 +816,6 @@ namespace { moves_loop: // When in check search starts from here - Square prevSq = to_sq((ss-1)->currentMove); const CounterMoveStats* cmh = (ss-1)->counterMoves; const CounterMoveStats* fmh = (ss-2)->counterMoves; const CounterMoveStats* fmh2 = (ss-4)->counterMoves; @@ -823,7 +824,7 @@ moves_loop: // When in check search starts from here CheckInfo ci(pos); value = bestValue; // Workaround a bogus 'uninitialized' warning under gcc improving = ss->staticEval >= (ss-2)->staticEval - || ss->staticEval == VALUE_NONE + /* || ss->staticEval == VALUE_NONE Already implicit in the previous condition */ ||(ss-2)->staticEval == VALUE_NONE; singularExtensionNode = !rootNode @@ -963,7 +964,7 @@ moves_loop: // When in check search starts from here + (fmh2 ? (*fmh2)[moved_piece][to_sq(move)] : VALUE_ZERO); // Increase reduction for cut nodes - if (!PvNode && cutNode) + if (cutNode) r += 2 * ONE_PLY; // Decrease reduction for moves that escape a capture. Filter out @@ -1105,10 +1106,10 @@ moves_loop: // When in check search starts from here // Bonus for prior countermove that caused the fail low else if ( depth >= 3 * ONE_PLY && !bestMove - && !inCheck && !pos.captured_piece_type() && is_ok((ss-1)->currentMove)) { + Square prevSq = to_sq((ss-1)->currentMove); Value bonus = Value((depth / ONE_PLY) * (depth / ONE_PLY) + 2 * depth / ONE_PLY - 2); if ((ss-2)->counterMoves) (ss-2)->counterMoves->update(pos.piece_on(prevSq), prevSq, bonus);