|
My Project
|
詰探索局面表 – 並列でも共有する部分 More...
#include <dfpn.h>
Classes | |
| struct | List |
| struct | Table |
Public Member Functions | |
| DfpnTable (Player attack) | |
| DfpnTable () | |
| ~DfpnTable () | |
| template<Player Attack> | |
| const DfpnRecord | probe (const HashKey &key, PieceStand white) const |
| const DfpnRecord | probe (const HashKey &key, PieceStand white) const |
| size_t | estimateNodeCount (const HashKey &key, bool dominance_max=false) const |
| template<Player Attack> | |
| const DfpnRecord | findProofOracle (const HashKey &key, PieceStand white, Move last_move=Move()) const |
| const DfpnRecord | findProofOracle (const HashKey &key, PieceStand white, Move last_move=Move()) const |
| template<Player Attack> | |
| void | showProofOracles (const HashKey &key, PieceStand white, Move last_move=Move()) const |
| size_t | size () const |
| void | showStats () const |
| void | setAttack (Player) |
| void | setWorking (const HashKey &key, const DfpnRecord &value, int thread_id) |
| void | leaveWorking (const HashKey &key, int thread_id) |
| void | store (const HashKey &key, DfpnRecord &value, int leaving_thread_id=-1) |
| void | addDag (const HashKey &key, DfpnRecord &value) |
| void | clear () |
| size_t | totalSize () |
| Player | attack () const |
| void | setMaxDepth (int) |
| int | maxDepth () const |
| void | testTable () |
| size_t | smallTreeGC (size_t threshold=10) |
| void | setGrowthLimit (size_t new_limit) |
| set the maximum size of table (otherwise infinity). | |
| size_t | growthLimit () const |
| bool | runGC () |
| template<osl::Player Attack> | |
| osl::checkmate::DfpnTable::List * | find (const HashKey &key, int subindex) |
| template<osl::Player Attack> | |
| const osl::checkmate::DfpnTable::List * | find (const HashKey &key, int subindex) const |
| template<osl::Player Attack> | |
| const osl::checkmate::DfpnRecord | probe (const HashKey &key, PieceStand white_stand) const |
| template<osl::Player Attack> | |
| const osl::checkmate::DfpnRecord | findProofOracle (const HashKey &key, PieceStand white_stand, Move last_move) const |
Private Member Functions | |
| template<Player Attack> | |
| List * | find (const HashKey &key, int subindex) |
| template<Player Attack> | |
| const List * | find (const HashKey &key, int subindex) const |
| const List * | find (const HashKey &key, int subindex) const |
Static Private Member Functions | |
| static int | keyToIndex (const HashKey &key) |
Private Attributes | |
| boost::scoped_array< Table > | table |
| size_t | total_size |
| int | dfpn_max_depth |
| size_t | growth_limit |
| size_t | gc_threshold |
Static Private Attributes | |
| static const int | DIVSIZE =1 |
| osl::checkmate::DfpnTable::DfpnTable | ( | Player | attack | ) |
Definition at line 892 of file dfpn.cc.
References attack(), and setAttack().
| void osl::checkmate::DfpnTable::addDag | ( | const HashKey & | key, |
| DfpnRecord & | value | ||
| ) |
Definition at line 1097 of file dfpn.cc.
References osl::checkmate::DfpnTable::List::addDag(), osl::BLACK, osl::hash::HashKey128::blackStand(), osl::hash::HashKey128::boardKey(), osl::checkmate::ProofDisproof::isLoopDetection(), osl::checkmate::DfpnRecordBase::proof_disproof, SCOPED_LOCK, and osl::checkmate::DfpnRecord::stands.
Referenced by osl::checkmate::Dfpn::findDagSource().
| osl::Player osl::checkmate::DfpnTable::attack | ( | ) | const |
Definition at line 949 of file dfpn.cc.
References attack().
Referenced by osl::checkmate::Dfpn::analyze(), attack(), DfpnTable(), and osl::checkmate::Dfpn::setIllegal().
| void osl::checkmate::DfpnTable::clear | ( | ) |
Definition at line 1156 of file dfpn.cc.
References clear(), and SCOPED_LOCK.
Referenced by clear().
| size_t osl::checkmate::DfpnTable::estimateNodeCount | ( | const HashKey & | key, |
| bool | dominance_max = false |
||
| ) | const |
Definition at line 1060 of file dfpn.cc.
References osl::checkmate::DfpnTable::List::estimateNodeCount(), and SCOPED_LOCK.
| osl::checkmate::DfpnTable::List * osl::checkmate::DfpnTable::find | ( | const HashKey & | key, |
| int | subindex | ||
| ) |
Definition at line 957 of file dfpn.cc.
References osl::hash::HashKey128::boardKey(), and find().
| const osl::checkmate::DfpnTable::List * osl::checkmate::DfpnTable::find | ( | const HashKey & | key, |
| int | subindex | ||
| ) | const |
|
private |
|
private |
Definition at line 984 of file dfpn.cc.
References osl::hash::HashKey128::boardKey(), and find().
| const DfpnRecord osl::checkmate::DfpnTable::findProofOracle | ( | const HashKey & | key, |
| PieceStand | white, | ||
| Move | last_move = Move() |
||
| ) | const |
Referenced by osl::checkmate::Dfpn::proofOracleAttack().
| const osl::checkmate::DfpnRecord osl::checkmate::DfpnTable::findProofOracle | ( | const HashKey & | key, |
| PieceStand | white, | ||
| Move | last_move = Move() |
||
| ) | const |
Definition at line 1035 of file dfpn.cc.
References osl::BLACK.
| const osl::checkmate::DfpnRecord osl::checkmate::DfpnTable::findProofOracle | ( | const HashKey & | key, |
| PieceStand | white_stand, | ||
| Move | last_move | ||
| ) | const |
Definition at line 1023 of file dfpn.cc.
References osl::hash::HashKey128::blackStand(), osl::checkmate::DfpnTable::List::findProofOracle(), and SCOPED_LOCK.
|
inline |
Definition at line 73 of file dfpn.h.
References growth_limit.
Referenced by osl::checkmate::Dfpn::attack(), and osl::checkmate::Dfpn::setTable().
|
inlinestaticprivate |
Definition at line 90 of file dfpn.h.
References DIVSIZE, and osl::hash::HashKey128::signature().
| void osl::checkmate::DfpnTable::leaveWorking | ( | const HashKey & | key, |
| int | thread_id | ||
| ) |
Definition at line 1139 of file dfpn.cc.
References osl::hash::HashKey128::blackStand(), osl::hash::HashKey128::boardKey(), osl::checkmate::DfpnTable::List::leaveWorking(), and SCOPED_LOCK.
Referenced by osl::checkmate::Dfpn::attack(), osl::checkmate::Dfpn::defense(), osl::checkmate::Dfpn::hasCheckmateMove(), and osl::checkmate::Dfpn::tryProofMain().
| int osl::checkmate::DfpnTable::maxDepth | ( | ) | const |
Definition at line 935 of file dfpn.cc.
Referenced by osl::checkmate::ProofTreeDepthDfpn::andNode(), osl::checkmate::ProofTreeDepthDfpn::Table::maxDepth(), osl::checkmate::ProofTreeDepthDfpn::orNode(), and osl::checkmate::ProofTreeDepthDfpn::retrievePV().
| const DfpnRecord osl::checkmate::DfpnTable::probe | ( | const HashKey & | key, |
| PieceStand | white | ||
| ) | const |
| const osl::checkmate::DfpnRecord osl::checkmate::DfpnTable::probe | ( | const HashKey & | key, |
| PieceStand | white | ||
| ) | const |
Definition at line 1014 of file dfpn.cc.
References osl::BLACK.
| const osl::checkmate::DfpnRecord osl::checkmate::DfpnTable::probe | ( | const HashKey & | key, |
| PieceStand | white_stand | ||
| ) | const |
Definition at line 1001 of file dfpn.cc.
References osl::hash::HashKey128::blackStand(), osl::checkmate::DfpnTable::List::probe(), and SCOPED_LOCK.
| bool osl::checkmate::DfpnTable::runGC | ( | ) |
Definition at line 1216 of file dfpn.cc.
References osl::OslConfig::memoryUseRatio().
Referenced by osl::checkmate::Dfpn::attack().
| void osl::checkmate::DfpnTable::setAttack | ( | Player | a | ) |
Definition at line 941 of file dfpn.cc.
Referenced by DfpnTable().
| void osl::checkmate::DfpnTable::setGrowthLimit | ( | size_t | new_limit | ) |
| void osl::checkmate::DfpnTable::setMaxDepth | ( | int | new_depth | ) |
Definition at line 930 of file dfpn.cc.
Referenced by osl::checkmate::Dfpn::setTable().
| void osl::checkmate::DfpnTable::setWorking | ( | const HashKey & | key, |
| const DfpnRecord & | value, | ||
| int | thread_id | ||
| ) |
Definition at line 1116 of file dfpn.cc.
References osl::BLACK, osl::hash::HashKey128::blackStand(), osl::hash::HashKey128::boardKey(), SCOPED_LOCK, osl::checkmate::DfpnTable::List::setWorking(), and osl::checkmate::DfpnRecord::stands.
Referenced by osl::checkmate::Dfpn::attack(), and osl::checkmate::Dfpn::defense().
| void osl::checkmate::DfpnTable::showProofOracles | ( | const HashKey & | key, |
| PieceStand | white, | ||
| Move | last_move = Move() |
||
| ) | const |
Definition at line 1046 of file dfpn.cc.
References SCOPED_LOCK, and osl::checkmate::DfpnTable::List::showProofOracles().
Referenced by osl::checkmate::Dfpn::proofOracleAttack().
| size_t osl::checkmate::DfpnTable::smallTreeGC | ( | size_t | threshold = 10 | ) |
Definition at line 1190 of file dfpn.cc.
References SCOPED_LOCK, smallTreeGC(), and threshold.
Referenced by smallTreeGC().
| void osl::checkmate::DfpnTable::store | ( | const HashKey & | key, |
| DfpnRecord & | value, | ||
| int | leaving_thread_id = -1 |
||
| ) |
Definition at line 1073 of file dfpn.cc.
References osl::BLACK, osl::hash::HashKey128::blackStand(), osl::hash::HashKey128::boardKey(), osl::checkmate::ProofDisproof::isLoopDetection(), osl::checkmate::DfpnRecordBase::proof_disproof, SCOPED_LOCK, osl::checkmate::DfpnRecord::stands, and osl::checkmate::DfpnTable::List::store().
Referenced by osl::checkmate::ProofTreeDepthDfpn::andNode(), osl::checkmate::Dfpn::attack(), osl::checkmate::Dfpn::defense(), osl::checkmate::ProofTreeDepthDfpn::orNode(), osl::checkmate::Dfpn::proofOracleAttack(), osl::checkmate::Dfpn::proofOracleDefense(), osl::checkmate::Dfpn::setIllegal(), and osl::checkmate::Dfpn::tryProofMain().
| void osl::checkmate::DfpnTable::testTable | ( | ) |
Definition at line 1168 of file dfpn.cc.
References SCOPED_LOCK.
|
inline |
Definition at line 63 of file dfpn.h.
References total_size.
|
staticprivate |
Definition at line 88 of file dfpn.h.
Referenced by keyToIndex().
|
private |
Definition at line 36 of file dfpn.h.
Referenced by growthLimit().
|
private |
Definition at line 33 of file dfpn.h.
Referenced by osl::checkmate::ProofTreeDepthDfpn::orNode(), and osl::checkmate::DualDfpn::table().
|
private |
Definition at line 34 of file dfpn.h.
Referenced by totalSize().