volatile SignalsType Signals;
LimitsType Limits;
- std::vector<RootMove> RootMoves;
+ RootMoveVector RootMoves;
Position RootPos;
Time::point SearchTime;
StateStackPtr SetupStates;
TB::Cardinality = Options["SyzygyProbeLimit"];
// Skip TB probing when no TB found: !TBLargest -> !TB::Cardinality
- if (TB::Cardinality > TB::TBLargest)
+ if (TB::Cardinality > TB::MaxCardinality)
{
- TB::Cardinality = TB::TBLargest;
+ TB::Cardinality = TB::MaxCardinality;
TB::ProbeDepth = DEPTH_ZERO;
}
{
// If the current root position is in the tablebases then RootMoves
// contains only moves that preserve the draw or win.
- TB::RootInTB = Tablebases::root_probe(RootPos, TB::Score);
+ TB::RootInTB = Tablebases::root_probe(RootPos, RootMoves, TB::Score);
if (TB::RootInTB)
TB::Cardinality = 0; // Do not probe tablebases during the search
else // If DTZ tables are missing, use WDL tables as a fallback
{
// Filter out moves that do not preserve a draw or win
- TB::RootInTB = Tablebases::root_probe_wdl(RootPos, TB::Score);
+ TB::RootInTB = Tablebases::root_probe_wdl(RootPos, RootMoves, TB::Score);
// Only probe during search if winning
if (TB::Score <= VALUE_DRAW)