&& tte
&& tte->depth() >= depth
&& ttValue != VALUE_NONE // Only in case of TT access race
- && ( PvNode ? tte->type() == BOUND_EXACT
- : ttValue >= beta ? (tte->type() & BOUND_LOWER)
- : (tte->type() & BOUND_UPPER)))
+ && ( PvNode ? tte->bound() == BOUND_EXACT
+ : ttValue >= beta ? (tte->bound() & BOUND_LOWER)
+ : (tte->bound() & BOUND_UPPER)))
{
TT.refresh(tte);
ss->currentMove = ttMove; // Can be MOVE_NONE
// Can ttValue be used as a better position evaluation?
if (ttValue != VALUE_NONE)
- if ( ((tte->type() & BOUND_LOWER) && ttValue > eval)
- || ((tte->type() & BOUND_UPPER) && ttValue < eval))
+ if ( ((tte->bound() & BOUND_LOWER) && ttValue > eval)
+ || ((tte->bound() & BOUND_UPPER) && ttValue < eval))
eval = ttValue;
}
else
// Update gain for the parent non-capture move given the static position
// evaluation before and after the move.
- if ( (move = (ss-1)->currentMove) != MOVE_NULL
- && (ss-1)->staticEval != VALUE_NONE
+ if ( !pos.captured_piece_type()
&& ss->staticEval != VALUE_NONE
- && !pos.captured_piece_type()
+ && (ss-1)->staticEval != VALUE_NONE
+ && (move = (ss-1)->currentMove) != MOVE_NULL
&& type_of(move) == NORMAL)
{
Square to = to_sq(move);
&& depth >= (PvNode ? 6 * ONE_PLY : 8 * ONE_PLY)
&& ttMove != MOVE_NONE
&& !excludedMove // Recursive singular search is not allowed
- && (tte->type() & BOUND_LOWER)
+ && (tte->bound() & BOUND_LOWER)
&& tte->depth() >= depth - 3 * ONE_PLY;
// Step 11. Loop through moves
if ( tte
&& tte->depth() >= ttDepth
&& ttValue != VALUE_NONE // Only in case of TT access race
- && ( PvNode ? tte->type() == BOUND_EXACT
- : ttValue >= beta ? (tte->type() & BOUND_LOWER)
- : (tte->type() & BOUND_UPPER)))
+ && ( PvNode ? tte->bound() == BOUND_EXACT
+ : ttValue >= beta ? (tte->bound() & BOUND_LOWER)
+ : (tte->bound() & BOUND_UPPER)))
{
ss->currentMove = ttMove; // Can be MOVE_NONE
return ttValue;
void RootMove::extract_pv_from_tt(Position& pos) {
StateInfo state[MAX_PLY_PLUS_2], *st = state;
- TTEntry* tte;
+ const TTEntry* tte;
int ply = 0;
Move m = pv[0];
void RootMove::insert_pv_in_tt(Position& pos) {
StateInfo state[MAX_PLY_PLUS_2], *st = state;
- TTEntry* tte;
+ const TTEntry* tte;
int ply = 0;
do {