詰探索局面表 -- 並列でも共有する部分 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 |
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 Member Functions | |
template<Player Attack> | |
List * | find (const HashKey &key, int subindex) |
template<Player Attack> | |
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 |
Static Private Attributes | |
static const int | DIVSIZE = 1 |
osl::checkmate::DfpnTable::DfpnTable | ( | Player | attack | ) |
Definition at line 809 of file dfpn.cc.
References setAttack().
void osl::checkmate::DfpnTable::addDag | ( | const HashKey & | key, |
DfpnRecord & | value | ||
) |
Definition at line 970 of file dfpn.cc.
References osl::checkmate::DfpnTable::List::addDag(), osl::BLACK, osl::checkmate::ProofDisproof::isLoopDetection(), osl::checkmate::DfpnRecordBase::proof_disproof, SCOPED_LOCK, and osl::checkmate::DfpnRecord::stands.
osl::Player osl::checkmate::DfpnTable::attack | ( | ) | const |
void osl::checkmate::DfpnTable::clear | ( | ) |
Definition at line 1029 of file dfpn.cc.
References SCOPED_LOCK.
osl::checkmate::DfpnTable::List * osl::checkmate::DfpnTable::find | ( | const HashKey & | key, |
int | subindex | ||
) | [private] |
Definition at line 851 of file dfpn.cc.
References osl::find().
const osl::checkmate::DfpnTable::List * osl::checkmate::DfpnTable::find | ( | const HashKey & | key, |
int | subindex | ||
) | const [private] |
Definition at line 869 of file dfpn.cc.
References osl::find().
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 |
Definition at line 909 of file dfpn.cc.
References osl::checkmate::DfpnTable::List::findProofOracle(), and SCOPED_LOCK.
static int osl::checkmate::DfpnTable::keyToIndex | ( | const HashKey & | key | ) | [inline, static, private] |
void osl::checkmate::DfpnTable::leaveWorking | ( | const HashKey & | key, |
int | thread_id | ||
) |
Definition at line 1012 of file dfpn.cc.
References osl::checkmate::DfpnTable::List::leaveWorking(), and SCOPED_LOCK.
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 887 of file dfpn.cc.
References osl::checkmate::DfpnTable::List::probe(), and SCOPED_LOCK.
Referenced by analyzeCheckmate().
void osl::checkmate::DfpnTable::setAttack | ( | Player | a | ) |
Definition at line 835 of file dfpn.cc.
Referenced by DfpnTable(), and osl::checkmate::DualDfpn::Local::Local().
void osl::checkmate::DfpnTable::setWorking | ( | const HashKey & | key, |
const DfpnRecord & | value, | ||
int | thread_id | ||
) |
Definition at line 989 of file dfpn.cc.
References osl::BLACK, SCOPED_LOCK, osl::checkmate::DfpnTable::List::setWorking(), and osl::checkmate::DfpnRecord::stands.
void osl::checkmate::DfpnTable::showProofOracles | ( | const HashKey & | key, |
PieceStand | white, | ||
Move | last_move = Move() |
||
) | const |
Definition at line 932 of file dfpn.cc.
References SCOPED_LOCK, and osl::checkmate::DfpnTable::List::showProofOracles().
size_t osl::checkmate::DfpnTable::smallTreeGC | ( | size_t | threshold = 10 | ) |
Definition at line 1063 of file dfpn.cc.
References SCOPED_LOCK.
void osl::checkmate::DfpnTable::store | ( | const HashKey & | key, |
DfpnRecord & | value, | ||
int | leaving_thread_id = -1 |
||
) |
Definition at line 946 of file dfpn.cc.
References osl::BLACK, osl::checkmate::ProofDisproof::isLoopDetection(), osl::checkmate::DfpnRecordBase::proof_disproof, SCOPED_LOCK, osl::checkmate::DfpnRecord::stands, and osl::checkmate::DfpnTable::List::store().
void osl::checkmate::DfpnTable::testTable | ( | ) |
Definition at line 1041 of file dfpn.cc.
References SCOPED_LOCK.
size_t osl::checkmate::DfpnTable::totalSize | ( | ) | [inline] |
Definition at line 75 of file dfpn.h.
References total_size.
const int osl::checkmate::DfpnTable::DIVSIZE = 1 [static, private] |
Definition at line 93 of file dfpn.h.
Referenced by keyToIndex().
boost::scoped_array<Table> osl::checkmate::DfpnTable::table [private] |
Definition at line 47 of file dfpn.h.
Referenced by osl::checkmate::DualDfpn::table().
size_t osl::checkmate::DfpnTable::total_size [private] |
Definition at line 49 of file dfpn.h.
Referenced by totalSize().