osl::checkmate::Dfpn Class Reference

- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
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>`

Inheritance diagram for osl::checkmate::Dfpn:
[legend]
Collaboration diagram for osl::checkmate::Dfpn:
[legend]

## 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(), 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(), 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 DfpnTable & | currentTable () const
void | analyze (const PathEncoding &path, const NumEffectState &state, const 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 &)
| 合駒が詰と判った直後に、同じような合駒を詰める More...
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 More...
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)
template<osl::Player Turn>
void | sort (const NumEffectState &state, DfpnMoveVector &moves)
template<osl::Player P>
void | generateCheck (const NumEffectState &state, DfpnMoveVector &moves, bool &has_pawn_checkmate)
template<osl::Player P>
void | generateEscape (const NumEffectState &state, bool need_full_width, Square last_to, DfpnMoveVector &moves)

## Static Public Member Functions
template<Player P>
static void | generateCheck (const NumEffectState &, DfpnMoveVector &, bool &)
| Pは攻撃側 More...
template<Player P>
static void | generateEscape (const NumEffectState &, bool need_full_width, Square grand_parent_delay_last_to, DfpnMoveVector &)
| Pは攻撃側 More...
template<Player Turn>
static void | sort (const NumEffectState &, DfpnMoveVector &)

## Private Member Functions
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
DfpnTable * | table
boost::scoped_ptr< Tree > | tree
boost::scoped_ptr< DfpnPathTable > | path_table
size_t | node_count
size_t | node_count_limit
DfpnShared * | parallel_shared
int | thread_id
bool | blocking_verify

## Detailed Description

詰探索

Definition at line 111 of file dfpn.h.

## Member Typedef Documentation

typedef CheckMoveVector osl::checkmate::Dfpn::DfpnMoveVector

Definition at line 115 of file dfpn.h.

typedef DfpnTable osl::checkmate::Dfpn::table_t

Definition at line 116 of file dfpn.h.

## Member Enumeration Documentation

anonymous enum

Enumerator
DfpnMaxUniqMoves |

Definition at line 114 of file dfpn.h.

## Constructor & Destructor Documentation

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

Definition at line 1326 of file dfpn.cc.

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

Definition at line 1331 of file dfpn.cc.

## Member Function Documentation

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

Definition at line 2691 of file dfpn.cc.

References osl::checkmate::DfpnRecordBase::best_move, osl::BLACK, osl::checkmate::DfpnRecordBase::dag_moves, osl::checkmate::DfpnPathRecord::distance, osl::checkmate::DfpnRecordBase::last_to, moves, osl::PieceStand::nextStand(), osl::checkmate::DfpnRecordBase::node_count, osl::checkmate::DfpnRecordBase::proof_disproof, osl::PathEncoding::pushMove(), osl::record::csa::show(), osl::checkmate::DfpnPathRecord::twin_list, and osl::WHITE.

template<osl::Player P>

void osl::checkmate::Dfpn::attack | ( | ) |  |

Definition at line 1696 of file dfpn.cc.

References osl::stat::Ratio::add(), osl::PieceStand::add(), AdHocSumScale, osl::alt(), osl::checkmate::LibertyEstimator::attackH(), osl::checkmate::attackProofCost(), osl::checkmate::BadAttackLoop, osl::checkmate::DfpnRecordBase::best_move, osl::BISHOP, osl::BLACK, osl::checkmate::ProofDisproof::Checkmate(), CHECKMATE_A3_GOLD, osl::misc::BitOp::countBit(), osl::checkmate::DfpnRecordBase::dag_moves, DagFindThreshold, DagFindThreshold2, debug_time_start, osl::checkmate::DfpnRecord::disproof(), osl::checkmate::ProofDisproof::disproof(), osl::checkmate::Edge_Table, EnableGCDepth, osl::find(), osl::PtypeTable::getEffect(), osl::GOLD, osl::checkmate::FixedDepthSearcher::hasCheckmateMove(), osl::EffectContent::hasUnblockableEffect(), IgnoreUpwardDisproofThreshold, osl::checkmate::ProofDisproof::isCheckmateFail(), osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::Move::isDrop(), osl::checkmate::ProofDisproof::isFinal(), osl::checkmate::ProofDisproof::isLoopDetection(), osl::isMajor(), osl::Move::isNormal(), osl::isPromoted(), osl::checkmate::DfpnRecordBase::last_move, osl::checkmate::DisproofPieces::leaf(), LongDropCount, osl::checkmate::ProofDisproof::LOOP_DETECTION_PROOF, osl::checkmate::ProofDisproof::LoopDetection(), osl::eval::max(), osl::eval::min(), osl::checkmate::DfpnRecordBase::min_pdp, osl::checkmate::Dfpn::NodeBase::moved, osl::checkmate::King8Info::moves(), osl::checkmate::ProofDisproof::NoCheckmate(), 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::DfpnRecord::proof(), 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::DfpnRecord::setDisproofPieces(), osl::checkmate::DfpnRecord::setProofPieces(), osl::record::csa::show(), osl::checkmate::slow_increase(), osl::checkmate::DfpnRecordBase::solved, osl::checkmate::DfpnRecord::stands, target, osl::checkmate::Dfpn::NodeBase::threshold, timer, osl::unpromote(), UpwardWeight, osl::checkmate::Dfpn::Node::visit_time, osl::WHITE, and osl::checkmate::DfpnRecordBase::working_threads.

Referenced by osl::checkmate::Dfpn::Node::setCheckmateAttack().

template<osl::Player P>

void osl::checkmate::Dfpn::blockingSimulation | ( | int | seed,
|  | const ProofOracle & | oracle
| ) |  |

合駒が詰と判った直後に、同じような合駒を詰める

Definition at line 3086 of file dfpn.cc.

References osl::alt(), osl::checkmate::Dfpn::Node::children, osl::checkmate::Dfpn::Node::children_path, osl::checkmate::Dfpn::Node::hashes, osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::checkmate::Dfpn::Node::isLoop(), osl::checkmate::Dfpn::Node::moves, osl::checkmate::Dfpn::NodeBase::path, osl::checkmate::Dfpn::NodeBase::path_record, osl::checkmate::ProofDisproof::proof(), osl::checkmate::DfpnRecordBase::proof_disproof, osl::PathEncoding::pushMove(), osl::checkmate::Dfpn::NodeBase::record, osl::checkmate::Dfpn::Node::setCheckmateChildInDefense(), osl::checkmate::DfpnRecordBase::solved, osl::checkmate::Dfpn::NodeBase::threshold, osl::Move::to(), and osl::checkmate::Dfpn::ProofOracle::traceable().

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

Definition at line 1344 of file dfpn.cc.

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

Definition at line 156 of file dfpn.h.

References table.

template<osl::Player P>

void osl::checkmate::Dfpn::defense | ( | ) |  |

Definition at line 2223 of file dfpn.cc.

References AdHocSumScale, osl::checkmate::Dfpn::Node::allocate(), osl::alt(), osl::checkmate::BadAttackLoop, osl::checkmate::DfpnRecordBase::best_move, osl::BLACK, blocking_verify, 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::DfpnRecord::disproof(), osl::checkmate::ProofDisproof::disproof(), osl::checkmate::ProofDisproof::DISPROOF_LIMIT, osl::checkmate::ProofDisproof::DISPROOF_MAX, osl::checkmate::DfpnPathRecord::distance, osl::checkmate::DfpnRecordBase::false_branch, osl::find(), osl::PathEncoding::getDepth(), osl::checkmate::FixedDepthSearcher::hasEscapeByMove(), osl::checkmate::Dfpn::NodeBase::hash_key, osl::checkmate::Dfpn::Node::hashes, IgnoreUpwardProofThreshold, 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::eval::max(), MEMORIZE_SOLVED_IN_BITSET, osl::eval::min(), osl::checkmate::DfpnRecordBase::min_pdp, osl::checkmate::Dfpn::NodeBase::moved, osl::checkmate::Dfpn::Node::moves, osl::checkmate::DfpnRecordBase::need_full_width, osl::checkmate::Dfpn::Node::nextWhiteStand(), osl::checkmate::DfpnRecordBase::node_count, osl::checkmate::DfpnPathRecord::node_count, osl::checkmate::ProofDisproof::NoEscape(), osl::checkmate::Dfpn::NodeBase::path, osl::checkmate::Dfpn::NodeBase::path_record, osl::checkmate::DfpnRecord::proof(), osl::checkmate::ProofDisproof::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::slow_increase(), osl::checkmate::DfpnRecordBase::solved, osl::Square::square, osl::checkmate::DfpnRecord::stands, target, osl::checkmate::Dfpn::NodeBase::threshold, timer, osl::Move::to(), UpwardWeight, osl::checkmate::Dfpn::Node::visit_time, osl::WHITE, osl::checkmate::Dfpn::NodeBase::white_stand, and osl::checkmate::DfpnRecordBase::working_threads.

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

Definition at line 3171 of file dfpn.cc.

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

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

Definition at line 1687 of file dfpn.cc.

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

Definition at line 1646 of file dfpn.cc.

References osl::alt(), osl::checkmate::DfpnRecordBase::dag_moves, osl::checkmate::DfpnRecordBase::dag_terminal, osl::Move::isNormal(), osl::checkmate::DfpnRecordBase::last_move, MaxDagTraceDepth, osl::eval::min(), osl::Move::player(), osl::PieceStand::previousStand(), and osl::WHITE.

template<Player P>

static void osl::checkmate::Dfpn::generateCheck | ( | const NumEffectState & | ,
|  | DfpnMoveVector & | ,
|  | bool & |
| ) |  |
| static

Pは攻撃側

template<osl::Player P>

void osl::checkmate::Dfpn::generateCheck | ( | const NumEffectState & | state,
|  | DfpnMoveVector & | moves,
|  | bool & | has_pawn_checkmate
| ) |  |

Definition at line 1612 of file dfpn.cc.

References osl::alt(), osl::record::usi::escape(), osl::Move::from(), osl::move_generator::GenerateEscape< P >::generateKingEscape(), osl::PtypeTable::getEffect(), osl::move_generator::addeffect8::hasEffect(), osl::Move::hasIgnoredUnpromote(), moves, osl::Ptype_Table, osl::Move::ptypeO(), store(), osl::Move::to(), osl::unpromote(), and osl::Move::unpromote().

template<Player P>

static void osl::checkmate::Dfpn::generateEscape | ( | const NumEffectState & | ,
|  | bool | need_full_width,
|  | Square | grand_parent_delay_last_to,
|  | DfpnMoveVector & |
| ) |  |
| static

Pは攻撃側

template<osl::Player P>

void osl::checkmate::Dfpn::generateEscape | ( | const NumEffectState & | state,
|  | bool | need_full_width,
|  | Square | last_to,
|  | DfpnMoveVector & | moves
| ) |  |

Definition at line 2145 of file dfpn.cc.

References osl::alt(), osl::find(), osl::move_generator::GenerateEscape< P >::generateCheapKingEscape(), osl::move_generator::GenerateEscape< P >::generateKingEscape(), osl::Move::hasIgnoredUnpromote(), moves, osl::Move::to(), and osl::Move::unpromote().

template<osl::Player P>

void osl::checkmate::Dfpn::grandParentSimulation | ( | int | cur_move,
|  | const Node & | gparent,
|  | int | gp_move
| ) |  |

Definition at line 3136 of file dfpn.cc.

References osl::alt(), osl::checkmate::Dfpn::Node::children, osl::checkmate::Dfpn::Node::children_path, osl::checkmate::Dfpn::NodeBase::hash_key, osl::checkmate::Dfpn::Node::hashes, osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::checkmate::Dfpn::Node::moves, osl::checkmate::Dfpn::Node::nextWhiteStand(), osl::checkmate::Dfpn::NodeBase::path, osl::checkmate::Dfpn::NodeBase::path_record, osl::checkmate::ProofDisproof::proof(), osl::checkmate::DfpnRecordBase::proof_disproof, osl::PathEncoding::pushMove(), osl::checkmate::Dfpn::NodeBase::record, osl::checkmate::DfpnRecordBase::solved, and osl::checkmate::Dfpn::NodeBase::threshold.

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

test suitability of simulation of grand-parent relation

Definition at line 2202 of file dfpn.cc.

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

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()`,
|  | vector< Move > * | pv = `0`
| ) |  |

