My Project
Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
osl::checkmate::Dfpn Class Reference

詰探索 More...

#include <dfpn.h>

Classes

struct  CallAttack
 
struct  CallDefense
 
struct  CallProofOracleAttack
 
struct  CallProofOracleDefense
 
struct  DepthLimitReached
 
struct  Node
 
struct  NodeBase
 
struct  ProofOracle
 
struct  Tree
 

Public Types

enum  { DfpnMaxUniqMoves = CheckOrEscapeMaxUniqMoves }
 
typedef CheckMoveVector DfpnMoveVector
 
typedef DfpnTable table_t
 

Public Member Functions

 Dfpn ()
 
 ~Dfpn ()
 
void setTable (DfpnTable *new_table)
 
void setIllegal (const HashKey &key, PieceStand white)
 
void setBlockingVerify (bool enable=true)
 
void setParallel (int id, DfpnShared *s)
 
const ProofDisproof hasCheckmateMove (const NumEffectState &state, const HashKey &key, const PathEncoding &path, size_t limit, Move &best_move, Move last_move=Move::INVALID(), std::vector< Move > *pv=0)
 
const ProofDisproof hasCheckmateMove (const NumEffectState &state, const HashKey &key, const PathEncoding &path, size_t limit, Move &best_move, PieceStand &proof, Move last_move=Move::INVALID(), std::vector< Move > *pv=0)
 
const ProofDisproof hasEscapeMove (const NumEffectState &state, const HashKey &key, const PathEncoding &path, size_t limit, Move last_move)
 
size_t nodeCount () const
 
const DfpnTablecurrentTable () const
 
void analyze (const PathEncoding &path, const NumEffectState &state, const std::vector< Move > &moves) const
 
void clear ()
 
template<Player P>
void attack ()
 
template<Player P>
void defense ()
 
template<Player P, bool UseTable>
void proofOracleAttack (const ProofOracle &oracle, int proof_limit)
 
template<Player P, bool UseTable>
void proofOracleDefense (const ProofOracle &oracle, int proof_limit)
 
template<Player P>
void blockingSimulation (int seed, const ProofOracle &)
 合駒が詰と判った直後に、同じような合駒を詰める
 
template<Player P>
void grandParentSimulation (int cur_move, const Node &gparent, int gp_move)
 
const ProofDisproof tryProof (const NumEffectState &state, const HashKey &key, const PathEncoding &path, const ProofOracle &, size_t oracle_id, Move &best_move, Move last_move=Move::INVALID())
 
const ProofDisproof tryProofLight (const NumEffectState &state, const HashKey &key, const PathEncoding &path, const ProofOracle &, size_t oracle_id, Move &best_move, Move last_move=Move::INVALID())
 
int distance (const HashKey &) const
 
bool grandParentSimulationSuitable () const
 test suitability of simulation of grand-parent relation
 
template<bool UseTable>
const osl::checkmate::ProofDisproof tryProofMain (const NumEffectState &state, const HashKey &key, const PathEncoding &path, const ProofOracle &oracle, size_t oracle_id, Move &best_move, Move last_move)
 

Static Public Member Functions

template<Player P>
static void generateCheck (const NumEffectState &, DfpnMoveVector &, bool &)
 Pは攻撃側
 
template<Player P>
static void generateEscape (const NumEffectState &, bool need_full_width, Square grand_parent_delay_last_to, DfpnMoveVector &)
 Pは攻撃側
 
template<Player Turn>
static void sort (const NumEffectState &, DfpnMoveVector &)
 

Private Member Functions

 Dfpn (const Dfpn &)=delete
 
Dfpnoperator= (const Dfpn &)=delete
 
template<bool UseTable>
const ProofDisproof tryProofMain (const NumEffectState &state, const HashKey &key, const PathEncoding &path, const ProofOracle &, size_t oracle_id, Move &best_move, Move last_move)
 
void findDagSource ()
 
