// Use internal iterative deepening?
const bool UseIIDAtPVNodes = true;
- const bool UseIIDAtNonPVNodes = false;
+ const bool UseIIDAtNonPVNodes = true;
// Internal iterative deepening margin. At Non-PV moves, when
// UseIIDAtNonPVNodes is true, we do an internal iterative deepening
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;
{
Move bookMove;
if (get_option_value_string("Book File") != OpeningBook.file_name())
- OpeningBook.open("book.bin");
+ OpeningBook.open(get_option_value_string("Book File"));
bookMove = OpeningBook.get_move(pos);
if (bookMove != MOVE_NONE)
// Go with internal iterative deepening if we don't have a TT move
if (UseIIDAtNonPVNodes && ttMove == MOVE_NONE && depth >= 8*OnePly &&
- evaluate(pos, ei, threadID) >= beta - IIDMargin)
+ !isCheck && evaluate(pos, ei, threadID) >= beta - IIDMargin)
{
search(pos, ss, beta, Min(depth/2, depth-2*OnePly), ply, false, threadID);
ttMove = ss[ply].pv[ply];
assert(!pos.move_is_check(m));
assert(!pos.move_is_capture_or_promotion(m));
assert(!pos.move_is_passed_pawn_push(m));
- assert(d >= OnePly);
Square mfrom, mto, tfrom, tto;