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

詰探索局面表 – 並列でも共有する部分 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::Listfind (const HashKey &key, int subindex)
 
template<osl::Player Attack>
const osl::checkmate::DfpnTable::Listfind (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>
Listfind (const HashKey &key, int subindex)
 
template<Player Attack>
const Listfind (const HashKey &key, int subindex) const
 
const Listfind (const HashKey &key, int subindex) const
 

Static Private Member Functions

static int keyToIndex (const HashKey &key)
 

Private Attributes

boost::scoped_array< Tabletable
 
size_t total_size
 
int dfpn_max_depth
 
size_t growth_limit
 
size_t gc_threshold
 

Static Private Attributes

static const int DIVSIZE =1
 

Detailed Description

詰探索局面表 – 並列でも共有する部分

Definition at line 29 of file dfpn.h.

Constructor & Destructor Documentation

◆ DfpnTable() [1/2]

osl::checkmate::DfpnTable::DfpnTable ( Player  attack)

Definition at line 892 of file dfpn.cc.

References attack(), and setAttack().

◆ DfpnTable() [2/2]

osl::checkmate::DfpnTable::DfpnTable ( )

Definition at line 901 of file dfpn.cc.

◆ ~DfpnTable()

osl::checkmate::DfpnTable::~DfpnTable ( )

Definition at line 906 of file dfpn.cc.

Member Function Documentation

◆ addDag()

void osl::checkmate::DfpnTable::addDag ( const HashKey key,
DfpnRecord value 
)

◆ attack()

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

◆ clear()

void osl::checkmate::DfpnTable::clear ( )

Definition at line 1156 of file dfpn.cc.

References clear(), and SCOPED_LOCK.

Referenced by clear().

◆ estimateNodeCount()

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.

◆ find() [1/5]

template<osl::Player Attack>
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().

◆ find() [2/5]

template<Player Attack>
List * osl::checkmate::DfpnTable::find ( const HashKey key,
int  subindex 
)
private

◆ find() [3/5]

template<osl::Player Attack>
const osl::checkmate::DfpnTable::List * osl::checkmate::DfpnTable::find ( const HashKey key,
int  subindex 
) const

Definition at line 976 of file dfpn.cc.

◆ find() [4/5]

template<Player Attack>
const List * osl::checkmate::DfpnTable::find ( const HashKey key,
int  subindex 
) const
private

◆ find() [5/5]

const osl::checkmate::DfpnTable::List * osl::checkmate::DfpnTable::find ( const HashKey key,
int  subindex 
) const
private

Definition at line 984 of file dfpn.cc.

References osl::hash::HashKey128::boardKey(), and find().

◆ findProofOracle() [1/3]

template<Player Attack>
const DfpnRecord osl::checkmate::DfpnTable::findProofOracle ( const HashKey key,
PieceStand  white,
Move  last_move = Move() 
) const

◆ findProofOracle() [2/3]

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.

◆ findProofOracle() [3/3]

template<osl::Player Attack>
const osl::checkmate::DfpnRecord osl::checkmate::DfpnTable::findProofOracle ( const HashKey key,
PieceStand  white_stand,
Move  last_move 
) const

◆ growthLimit()

size_t osl::checkmate::DfpnTable::growthLimit ( ) const
inline

Definition at line 73 of file dfpn.h.

References growth_limit.

Referenced by osl::checkmate::Dfpn::attack(), and osl::checkmate::Dfpn::setTable().

◆ keyToIndex()

static int osl::checkmate::DfpnTable::keyToIndex ( const HashKey key)
inlinestaticprivate

Definition at line 90 of file dfpn.h.

References DIVSIZE, and osl::hash::HashKey128::signature().

◆ leaveWorking()

void osl::checkmate::DfpnTable::leaveWorking ( const HashKey key,
int  thread_id 
)

◆ maxDepth()

int osl::checkmate::DfpnTable::maxDepth ( ) const

◆ probe() [1/3]

template<Player Attack>
const DfpnRecord osl::checkmate::DfpnTable::probe ( const HashKey key,
PieceStand  white 
) const

◆ probe() [2/3]

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.

◆ probe() [3/3]

template<osl::Player Attack>
const osl::checkmate::DfpnRecord osl::checkmate::DfpnTable::probe ( const HashKey key,
PieceStand  white_stand 
) const

◆ runGC()

bool osl::checkmate::DfpnTable::runGC ( )

Definition at line 1216 of file dfpn.cc.

References osl::OslConfig::memoryUseRatio().

Referenced by osl::checkmate::Dfpn::attack().

◆ setAttack()

void osl::checkmate::DfpnTable::setAttack ( Player  a)

Definition at line 941 of file dfpn.cc.

Referenced by DfpnTable().

◆ setGrowthLimit()

void osl::checkmate::DfpnTable::setGrowthLimit ( size_t  new_limit)

set the maximum size of table (otherwise infinity).

this is one of preconditions to enable GC inside dfpn.

Definition at line 911 of file dfpn.cc.

◆ setMaxDepth()

void osl::checkmate::DfpnTable::setMaxDepth ( int  new_depth)

Definition at line 930 of file dfpn.cc.

Referenced by osl::checkmate::Dfpn::setTable().

◆ setWorking()

void osl::checkmate::DfpnTable::setWorking ( const HashKey key,
const DfpnRecord value,
int  thread_id 
)

◆ showProofOracles()

template<osl::Player Attack>
void osl::checkmate::DfpnTable::showProofOracles ( const HashKey key,
PieceStand  white,
Move  last_move = Move() 
) const

◆ showStats()

void osl::checkmate::DfpnTable::showStats ( ) const

Definition at line 920 of file dfpn.cc.

◆ size()

size_t osl::checkmate::DfpnTable::size ( ) const

Definition at line 1250 of file dfpn.cc.

◆ smallTreeGC()

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

◆ store()

void osl::checkmate::DfpnTable::store ( const HashKey key,
DfpnRecord value,
int  leaving_thread_id = -1 
)

◆ testTable()

void osl::checkmate::DfpnTable::testTable ( )

Definition at line 1168 of file dfpn.cc.

References SCOPED_LOCK.

◆ totalSize()

size_t osl::checkmate::DfpnTable::totalSize ( )
inline

Definition at line 63 of file dfpn.h.

References total_size.

Member Data Documentation

◆ dfpn_max_depth

int osl::checkmate::DfpnTable::dfpn_max_depth
private

Definition at line 35 of file dfpn.h.

◆ DIVSIZE

const int osl::checkmate::DfpnTable::DIVSIZE =1
staticprivate

Definition at line 88 of file dfpn.h.

Referenced by keyToIndex().

◆ gc_threshold

size_t osl::checkmate::DfpnTable::gc_threshold
private

Definition at line 36 of file dfpn.h.

◆ growth_limit

size_t osl::checkmate::DfpnTable::growth_limit
private

Definition at line 36 of file dfpn.h.

Referenced by growthLimit().

◆ table

boost::scoped_array<Table> osl::checkmate::DfpnTable::table
private

◆ total_size

size_t osl::checkmate::DfpnTable::total_size
private

Definition at line 34 of file dfpn.h.

Referenced by totalSize().


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