Skip to content

Commit

Permalink
Use FMHs to assist with LMR formula.
Browse files Browse the repository at this point in the history
STC:
LLR: 2.99 (-2.94,2.94) [0.00,5.00]
Total: 52232 W: 9654 L: 9304 D: 33274

LTC:
LLR: 2.97 (-2.94,2.94) [0.00,5.00]
Total: 115988 W: 15550 L: 15049 D: 85389

Bench: 7890808

Resolves #651
  • Loading branch information
VoyagerOne authored and zamar committed Apr 24, 2016
1 parent 4048bae commit e082112
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion src/search.cpp
Expand Up @@ -1006,14 +1006,19 @@ namespace {
Depth r = reduction<PvNode>(improving, depth, moveCount);
Value hValue = thisThread->history[pos.piece_on(to_sq(move))][to_sq(move)];
Value cmhValue = cmh[pos.piece_on(to_sq(move))][to_sq(move)];

const CounterMoveStats* fm = (ss - 2)->counterMoves;
const CounterMoveStats* fm2 = (ss - 4)->counterMoves;
Value fmValue = (fm ? (*fm)[pos.piece_on(to_sq(move))][to_sq(move)] : VALUE_ZERO);
Value fm2Value = (fm2 ? (*fm2)[pos.piece_on(to_sq(move))][to_sq(move)] : VALUE_ZERO);

// Increase reduction for cut nodes and moves with a bad history
if ( (!PvNode && cutNode)
|| (hValue < VALUE_ZERO && cmhValue <= VALUE_ZERO))
r += ONE_PLY;

// Decrease/increase reduction for moves with a good/bad history
int rHist = (hValue + cmhValue) / 14980;
int rHist = (hValue + cmhValue + fmValue + fm2Value) / 20000;
r = std::max(DEPTH_ZERO, r - rHist * ONE_PLY);

// Decrease reduction for moves that escape a capture. Filter out
Expand Down

0 comments on commit e082112

Please sign in to comment.