mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 08:43:09 +00:00
PV refutation penalty
Extra penalty for PV move in previous ply when it gets refuted. STC: LLR: 4.49 (-2.94,2.94) [-1.50,4.50] Total: 41094 W: 7889 L: 7620 D: 25585 LTC: LLR: 2.95 (-2.94,2.94) [0.00,6.00] Total: 12304 W: 1967 L: 1811 D: 8526 Bench: 8373608 Resolves #386
This commit is contained in:
parent
4a6d59c6c7
commit
a2410227cc
2 changed files with 7 additions and 3 deletions
|
@ -553,7 +553,7 @@ namespace {
|
||||||
goto moves_loop;
|
goto moves_loop;
|
||||||
}
|
}
|
||||||
|
|
||||||
moveCount = quietCount = 0;
|
moveCount = quietCount = ss->moveCount = 0;
|
||||||
bestValue = -VALUE_INFINITE;
|
bestValue = -VALUE_INFINITE;
|
||||||
ss->ply = (ss-1)->ply + 1;
|
ss->ply = (ss-1)->ply + 1;
|
||||||
|
|
||||||
|
@ -827,6 +827,8 @@ moves_loop: // When in check and at SpNode search starts from here
|
||||||
else
|
else
|
||||||
++moveCount;
|
++moveCount;
|
||||||
|
|
||||||
|
ss->moveCount = moveCount;
|
||||||
|
|
||||||
if (RootNode)
|
if (RootNode)
|
||||||
{
|
{
|
||||||
Signals.firstRootMove = (moveCount == 1);
|
Signals.firstRootMove = (moveCount == 1);
|
||||||
|
@ -934,6 +936,7 @@ moves_loop: // When in check and at SpNode search starts from here
|
||||||
if (!RootNode && !SpNode && !pos.legal(move, ci.pinned))
|
if (!RootNode && !SpNode && !pos.legal(move, ci.pinned))
|
||||||
{
|
{
|
||||||
moveCount--;
|
moveCount--;
|
||||||
|
ss->moveCount = moveCount;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1425,8 +1428,8 @@ moves_loop: // When in check and at SpNode search starts from here
|
||||||
cmh.update(pos.moved_piece(quiets[i]), to_sq(quiets[i]), -bonus);
|
cmh.update(pos.moved_piece(quiets[i]), to_sq(quiets[i]), -bonus);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Extra penalty for TT move in previous ply when it gets refuted
|
// Extra penalty for PV move in previous ply when it gets refuted
|
||||||
if (is_ok((ss-2)->currentMove) && (ss-1)->currentMove == (ss-1)->ttMove && !pos.captured_piece_type())
|
if (is_ok((ss-2)->currentMove) && (ss-1)->moveCount==1 && !pos.captured_piece_type())
|
||||||
{
|
{
|
||||||
Square prevPrevSq = to_sq((ss-2)->currentMove);
|
Square prevPrevSq = to_sq((ss-2)->currentMove);
|
||||||
HistoryStats& ttMoveCmh = CounterMovesHistory[pos.piece_on(prevPrevSq)][prevPrevSq];
|
HistoryStats& ttMoveCmh = CounterMovesHistory[pos.piece_on(prevPrevSq)][prevPrevSq];
|
||||||
|
|
|
@ -47,6 +47,7 @@ struct Stack {
|
||||||
Depth reduction;
|
Depth reduction;
|
||||||
Value staticEval;
|
Value staticEval;
|
||||||
bool skipEarlyPruning;
|
bool skipEarlyPruning;
|
||||||
|
int moveCount;
|
||||||
};
|
};
|
||||||
|
|
||||||
/// RootMove struct is used for moves at the root of the tree. For each root move
|
/// RootMove struct is used for moves at the root of the tree. For each root move
|
||||||
|
|
Loading…
Add table
Reference in a new issue