void findDagSource (const HashKey &terminal_key, DfpnRecord &terminal_record, PieceStand terminal_stand, int offset=0)
 

Private Attributes

DfpnTabletable
 
std::unique_ptr< Treetree
 
std::unique_ptr< DfpnPathTablepath_table
 
size_t node_count
 
size_t node_count_limit
 
DfpnSharedparallel_shared
 
int thread_id
 
bool blocking_verify
 

Detailed Description

詰探索

Definition at line 106 of file dfpn.h.

Member Typedef Documentation

◆ DfpnMoveVector

Definition at line 112 of file dfpn.h.

◆ table_t

Definition at line 113 of file dfpn.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
DfpnMaxUniqMoves 

Definition at line 111 of file dfpn.h.

Constructor & Destructor Documentation

◆ Dfpn() [1/2]

osl::checkmate::Dfpn::Dfpn ( const Dfpn )
privatedelete

◆ Dfpn() [2/2]

osl::checkmate::Dfpn::Dfpn ( )

Definition at line 1287 of file dfpn.cc.

◆ ~Dfpn()

osl::checkmate::Dfpn::~Dfpn ( )

Definition at line 1292 of file dfpn.cc.

Member Function Documentation

◆ analyze()

void osl::checkmate::Dfpn::analyze ( const PathEncoding path,
const NumEffectState state,
const std::vector< Move > &  moves 
) const

◆ attack()

template<osl::Player P>
void osl::checkmate::Dfpn::attack ( )

Definition at line 1655 of file dfpn.cc.

References osl::stat::Ratio::add(), osl::PieceStand::add(), AdHocSumScale, osl::checkmate::Dfpn::Node::allocate(), osl::alt(), osl::checkmate::LibertyEstimator::attackH(), osl::checkmate::attackProofCost(), osl::checkmate::BadAttackLoop, osl::checkmate::DfpnRecordBase::best_move, osl::BISHOP, osl::BLACK, osl::hash::HashKey128::blackStand(), osl::checkmate::ProofDisproof::Checkmate(), CHECKMATE_A3_GOLD, osl::checkmate::Dfpn::Node::children, osl::checkmate::Dfpn::Node::children_path, osl::misc::BitOp::countBit(), osl::checkmate::DfpnRecordBase::dag_moves, DagFindThreshold, DagFindThreshold2, debug_time_start, osl::checkmate::ProofDisproof::disproof(), osl::checkmate::DfpnRecord::disproof(), osl::checkmate::DfpnPathRecord::distance, osl::checkmate::Edge_Table, osl::FixedCapacityVector< T, Capacity >::empty(), EnableGCDepth, osl::PathEncoding::getDepth(), osl::PtypeTable::getEffect(), osl::GOLD, osl::checkmate::DfpnTable::growthLimit(), osl::checkmate::FixedDepthSolverExt::hasCheckmateMove(), osl::checkmate::Dfpn::NodeBase::hash_key, osl::checkmate::Dfpn::Node::hashes, osl::EffectContent::hasUnblockableEffect(), IgnoreUpwardDisproofThreshold, osl::hash::HashRandomPair::initialized(), osl::checkmate::ProofDisproof::isCheckmateFail(), osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::Move::isDrop(), osl::checkmate::ProofDisproof::isFinal(), osl::checkmate::Dfpn::Node::isLoop(), osl::checkmate::ProofDisproof::isLoopDetection(), osl::isMajor(), osl::Move::isNormal(), osl::isPromoted(), osl::checkmate::DfpnRecordBase::last_move, osl::checkmate::DisproofPieces::leaf(), osl::checkmate::DfpnTable::leaveWorking(), LongDropCount, osl::checkmate::ProofDisproof::LOOP_DETECTION_PROOF, osl::checkmate::ProofDisproof::LoopDetection(), osl::checkmate::DfpnRecordBase::min_pdp, osl::checkmate::Dfpn::NodeBase::moved, osl::checkmate::Dfpn::Node::moves, osl::hash::HashKey::newHashWithMove(), osl::checkmate::Dfpn::Node::nextWhiteStand(), osl::checkmate::ProofDisproof::NoCheckmate(), osl::checkmate::DfpnPathRecord::node_count, osl::checkmate::DfpnRecordBase::node_count, osl::checkmate::ProofDisproof::NoEscape(), NoPromoeIgnoreDisproofThreshold, NoPromoeIgnoreProofThreshold, osl::checkmate::Dfpn::NodeBase::path, osl::checkmate::Dfpn::NodeBase::path_record, osl::PAWN, osl::checkmate::ProofDisproof::PAWN_CHECK_MATE_PROOF, osl::checkmate::ProofDisproof::PawnCheckmate(), osl::checkmate::DfpnTable::probe(), osl::checkmate::ProofDisproof::proof(), osl::checkmate::DfpnRecord::proof(), osl::checkmate::Dfpn::Node::proof_cost, osl::checkmate::DfpnRecordBase::proof_disproof, osl::checkmate::ProofDisproof::PROOF_LIMIT, osl::Move::ptype(), osl::Ptype_Table, osl::PathEncoding::pushMove(), osl::checkmate::Dfpn::NodeBase::record, osl::checkmate::EdgeTable::resetEdgeFromLiberty(), osl::ROOK, osl::checkmate::DfpnTable::runGC(), osl::checkmate::Dfpn::Node::setCheckmateAttack(), osl::checkmate::DfpnRecord::setDisproofPieces(), osl::checkmate::Dfpn::Node::setLoopDetection(), osl::checkmate::Dfpn::Node::setNoCheckmateAttack(), osl::checkmate::DfpnRecord::setProofPieces(), osl::checkmate::DfpnTable::setWorking(), osl::FixedCapacityVector< T, Capacity >::size(), osl::checkmate::slow_increase(), osl::checkmate::DfpnRecordBase::solved, osl::checkmate::DfpnRecord::stands, osl::checkmate::DfpnTable::store(), osl::checkmate::Dfpn::NodeBase::threshold, timer, osl::unpromote(), UpwardWeight, osl::hash::HashRandomPair::value(), osl::checkmate::Dfpn::Node::visit_time, osl::WHITE, osl::checkmate::Dfpn::NodeBase::white_stand, and osl::checkmate::DfpnRecordBase::working_threads.

