mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 16:53:09 +00:00
Expose new futility margin interface to UCI
Now futility margin it's actually a scale factor to apply to the base ones. No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
parent
e46d3670fd
commit
96a32eec69
2 changed files with 12 additions and 14 deletions
|
@ -162,13 +162,11 @@ namespace {
|
||||||
bool UseQSearchFutilityPruning = true;
|
bool UseQSearchFutilityPruning = true;
|
||||||
bool UseFutilityPruning = true;
|
bool UseFutilityPruning = true;
|
||||||
|
|
||||||
// Margins for futility pruning in the quiescence search, at frontier
|
// Margins for futility pruning in the quiescence search, and at frontier
|
||||||
// nodes, and at pre-frontier nodes
|
// and near frontier nodes
|
||||||
Value FutilityMargin0 = Value(0x80);
|
Value FutilityMarginQS = Value(0x80);
|
||||||
Value FutilityMargin1 = Value(0x100);
|
Value FutilityMargins[6] = { Value(0x120), Value(0x220), Value(0x250),
|
||||||
Value FutilityMargin2 = Value(0x200);
|
Value(0x280), Value(0x320), Value(0x360) };
|
||||||
const Value FutilityMargins[6] = { Value(0x120), Value(0x220), Value(0x250),
|
|
||||||
Value(0x280), Value(0x320), Value(0x360) };
|
|
||||||
|
|
||||||
// Razoring
|
// Razoring
|
||||||
Depth RazorDepth = 4*OnePly;
|
Depth RazorDepth = 4*OnePly;
|
||||||
|
@ -417,9 +415,10 @@ void think(const Position &pos, bool infinite, bool ponder, int side_to_move,
|
||||||
UseQSearchFutilityPruning = get_option_value_bool("Futility Pruning (Quiescence Search)");
|
UseQSearchFutilityPruning = get_option_value_bool("Futility Pruning (Quiescence Search)");
|
||||||
UseFutilityPruning = get_option_value_bool("Futility Pruning (Main Search)");
|
UseFutilityPruning = get_option_value_bool("Futility Pruning (Main Search)");
|
||||||
|
|
||||||
FutilityMargin0 = value_from_centipawns(get_option_value_int("Futility Margin 0"));
|
FutilityMarginQS = value_from_centipawns(get_option_value_int("Futility Margin (Quiescence Search)"));
|
||||||
FutilityMargin1 = value_from_centipawns(get_option_value_int("Futility Margin 1"));
|
int fmScale = get_option_value_int("Futility Margin (Main Serach)");
|
||||||
FutilityMargin2 = value_from_centipawns(get_option_value_int("Futility Margin 2"));
|
for (int i = 0; i < 6; i++)
|
||||||
|
FutilityMargins[i] = (FutilityMargins[i] * fmScale) / 100;
|
||||||
|
|
||||||
RazorDepth = (get_option_value_int("Maximum Razoring Depth") + 1) * OnePly;
|
RazorDepth = (get_option_value_int("Maximum Razoring Depth") + 1) * OnePly;
|
||||||
RazorMargin = value_from_centipawns(get_option_value_int("Razoring Margin"));
|
RazorMargin = value_from_centipawns(get_option_value_int("Razoring Margin"));
|
||||||
|
@ -1495,7 +1494,7 @@ namespace {
|
||||||
+ Max(pos.midgame_value_of_piece_on(move_to(move)),
|
+ Max(pos.midgame_value_of_piece_on(move_to(move)),
|
||||||
pos.endgame_value_of_piece_on(move_to(move)))
|
pos.endgame_value_of_piece_on(move_to(move)))
|
||||||
+ (move_is_ep(move) ? PawnValueEndgame : Value(0))
|
+ (move_is_ep(move) ? PawnValueEndgame : Value(0))
|
||||||
+ FutilityMargin0
|
+ FutilityMarginQS
|
||||||
+ ei.futilityMargin;
|
+ ei.futilityMargin;
|
||||||
|
|
||||||
if (futilityValue < alpha)
|
if (futilityValue < alpha)
|
||||||
|
|
|
@ -123,9 +123,8 @@ namespace {
|
||||||
o.push_back(Option("Null driven IID", false));
|
o.push_back(Option("Null driven IID", false));
|
||||||
o.push_back(Option("Futility Pruning (Main Search)", true));
|
o.push_back(Option("Futility Pruning (Main Search)", true));
|
||||||
o.push_back(Option("Futility Pruning (Quiescence Search)", true));
|
o.push_back(Option("Futility Pruning (Quiescence Search)", true));
|
||||||
o.push_back(Option("Futility Margin 0", 50, 0, 1000));
|
o.push_back(Option("Futility Margin (Quiescence Search)", 50, 0, 1000));
|
||||||
o.push_back(Option("Futility Margin 1", 100, 0, 1000));
|
o.push_back(Option("Futility Margin (Main Serach)", 100, 0, 1000));
|
||||||
o.push_back(Option("Futility Margin 2", 200, 0, 1000));
|
|
||||||
o.push_back(Option("Maximum Razoring Depth", 3, 0, 4));
|
o.push_back(Option("Maximum Razoring Depth", 3, 0, 4));
|
||||||
o.push_back(Option("Razoring Margin", 300, 150, 600));
|
o.push_back(Option("Razoring Margin", 300, 150, 600));
|
||||||
o.push_back(Option("LSN filtering", true));
|
o.push_back(Option("LSN filtering", true));
|
||||||
|
|
Loading…
Add table
Reference in a new issue