Depth ThreatDepth; // heavy SMP read access
// Last seconds noise filtering (LSN)
- const bool UseLSNFiltering = true;
+ const bool UseLSNFiltering = false;
const int LSNTime = 4000; // In milliseconds
const Value LSNValue = value_from_centipawns(200);
bool loseOnTime = false;
{
Value v = id_loop(pos, searchMoves);
loseOnTime = ( UseLSNFiltering
- && myTime < LSNTime
- && myIncrement == 0
- && v < -LSNValue);
+ && myTime < LSNTime
+ && myIncrement == 0
+ && v < -LSNValue);
}
else
{
bool useFutilityPruning = depth < SelectiveDepth
&& !isCheck;
+ // Avoid calling evaluate() if we already have the score in TT
+ if (tte && (tte->type() & VALUE_TYPE_EVAL))
+ futilityValue = value_from_tt(tte->value(), ply) + FutilityMargins[int(depth) - 2];
+
// Loop through all legal moves until no moves remain or a beta cutoff
// occurs.
while ( bestValue < beta