構成 | Public メソッド | Private メソッド | Static Private メソッド | Private 変数 | Static Private 変数

クラス osl::checkmate::DfpnTable

詰探索局面表 -- 並列でも共有する部分 [詳細]

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

Private メソッド

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 メソッド

static int keyToIndex (const HashKey &key)

Private 変数

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

Static Private 変数

static const int DIVSIZE = 1

説明

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

dfpn.h29 行で定義されています。


コンストラクタとデストラクタ

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

dfpn.cc893 行で定義されています。

参照先 setAttack().

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

dfpn.cc902 行で定義されています。

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

dfpn.cc907 行で定義されています。


関数

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

dfpn.cc950 行で定義されています。

参照先 table.

参照元 osl::checkmate::Dfpn::analyze(), find(), setAttack(), と osl::checkmate::Dfpn::setIllegal().

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

dfpn.cc1157 行で定義されています。

参照先 DIVSIZE, SCOPED_LOCK, table, と total_size.

size_t osl::checkmate::DfpnTable::estimateNodeCount ( const HashKey &  key,
bool  dominance_max = false 
) const

dfpn.cc1061 行で定義されています。

参照先 osl::checkmate::DfpnTable::List::estimateNodeCount(), find(), keyToIndex(), と SCOPED_LOCK.

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

dfpn.cc958 行で定義されています。

参照先 attack(), と table.

参照元 estimateNodeCount(), と find().

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

dfpn.cc977 行で定義されています。

参照先 attack(), find(), と table.

template<osl::Player Attack>
const osl::checkmate::DfpnRecord osl::checkmate::DfpnTable::findProofOracle ( const HashKey &  key,
PieceStand  white,
Move  last_move = Move() 
) const
const DfpnRecord osl::checkmate::DfpnTable::findProofOracle ( const HashKey &  key,
PieceStand  white,
Move  last_move = Move() 
) const
size_t osl::checkmate::DfpnTable::growthLimit (  )  const [inline]

dfpn.h73 行で定義されています。

参照先 growth_limit.

参照元 osl::checkmate::Dfpn::attack(), と osl::checkmate::Dfpn::setTable().

static int osl::checkmate::DfpnTable::keyToIndex ( const HashKey &  key  )  [inline, static, private]

dfpn.h90 行で定義されています。

参照先 DIVSIZE.

参照元 addDag(), estimateNodeCount(), findProofOracle(), leaveWorking(), probe(), setWorking(), showProofOracles(), と store().

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

dfpn.cc936 行で定義されています。

参照先 dfpn_max_depth.

参照元 osl::checkmate::ProofTreeDepthDfpn::Table::maxDepth().

const DfpnRecord osl::checkmate::DfpnTable::probe ( const HashKey &  key,
PieceStand  white 
) const
template<osl::Player Attack>
const osl::checkmate::DfpnRecord osl::checkmate::DfpnTable::probe ( const HashKey &  key,
PieceStand  white 
) const
bool osl::checkmate::DfpnTable::runGC (  ) 
void osl::checkmate::DfpnTable::setAttack ( Player  a  ) 

dfpn.cc942 行で定義されています。

参照先 attack(), DIVSIZE, size(), と table.

参照元 DfpnTable().

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.

dfpn.cc912 行で定義されています。

参照先 DIVSIZE, growth_limit, と table.

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

dfpn.cc931 行で定義されています。

参照先 dfpn_max_depth.

参照元 osl::checkmate::Dfpn::setTable().

void osl::checkmate::DfpnTable::setWorking ( const HashKey &  key,
const DfpnRecord value,
int  thread_id 
)
template<osl::Player Attack>
void osl::checkmate::DfpnTable::showProofOracles ( const HashKey &  key,
PieceStand  white,
Move  last_move = Move() 
) const
void osl::checkmate::DfpnTable::showStats (  )  const

dfpn.cc921 行で定義されています。

参照先 DIVSIZE, size(), table, と total_size.

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

dfpn.cc1251 行で定義されています。

参照先 total_size.

参照元 setAttack(), と showStats().

size_t osl::checkmate::DfpnTable::smallTreeGC ( size_t  threshold = 10  ) 

dfpn.cc1191 行で定義されています。

参照先 DIVSIZE, SCOPED_LOCK, table, と total_size.

参照元 runGC().

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

dfpn.cc1169 行で定義されています。

参照先 DIVSIZE, SCOPED_LOCK, と table.

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

dfpn.h63 行で定義されています。

参照先 total_size.


変数

dfpn.h35 行で定義されています。

参照元 maxDepth(), と setMaxDepth().

const int osl::checkmate::DfpnTable::DIVSIZE = 1 [static, private]

dfpn.h88 行で定義されています。

参照元 clear(), keyToIndex(), setAttack(), setGrowthLimit(), showStats(), smallTreeGC(), と testTable().

dfpn.h36 行で定義されています。

参照元 runGC().

dfpn.h36 行で定義されています。

参照元 growthLimit(), runGC(), と setGrowthLimit().

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

dfpn.h34 行で定義されています。

参照元 clear(), runGC(), setWorking(), showStats(), size(), smallTreeGC(), store(), と totalSize().


このクラスの説明は次のファイルから生成されました:
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義