Definition at line 1368 of file dfpn.cc.

Referenced by osl::checkmate::DualDfpn::findProof(), and osl::annotate::Analyzer::isCheckmate().

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()`,
|  | vector< Move > * | pv = `0`
| ) |  |

Definition at line 1378 of file dfpn.cc.

References analyzer, osl::checkmate::DfpnRecordBase::best_move, osl::BLACK, osl::checkmate::Dfpn::Node::clear(), osl::find(), osl::checkmate::Dfpn::NodeBase::hash_key, osl::checkmate::ProofDisproof::isCheckmateSuccess(), osl::checkmate::ProofDisproof::isFinal(), limit, osl::checkmate::ProofDisproof::LoopDetection(), osl::checkmate::Dfpn::NodeBase::moved, osl::checkmate::Dfpn::NodeBase::path, osl::checkmate::Dfpn::NodeBase::path_record, osl::checkmate::DfpnRecordBase::proof_disproof, osl::checkmate::DfpnRecord::proofPieces(), osl::checkmate::Dfpn::NodeBase::record, osl::checkmate::ProofTreeDepthDfpn::retrievePV(), ROOT_DISPROOF_TOL, ROOT_PROOF_TOL, osl::checkmate::Dfpn::NodeBase::threshold, osl::checkmate::DfpnPathRecord::twin_list, osl::WHITE, and osl::checkmate::Dfpn::NodeBase::white_stand.

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

Definition at line 1508 of file dfpn.cc.

References osl::alt(), osl::BLACK, osl::checkmate::Dfpn::Node::clear(), osl::find(), osl::checkmate::Dfpn::NodeBase::hash_key, osl::Move::isDrop(), osl::Move::isNormal(), limit, osl::checkmate::ProofDisproof::LoopDetection(), osl::checkmate::Dfpn::NodeBase::moved, osl::checkmate::DfpnRecordBase::need_full_width, osl::checkmate::ProofDisproof::NoCheckmate(), osl::checkmate::ProofDisproof::NoEscape(), osl::checkmate::Dfpn::NodeBase::path, osl::checkmate::Dfpn::NodeBase::path_record, osl::PAWN, osl::checkmate::ProofDisproof::PawnCheckmate(), osl::checkmate::DfpnRecordBase::proof_disproof, osl::Move::ptype(), osl::checkmate::Dfpn::NodeBase::record, ROOT_DISPROOF_TOL, ROOT_PROOF_TOL, osl::checkmate::Dfpn::NodeBase::threshold, osl::checkmate::DfpnPathRecord::twin_list, osl::WHITE, and osl::checkmate::Dfpn::NodeBase::white_stand.

Referenced by osl::annotate::Analyzer::isCheckmate().

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

Definition at line 155 of file dfpn.h.

References node_count.

Referenced by osl::checkmate::DualDfpn::findProof(), and osl::annotate::Analyzer::isCheckmate().

template<osl::Player P, bool UseTable>

void osl::checkmate::Dfpn::proofOracleAttack | ( | const ProofOracle & | oracle,
|  | int | proof_limit
| ) |  |

Definition at line 2786 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::checkmate::DfpnRecord::disproof(), osl::checkmate::FixedDepthSearcher::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::eval::max(), osl::checkmate::Dfpn::NodeBase::moved, osl::checkmate::Dfpn::Node::moves, 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::DfpnRecord::proof(), osl::checkmate::DfpnRecordBase::proof_disproof, osl::Move::ptype(), osl::PathEncoding::pushMove(), osl::checkmate::Dfpn::NodeBase::record, osl::checkmate::Dfpn::Node::setCheckmateAttack(), osl::checkmate::Dfpn::Node::setLoopDetection(), osl::checkmate::DfpnRecord::setProofPieces(), osl::checkmate::Dfpn::ProofOracle::traceable(), osl::WHITE, osl::checkmate::Dfpn::ProofOracle::white_stand, and osl::checkmate::Dfpn::NodeBase::white_stand.

template<osl::Player P, bool UseTable>

void osl::checkmate::Dfpn::proofOracleDefense | ( | const ProofOracle & | oracle,
|  | int | proof_limit
| ) |  |

Definition at line 2912 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::checkmate::FixedDepthSearcher::hasEscapeByMove(), osl::checkmate::Dfpn::NodeBase::hash_key, osl::checkmate::Dfpn::Node::hashes, osl::checkmate::ProofDisproof::isFinal(), osl::checkmate::Dfpn::Node::isLoop(), osl::checkmate::ProofDisproof::isLoopDetection(), osl::Move::isNormal(), osl::checkmate::DfpnRecordBase::last_move, osl::checkmate::DfpnRecordBase::last_to, osl::checkmate::ProofPieces::leaf(), osl::eval::max(), osl::eval::min(), osl::checkmate::DfpnRecordBase::min_pdp, osl::checkmate::Dfpn::NodeBase::moved, osl::checkmate::Dfpn::Node::moves, 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_record, osl::checkmate::DfpnRecord::proof(), osl::checkmate::DfpnRecordBase::proof_disproof, ProofSimulationTolerance, osl::checkmate::Dfpn::NodeBase::record, osl::checkmate::Dfpn::Node::setCheckmateChildInDefense(), osl::checkmate::Dfpn::Node::setCheckmateDefense(), osl::checkmate::Dfpn::Node::setLoopDetection(), osl::checkmate::DfpnRecord::setProofPieces(), osl::checkmate::DfpnRecordBase::solved, osl::Square::square, osl::checkmate::DfpnRecord::stands, osl::Move::to(), osl::checkmate::Dfpn::ProofOracle::traceable(), osl::WHITE, and osl::checkmate::Dfpn::NodeBase::white_stand.

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

Definition at line 134 of file dfpn.h.

References blocking_verify.

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

Definition at line 1350 of file dfpn.cc.

References osl::BLACK, osl::checkmate::ProofDisproof::NoCheckmate(), result, osl::checkmate::DfpnPathRecord::visiting, and osl::WHITE.

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

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

Definition at line 135 of file dfpn.h.

References parallel_shared, and thread_id.

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

Definition at line 1335 of file dfpn.cc.

References EnableGCDepth, GrowthLimitInfty, and osl::checkmate::DfpnTable::setMaxDepth().

Referenced by osl::annotate::Analyzer::isCheckmate(), osl::checkmate::DualDfpn::prepareDfpn(), and osl::checkmate::DualDfpn::prepareDfpnSmall().

template<Player Turn>

static void osl::checkmate::Dfpn::sort | ( | const NumEffectState & | ,
|  | DfpnMoveVector & |
| ) |  |
| static

template<osl::Player Turn>

void osl::checkmate::Dfpn::sort | ( | const NumEffectState & | state,
|  | DfpnMoveVector & | moves
| ) |  |

Definition at line 1594 of file dfpn.cc.

References osl::PTYPE_EMPTY.

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 1432 of file dfpn.cc.

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 1440 of file dfpn.cc.

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

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
| ) |  |

Definition at line 1452 of file dfpn.cc.

References osl::checkmate::DfpnRecordBase::best_move, osl::BLACK, osl::checkmate::Dfpn::Node::clear(), osl::find(), osl::checkmate::Dfpn::NodeBase::hash_key, osl::checkmate::ProofDisproof::isFinal(), osl::checkmate::DfpnRecordBase::last_move, osl::checkmate::ProofDisproof::LoopDetection(), osl::checkmate::Dfpn::NodeBase::moved, osl::checkmate::Dfpn::NodeBase::path, osl::checkmate::Dfpn::NodeBase::path_record, osl::checkmate::DfpnRecordBase::proof_disproof, ProofSimulationTolerance, osl::checkmate::Dfpn::NodeBase::record, ROOT_DISPROOF_TOL, root_proof_simulation_limit, ROOT_PROOF_TOL, osl::checkmate::Dfpn::NodeBase::threshold, osl::checkmate::DfpnRecordBase::tried_oracle, osl::checkmate::DfpnPathRecord::twin_list, osl::WHITE, and osl::checkmate::Dfpn::NodeBase::white_stand.

## Member Data Documentation

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

Definition at line 128 of file dfpn.h.

Referenced by setBlockingVerify().

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

Definition at line 124 of file dfpn.h.

Referenced by nodeCount().

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

Definition at line 125 of file dfpn.h.

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

Definition at line 126 of file dfpn.h.

Referenced by setParallel().

boost::scoped_ptr<DfpnPathTable> osl::checkmate::Dfpn::path_table
| private

Definition at line 123 of file dfpn.h.

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

Definition at line 118 of file dfpn.h.

Referenced by currentTable().

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

Definition at line 127 of file dfpn.h.

Referenced by setParallel().

boost::scoped_ptr<Tree> osl::checkmate::Dfpn::tree
| private

Definition at line 121 of file dfpn.h.

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

- dfpn.h
- dfpn.cc