Referenced by osl::checkmate::Dfpn::CallAttack< P >::operator()(), osl::checkmate::Dfpn::Node::setCheckmateAttack(), osl::checkmate::Dfpn::Node::setCheckmateDefense(), osl::checkmate::Dfpn::Node::setNoCheckmateAttack(), osl::checkmate::Dfpn::Node::setNoCheckmateDefense(), and osl::checkmate::Dfpn::Tree::setNoCheckmateDefense().

◆ blockingSimulation()

template<osl::Player P>
void osl::checkmate::Dfpn::blockingSimulation ( int  seed,
const ProofOracle oracle 
)

◆ clear()

void osl::checkmate::Dfpn::clear ( )

Definition at line 1305 of file dfpn.cc.

◆ currentTable()

const DfpnTable & osl::checkmate::Dfpn::currentTable ( ) const
inline

Definition at line 153 of file dfpn.h.

References table.

◆ defense()

template<osl::Player P>
void osl::checkmate::Dfpn::defense ( )

Definition at line 2182 of file dfpn.cc.

References AdHocSumScale, osl::checkmate::Dfpn::Node::allocate(), osl::alt(), osl::checkmate::BadAttackLoop, osl::CArray< T, Capacity >::begin(), osl::FixedCapacityVector< T, Capacity >::begin(), osl::checkmate::DfpnRecordBase::best_move, osl::BLACK, osl::hash::HashKey128::blackStand(), osl::checkmate::Dfpn::Node::children, osl::checkmate::Dfpn::Node::children_path, osl::misc::BitOp::countBit(), osl::checkmate::DfpnRecordBase::dag_moves, DagFindThreshold, DagFindThreshold2, debug_time_start, osl::checkmate::ProofDisproof::disproof(), osl::checkmate::DfpnRecord::disproof(), osl::checkmate::ProofDisproof::DISPROOF_LIMIT, osl::checkmate::ProofDisproof::DISPROOF_MAX, osl::checkmate::DfpnPathRecord::distance, osl::FixedCapacityVector< T, Capacity >::empty(), osl::FixedCapacityVector< T, Capacity >::end(), osl::checkmate::DfpnRecordBase::false_branch, osl::PathEncoding::getDepth(), osl::checkmate::FixedDepthSolverExt::hasEscapeByMove(), osl::checkmate::Dfpn::NodeBase::hash_key, osl::checkmate::Dfpn::Node::hashes, IgnoreUpwardProofThreshold, osl::hash::HashRandomPair::initialized(), osl::checkmate::ProofDisproof::isCheckmateFail(), osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::Move::isDrop(), osl::checkmate::ProofDisproof::isFinal(), osl::checkmate::Dfpn::Node::isLoop(), osl::checkmate::ProofDisproof::isLoopDetection(), osl::Move::isNormal(), osl::KING, osl::checkmate::DfpnRecordBase::last_move, osl::checkmate::DfpnRecordBase::last_to, osl::checkmate::ProofPieces::leaf(), osl::checkmate::DfpnTable::leaveWorking(), MEMORIZE_SOLVED_IN_BITSET, osl::checkmate::DfpnRecordBase::min_pdp, osl::checkmate::Dfpn::NodeBase::moved, osl::checkmate::Dfpn::Node::moves, osl::checkmate::DfpnRecordBase::need_full_width, osl::hash::HashKey::newHashWithMove(), osl::checkmate::Dfpn::Node::nextWhiteStand(), osl::checkmate::DfpnPathRecord::node_count, osl::checkmate::DfpnRecordBase::node_count, osl::checkmate::ProofDisproof::NoEscape(), osl::checkmate::Dfpn::NodeBase::path, osl::checkmate::Dfpn::NodeBase::path_record, osl::FixedCapacityVector< T, Capacity >::pop_back(), osl::checkmate::DfpnTable::probe(), osl::checkmate::ProofDisproof::proof(), osl::checkmate::DfpnRecord::proof(), osl::checkmate::DfpnRecordBase::proof_disproof, osl::PathEncoding::pushMove(), osl::checkmate::Dfpn::NodeBase::record, SacrificeBlockCount, osl::checkmate::Dfpn::Node::setCheckmateChildInDefense(), osl::checkmate::Dfpn::Node::setCheckmateDefense(), osl::checkmate::Dfpn::Node::setLoopDetection(), osl::checkmate::DfpnRecord::setProofPieces(), osl::checkmate::DfpnTable::setWorking(), osl::FixedCapacityVector< T, Capacity >::size(), osl::checkmate::slow_increase(), osl::checkmate::DfpnRecordBase::solved, osl::Square::square, osl::checkmate::DfpnRecord::stands, osl::checkmate::DfpnTable::store(), osl::checkmate::Dfpn::NodeBase::threshold, timer, osl::Move::to(), UpwardWeight, osl::hash::HashRandomPair::value(), osl::checkmate::Dfpn::Node::visit_time, osl::WHITE, osl::checkmate::Dfpn::NodeBase::white_stand, and osl::checkmate::DfpnRecordBase::working_threads.

