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:
parent
b4a04d8038
commit
b58ecb85c7
2 changed files with 22 additions and 30 deletions
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Reference in a new issue