tte->save(posKey, VALUE_NONE, ss->ttPv, BOUND_NONE, DEPTH_NONE, MOVE_NONE, eval);
}
+ // Update static history for previous move
+ if (is_ok((ss-1)->currentMove) && !(ss-1)->inCheck && !priorCapture)
+ {
+ int bonus = ss->staticEval > -(ss-1)->staticEval + 2 * Tempo ? -stat_bonus(depth) :
+ ss->staticEval < -(ss-1)->staticEval + 2 * Tempo ? stat_bonus(depth) :
+ 0;
+ thisThread->staticHistory[~us][from_to((ss-1)->currentMove)] << bonus;
+ }
+
// Step 7. Razoring (~1 Elo)
if ( !rootNode // The required rootNode PV handling is not available in qsearch
&& depth == 1
Move countermove = thisThread->counterMoves[pos.piece_on(prevSq)][prevSq];
MovePicker mp(pos, ttMove, depth, &thisThread->mainHistory,
+ &thisThread->staticHistory,
&thisThread->lowPlyHistory,
&captureHistory,
contHist,
// queen and checking knight promotions, and other checks(only if depth >= DEPTH_QS_CHECKS)
// will be generated.
MovePicker mp(pos, ttMove, depth, &thisThread->mainHistory,
+ &thisThread->staticHistory,
&thisThread->captureHistory,
contHist,
to_sq((ss-1)->currentMove));