Referenced by osl::checkmate::Dfpn::CallDefense< P >::operator()().

◆ distance()

int osl::checkmate::Dfpn::distance ( const HashKey key) const

Definition at line 3130 of file dfpn.cc.

References osl::checkmate::DfpnPathRecord::distance.

◆ findDagSource() [1/2]

void osl::checkmate::Dfpn::findDagSource ( )
private

Definition at line 1646 of file dfpn.cc.

◆ findDagSource() [2/2]

void osl::checkmate::Dfpn::findDagSource ( const HashKey terminal_key,
DfpnRecord terminal_record,
PieceStand  terminal_stand,
int  offset = 0 
)
private

◆ generateCheck()

template<osl::Player P>
void osl::checkmate::Dfpn::generateCheck ( const NumEffectState state,
DfpnMoveVector moves,
bool &  has_pawn_checkmate 
)
static

◆ generateEscape()

template<osl::Player P>
void osl::checkmate::Dfpn::generateEscape ( const NumEffectState state,
bool  need_full_width,
Square  grand_parent_delay_last_to,
DfpnMoveVector moves 
)
static

◆ grandParentSimulation()

template<osl::Player P>
void osl::checkmate::Dfpn::grandParentSimulation ( int  cur_move,
const Node gparent,
int  gp_move 
)

