NodesBetweenPolls = Min(MaxNodes, 30000);
InfiniteSearch = true; // HACK
}
- else if (InfiniteSearch)
- NodesBetweenPolls = 30000;
- else if (myTime < 1000)
+ else if (myTime && myTime < 1000)
NodesBetweenPolls = 1000;
- else if (myTime < 5000)
+ else if (myTime && myTime < 5000)
NodesBetweenPolls = 5000;
else
NodesBetweenPolls = 30000;
EvalInfo ei;
if (ply >= PLY_MAX - 1)
- return evaluate(pos, ei, threadID);
+ return pos.is_check() ? quick_evaluate(pos) : evaluate(pos, ei, threadID);
// Mate distance pruning
Value oldAlpha = alpha;
EvalInfo ei;
if (ply >= PLY_MAX - 1)
- return evaluate(pos, ei, threadID);
+ return pos.is_check() ? quick_evaluate(pos) : evaluate(pos, ei, threadID);
// Mate distance pruning
if (value_mated_in(ply) >= beta)
else
staticValue = evaluate(pos, ei, threadID);
- if (ply == PLY_MAX - 1)
- return evaluate(pos, ei, threadID);
+ if (ply >= PLY_MAX - 1)
+ return pos.is_check() ? quick_evaluate(pos) : evaluate(pos, ei, threadID);
// Initialize "stand pat score", and return it immediately if it is
// at least beta.