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

Retire UseQSearchFutilityPruning and UseFutilityPruning

They are always true anyway and are heavy used file scope
variables where there could be SMP contention. Although read only.

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba 2009-06-03 10:00:05 +02:00
parent b4a04d8038
commit b58ecb85c7
2 changed files with 22 additions and 30 deletions

View file

@ -128,14 +128,7 @@ namespace {
};
/// Constants and variables initialized from UCI options
// Minimum number of full depth (i.e. non-reduced) moves at PV and non-PV
// nodes
int LMRPVMoves, LMRNonPVMoves;
// Depth limit for use of dynamic threat detection
Depth ThreatDepth;
/// Constants
// Depth limit for selective search
const Depth SelectiveDepth = 7*OnePly;
@ -174,9 +167,6 @@ namespace {
const bool PruneDefendingMoves = false;
const bool PruneBlockingMoves = false;
// Use futility pruning?
bool UseQSearchFutilityPruning, UseFutilityPruning;
// Margins for futility pruning in the quiescence search, and at frontier
// and near frontier nodes
const Value FutilityMarginQS = Value(0x80);
@ -194,6 +184,16 @@ namespace {
// Remaining depth: 1 ply 1.5 ply 2 ply 2.5 ply 3 ply 3.5 ply
const Value RazorApprMargins[6] = { Value(0x520), Value(0x300), Value(0x300), Value(0x300), Value(0x300), Value(0x300) };
/// Variables initialized from UCI options
// Minimum number of full depth (i.e. non-reduced) moves at PV and non-PV
// nodes
int LMRPVMoves, LMRNonPVMoves;
// Depth limit for use of dynamic threat detection
Depth ThreatDepth;
// Last seconds noise filtering (LSN)
bool UseLSNFiltering;
bool looseOnTime = false;
@ -207,15 +207,15 @@ namespace {
// Search depth at iteration 1
const Depth InitialDepth = OnePly /*+ OnePly/2*/;
// Node counters
// Node counters, used only by thread[0]
int NodesSincePoll;
int NodesBetweenPolls = 30000;
// Iteration counters
int Iteration;
BetaCounterType BetaCounter;
BetaCounterType BetaCounter; // does not have internal data
// Scores and number of times the best move changed for each iteration:
// Scores and number of times the best move changed for each iteration
IterationInfoType IterationInfo[PLY_MAX_PLUS_2];
int BestMoveChangesByIteration[PLY_MAX_PLUS_2];
@ -432,9 +432,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);
UseQSearchFutilityPruning = get_option_value_bool("Futility Pruning (Quiescence Search)");
UseFutilityPruning = get_option_value_bool("Futility Pruning (Main Search)");
UseLSNFiltering = get_option_value_bool("LSN filtering");
LSNTime = get_option_value_int("LSN Time Margin (sec)") * 1000;
LSNValue = value_from_centipawns(get_option_value_int("LSN Value Margin"));
@ -1324,8 +1321,7 @@ namespace {
Value value, bestValue = -VALUE_INFINITE;
Bitboard dcCandidates = mp.discovered_check_candidates();
Value futilityValue = VALUE_NONE;
bool useFutilityPruning = UseFutilityPruning
&& depth < SelectiveDepth
bool useFutilityPruning = depth < SelectiveDepth
&& !isCheck;
// Loop through all legal moves until no moves remain or a beta cutoff
@ -1556,8 +1552,7 @@ namespace {
ss[ply].currentMove = move;
// Futility pruning
if ( UseQSearchFutilityPruning
&& enoughMaterial
if ( enoughMaterial
&& !isCheck
&& !pvNode
&& !move_promotion(move)
@ -1651,8 +1646,7 @@ namespace {
Value value;
Move move;
bool isCheck = pos.is_check();
bool useFutilityPruning = UseFutilityPruning
&& sp->depth < SelectiveDepth
bool useFutilityPruning = sp->depth < SelectiveDepth
&& !isCheck;
while ( sp->bestValue < sp->beta

View file

@ -119,8 +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["Futility Pruning (Main Search)"] = Option(true);
o["Futility Pruning (Quiescence Search)"] = Option(true);
o["LSN filtering"] = Option(true);
o["LSN Time Margin (sec)"] = Option(4, 1, 10);
o["LSN Value Margin"] = Option(200, 100, 600);