◆ grandParentSimulationSuitable()

bool osl::checkmate::Dfpn::grandParentSimulationSuitable ( ) const

test suitability of simulation of grand-parent relation

Definition at line 2161 of file dfpn.cc.

References osl::Move::from(), osl::Move::isCapture(), osl::Move::isNormal(), osl::checkmate::Dfpn::NodeBase::moved, and osl::Move::to().

◆ hasCheckmateMove() [1/2]

const osl::checkmate::ProofDisproof osl::checkmate::Dfpn::hasCheckmateMove ( const NumEffectState state,
const HashKey key,
const PathEncoding path,
size_t  limit,
Move best_move,
Move  last_move = Move::INVALID(),
std::vector< Move > *  pv = 0 
)

Definition at line 1328 of file dfpn.cc.

Referenced by osl::checkmate::DualDfpn::findProof().

◆ hasCheckmateMove() [2/2]

const osl::checkmate::ProofDisproof osl::checkmate::Dfpn::hasCheckmateMove ( const NumEffectState state,
const HashKey key,
const PathEncoding path,
size_t  limit,
Move best_move,
PieceStand proof,
Move  last_move = Move::INVALID(),
std::vector< Move > *  pv = 0 
)

◆ hasEscapeMove()

const osl::checkmate::ProofDisproof osl::checkmate::Dfpn::hasEscapeMove ( const NumEffectState state,
const HashKey key,
const PathEncoding path,
size_t  limit,
Move  last_move 
)

◆ nodeCount()

size_t osl::checkmate::Dfpn::nodeCount ( ) const
inline

Definition at line 152 of file dfpn.h.

References node_count.

Referenced by osl::checkmate::DualDfpn::findProof(), and osl::checkmate::DualDfpn::isLosingState().

◆ operator=()

Dfpn & osl::checkmate::Dfpn::operator= ( const Dfpn )
privatedelete

◆ proofOracleAttack()

template<osl::Player P, bool UseTable>
void osl::checkmate::Dfpn::proofOracleAttack ( const ProofOracle oracle,
int  proof_limit 
)

Definition at line 2745 of file dfpn.cc.

