1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-30 08:43:09 +00:00

Remove "Last seconds noise" filtering UCI option

This feature makes sense during development, but
It doesn't seem to make sense for normal users.

Also fix a possible race where the GUI adjudicates
the game a fraction of second before the engine sets
looseOnTime flag so that it will bogusly waits until
it ran out of time at the beginning of the next new game.

The fix is to always reset looseOnTime at the beginning
of a new game.

Race condition spotted by Tord.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba 2009-07-13 11:44:33 +01:00
parent 3849beb979
commit ea06200423
2 changed files with 10 additions and 9 deletions

View file

@ -201,6 +201,12 @@ namespace {
// Depth limit for use of dynamic threat detection
Depth ThreatDepth; // heavy SMP read access
// Last seconds noise filtering (LSN)
const bool UseLSNFiltering = true;
const int LSNTime = 4000; // In milliseconds
const Value LSNValue = value_from_centipawns(200);
bool looseOnTime = false;
// Extensions. Array index 0 is used at non-PV nodes, index 1 at PV nodes.
// There is heavy SMP read access on these arrays
Depth CheckExtension[2], SingleReplyExtension[2], PawnPushTo7thExtension[2];
@ -367,7 +373,10 @@ bool think(const Position& pos, bool infinite, bool ponder, int side_to_move,
// Read UCI option values
TT.set_size(get_option_value_int("Hash"));
if (button_was_pressed("Clear Hash"))
{
TT.clear();
looseOnTime = false; // reset at the beginning of a new game
}
bool PonderingEnabled = get_option_value_bool("Ponder");
MultiPV = get_option_value_int("MultiPV");
@ -400,10 +409,6 @@ bool think(const Position& pos, bool infinite, bool ponder, int side_to_move,
if (UseLogFile)
LogFile.open(get_option_value_string("Search Log Filename").c_str(), std::ios::out | std::ios::app);
bool UseLSNFiltering = get_option_value_bool("LSN filtering");
int LSNTime = get_option_value_int("LSN Time Margin (sec)") * 1000;
Value LSNValue = value_from_centipawns(get_option_value_int("LSN Value Margin"));
MinimumSplitDepth = get_option_value_int("Minimum Split Depth") * OnePly;
MaxThreadsPerSplitPoint = get_option_value_int("Maximum Number of Threads per Split Point");
@ -481,8 +486,7 @@ bool think(const Position& pos, bool infinite, bool ponder, int side_to_move,
// We're ready to start thinking. Call the iterative deepening loop function
static bool looseOnTime = false;
//
// FIXME we really need to cleanup all this LSN ugliness
if (!looseOnTime)
{

View file

@ -119,9 +119,6 @@ namespace {
o["Full Depth Moves (PV nodes)"] = Option(14, 1, 100);
o["Full Depth Moves (non-PV nodes)"] = Option(3, 1, 100);
o["Threat Depth"] = Option(5, 0, 100);
o["LSN filtering"] = Option(true);
o["LSN Time Margin (sec)"] = Option(4, 1, 10);
o["LSN Value Margin"] = Option(200, 100, 600);
o["Randomness"] = Option(0, 0, 10);
o["Minimum Split Depth"] = Option(4, 4, 7);
o["Maximum Number of Threads per Split Point"] = Option(5, 4, 8);