詰探索局面表 -- 並列でも共有する部分 [詳細]
#include <dfpn.h>
構成 | |
| struct | List |
| struct | Table |
Public メソッド | |
| 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 |
| 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 | testTable () |
| size_t | smallTreeGC (size_t threshold=10) |
Private メソッド | |
| template<Player Attack> | |
| List * | find (const HashKey &key, int subindex) |
| template<Player Attack> | |
| const List * | find (const HashKey &key, int subindex) const |
Static Private メソッド | |
| static int | keyToIndex (const HashKey &key) |
Private 変数 | |
| boost::scoped_array< Table > | table |
| size_t | total_size |
Static Private 変数 | |
| static const int | DIVSIZE = 1 |
詰探索局面表 -- 並列でも共有する部分
| osl::checkmate::DfpnTable::DfpnTable | ( | Player | attack | ) |
参照先 setAttack().
| void osl::checkmate::DfpnTable::addDag | ( | const HashKey & | key, | |
| DfpnRecord & | value | |||
| ) |
| osl::Player osl::checkmate::DfpnTable::attack | ( | ) | const |
| void osl::checkmate::DfpnTable::clear | ( | ) |
参照先 DIVSIZE, SCOPED_LOCK, table, と total_size.
| const osl::checkmate::DfpnTable::List * osl::checkmate::DfpnTable::find | ( | const HashKey & | key, | |
| int | subindex | |||
| ) | const [inline, private] |
| osl::checkmate::DfpnTable::List * osl::checkmate::DfpnTable::find | ( | const HashKey & | key, | |
| int | subindex | |||
| ) | [inline, private] |
| const DfpnRecord osl::checkmate::DfpnTable::findProofOracle | ( | const HashKey & | key, | |
| PieceStand | white, | |||
| Move | last_move = Move() | |||
| ) | const |
| const osl::checkmate::DfpnRecord osl::checkmate::DfpnTable::findProofOracle | ( | const HashKey & | key, | |
| PieceStand | white, | |||
| Move | last_move = Move() | |||
| ) | const [inline] |
| static int osl::checkmate::DfpnTable::keyToIndex | ( | const HashKey & | key | ) | [inline, static, private] |
参照先 DIVSIZE.
参照元 addDag(), findProofOracle(), leaveWorking(), probe(), setWorking(), showProofOracles(), と store().
| void osl::checkmate::DfpnTable::leaveWorking | ( | const HashKey & | key, | |
| int | thread_id | |||
| ) |
| 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 [inline] |
参照先 keyToIndex(), osl::checkmate::DfpnTable::List::probe(), と SCOPED_LOCK.
参照元 osl::checkmate::Dfpn::analyze(), analyzeCheckmate(), osl::checkmate::Dfpn::attack(), osl::checkmate::Dfpn::defense(), osl::checkmate::Dfpn::findDagSource(), osl::checkmate::Dfpn::proofOracleAttack(), osl::checkmate::Dfpn::proofOracleDefense(), と osl::checkmate::Dfpn::tryProofMain().
| void osl::checkmate::DfpnTable::setAttack | ( | Player | a | ) |
参照先 attack(), DIVSIZE, size(), と table.
参照元 DfpnTable(), と osl::checkmate::DualDfpn::Local::Local().
| void osl::checkmate::DfpnTable::setWorking | ( | const HashKey & | key, | |
| const DfpnRecord & | value, | |||
| int | thread_id | |||
| ) |
| void osl::checkmate::DfpnTable::showProofOracles | ( | const HashKey & | key, | |
| PieceStand | white, | |||
| Move | last_move = Move() | |||
| ) | const [inline] |
| void osl::checkmate::DfpnTable::showStats | ( | ) | const |
| size_t osl::checkmate::DfpnTable::size | ( | ) | const |
| size_t osl::checkmate::DfpnTable::smallTreeGC | ( | size_t | threshold = 10 |
) |
参照先 DIVSIZE, SCOPED_LOCK, table, と total_size.
| void osl::checkmate::DfpnTable::store | ( | const HashKey & | key, | |
| DfpnRecord & | value, | |||
| int | leaving_thread_id = -1 | |||
| ) |
参照先 osl::BLACK, osl::checkmate::ProofDisproof::isLoopDetection(), keyToIndex(), osl::checkmate::DfpnRecordBase::proof_disproof, SCOPED_LOCK, osl::checkmate::DfpnRecord::stands, osl::checkmate::DfpnTable::List::store(), table, と total_size.
参照元 osl::checkmate::Dfpn::attack(), osl::checkmate::Dfpn::defense(), osl::checkmate::Dfpn::proofOracleAttack(), osl::checkmate::Dfpn::proofOracleDefense(), osl::checkmate::Dfpn::setIllegal(), と osl::checkmate::Dfpn::tryProofMain().
| void osl::checkmate::DfpnTable::testTable | ( | ) |
参照先 DIVSIZE, SCOPED_LOCK, と table.
| size_t osl::checkmate::DfpnTable::totalSize | ( | ) | [inline] |
参照先 total_size.
const int osl::checkmate::DfpnTable::DIVSIZE = 1 [static, private] |
参照元 clear(), keyToIndex(), setAttack(), showStats(), smallTreeGC(), と testTable().
boost::scoped_array<Table> osl::checkmate::DfpnTable::table [private] |
参照元 addDag(), attack(), clear(), find(), leaveWorking(), setAttack(), setWorking(), showStats(), smallTreeGC(), store(), と testTable().
size_t osl::checkmate::DfpnTable::total_size [private] |
参照元 clear(), setWorking(), showStats(), size(), smallTreeGC(), store(), と totalSize().
1.6.3