References osl::stat::Ratio::add(), osl::PieceStand::add(), osl::checkmate::Dfpn::Node::allocate(), osl::alt(), osl::checkmate::OracleAdjust::attack(), osl::checkmate::BadAttackLoop, osl::checkmate::DfpnRecordBase::best_move, osl::checkmate::ProofDisproof::Checkmate(), osl::checkmate::Dfpn::Node::children, osl::checkmate::Dfpn::Node::children_path, osl::FixedCapacityVector< T, Capacity >::clear(), osl::checkmate::DfpnRecord::disproof(), osl::hash::HashKey::dumpContents(), osl::checkmate::DfpnTable::findProofOracle(), osl::checkmate::FixedDepthSolverExt::hasCheckmateMove(), osl::checkmate::Dfpn::NodeBase::hash_key, osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::Move::isDrop(), osl::checkmate::ProofDisproof::isFinal(), osl::checkmate::Dfpn::Node::isLoop(), osl::Move::isNormal(), osl::checkmate::Dfpn::ProofOracle::key, osl::checkmate::DfpnRecordBase::last_move, osl::checkmate::Dfpn::NodeBase::moved, osl::checkmate::Dfpn::Node::moves, osl::hash::HashKey::newHashWithMove(), osl::checkmate::Dfpn::ProofOracle::newOracle(), osl::checkmate::Dfpn::Node::nextWhiteStand(), osl::checkmate::DfpnRecordBase::node_count, osl::checkmate::ProofDisproof::NoEscape(), osl::checkmate::Dfpn::NodeBase::path, osl::checkmate::Dfpn::NodeBase::path_record, osl::PAWN, osl::checkmate::ProofDisproof::PawnCheckmate(), osl::checkmate::DfpnTable::probe(), osl::checkmate::DfpnRecord::proof(), osl::checkmate::DfpnRecordBase::proof_disproof, osl::Move::ptype(), osl::FixedCapacityVector< T, Capacity >::push_back(), osl::PathEncoding::pushMove(), osl::checkmate::Dfpn::NodeBase::record, root_proof_simulation_limit, osl::checkmate::Dfpn::Node::setCheckmateAttack(), osl::checkmate::Dfpn::Node::setLoopDetection(), osl::checkmate::DfpnRecord::setProofPieces(), osl::checkmate::DfpnTable::showProofOracles(), osl::checkmate::DfpnTable::store(), osl::checkmate::Dfpn::ProofOracle::traceable(), osl::WHITE, osl::checkmate::Dfpn::NodeBase::white_stand, and osl::checkmate::Dfpn::ProofOracle::white_stand.

Referenced by osl::checkmate::Dfpn::CallProofOracleAttack< P, UseTable >::operator()().

◆ proofOracleDefense()

template<osl::Player P, bool UseTable>
void osl::checkmate::Dfpn::proofOracleDefense ( const ProofOracle oracle,
int  proof_limit 
)

Definition at line 2871 of file dfpn.cc.

References osl::checkmate::Dfpn::Node::allocate(), osl::alt(), osl::checkmate::BadAttackLoop, osl::checkmate::Dfpn::Node::children, osl::checkmate::Dfpn::Node::children_path, osl::checkmate::DfpnRecord::disproof(), osl::FixedCapacityVector< T, Capacity >::empty(), osl::checkmate::FixedDepthSolverExt::hasEscapeByMove(), osl::checkmate::Dfpn::NodeBase::hash_key, osl::checkmate::Dfpn::Node::hashes, osl::checkmate::ProofDisproof::isCheckmateFail(), osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::checkmate::Dfpn::Node::isLoop(), osl::checkmate::ProofPieces::leaf(), osl::checkmate::Dfpn::NodeBase::moved, osl::checkmate::Dfpn::Node::moves, osl::hash::HashKey::newHashWithMove(), osl::checkmate::Dfpn::ProofOracle::newOracle(), osl::checkmate::Dfpn::Node::nextWhiteStand(), osl::checkmate::ProofDisproof::NoCheckmate(), osl::checkmate::DfpnRecordBase::node_count, osl::checkmate::ProofDisproof::NoEscape(), osl::checkmate::Dfpn::NodeBase::path, osl::checkmate::Dfpn::NodeBase::path_record, osl::checkmate::DfpnTable::probe(), osl::checkmate::DfpnRecord::proof(), osl::checkmate::DfpnRecordBase::proof_disproof, ProofSimulationTolerance, osl::PathEncoding::pushMove(), osl::checkmate::Dfpn::NodeBase::record, osl::checkmate::Dfpn::Node::setCheckmateChildInDefense(), osl::checkmate::Dfpn::Node::setCheckmateDefense(), osl::checkmate::Dfpn::Node::setLoopDetection(), osl::FixedCapacityVector< T, Capacity >::size(), osl::Square::square, osl::checkmate::DfpnTable::store(), osl::Move::to(), osl::checkmate::Dfpn::ProofOracle::traceable(), osl::WHITE, and osl::checkmate::Dfpn::NodeBase::white_stand.

Referenced by osl::checkmate::Dfpn::CallProofOracleDefense< P, UseTable >::operator()().

◆ setBlockingVerify()

void osl::checkmate::Dfpn::setBlockingVerify ( bool  enable = true)
inline

Definition at line 131 of file dfpn.h.

References blocking_verify.

◆ setIllegal()

void osl::checkmate::Dfpn::setIllegal ( const HashKey key,
PieceStand  white 
)

◆ setParallel()

void osl::checkmate::Dfpn::setParallel ( int  id,
DfpnShared s 
)
inline

Definition at line 132 of file dfpn.h.

References parallel_shared, and thread_id.

◆ setTable()

void osl::checkmate::Dfpn::setTable ( DfpnTable new_table)

◆ sort()

template<osl::Player Turn>
void osl::checkmate::Dfpn::sort ( const NumEffectState state,
DfpnMoveVector moves 
)
static

◆ tryProof()

const osl::checkmate::ProofDisproof osl::checkmate::Dfpn::tryProof ( const NumEffectState state,
const HashKey key,
const PathEncoding path,
const ProofOracle oracle,
size_t  oracle_id,
Move best_move,
Move  last_move = Move::INVALID() 
)

Definition at line 1392 of file dfpn.cc.

Referenced by osl::checkmate::DualDfpn::findProof().

◆ tryProofLight()

const osl::checkmate::ProofDisproof osl::checkmate::Dfpn::tryProofLight ( const NumEffectState state,
const HashKey key,
const PathEncoding path,
const ProofOracle oracle,
size_t  oracle_id,
Move best_move,
Move  last_move = Move::INVALID() 
)

Definition at line 1400 of file dfpn.cc.

Referenced by osl::checkmate::DualDfpn::findProof().

◆ tryProofMain() [1/2]

template<bool UseTable>
const ProofDisproof osl::checkmate::Dfpn::tryProofMain ( const NumEffectState state,
const HashKey key,
const PathEncoding path,
const ProofOracle ,
size_t  oracle_id,
Move best_move,
Move  last_move 
)
private

◆ tryProofMain() [2/2]

template<bool UseTable>
const osl::checkmate::ProofDisproof osl::checkmate::Dfpn::tryProofMain ( const NumEffectState state,
const HashKey key,
const PathEncoding path,
const ProofOracle oracle,
size_t  oracle_id,
Move best_move,
Move  last_move 
)

Member Data Documentation

◆ blocking_verify

bool osl::checkmate::Dfpn::blocking_verify
private

Definition at line 125 of file dfpn.h.

Referenced by setBlockingVerify().

◆ node_count

size_t osl::checkmate::Dfpn::node_count
private

Definition at line 121 of file dfpn.h.

Referenced by nodeCount().

◆ node_count_limit

size_t osl::checkmate::Dfpn::node_count_limit
private

Definition at line 122 of file dfpn.h.

◆ parallel_shared

DfpnShared* osl::checkmate::Dfpn::parallel_shared
private

Definition at line 123 of file dfpn.h.

Referenced by setParallel().

◆ path_table

std::unique_ptr<DfpnPathTable> osl::checkmate::Dfpn::path_table
private

Definition at line 120 of file dfpn.h.

◆ table

DfpnTable* osl::checkmate::Dfpn::table
private

Definition at line 115 of file dfpn.h.

Referenced by currentTable().

◆ thread_id

int osl::checkmate::Dfpn::thread_id
private

Definition at line 124 of file dfpn.h.

Referenced by setParallel().

◆ tree

std::unique_ptr<Tree> osl::checkmate::Dfpn::tree
private

Definition at line 119 of file dfpn.h.


The documentation for this class was generated from the following files: