osl::checkmate::DfpnTable Class Reference

- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
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). More...
size_t | growthLimit () const
bool | runGC ()
template<osl::Player Attack>
osl::checkmate::DfpnTable::List * | find (const HashKey &key, int subindex)

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

## Detailed Description

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

Definition at line 34 of file dfpn.h.

## Constructor & Destructor Documentation

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

Definition at line 933 of file dfpn.cc.

References setAttack().

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

Definition at line 942 of file dfpn.cc.

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

Definition at line 947 of file dfpn.cc.

## Member Function Documentation

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

Definition at line 1137 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

Definition at line 989 of file dfpn.cc.

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

Definition at line 1196 of file dfpn.cc.

References SCOPED_LOCK.

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

Definition at line 1100 of file dfpn.cc.

References osl::checkmate::DfpnTable::List::estimateNodeCount(), osl::find(), and SCOPED_LOCK.

template<Player Attack>

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

template<Player Attack>

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

Definition at line 1024 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 1016 of file dfpn.cc.

References osl::find().

template<osl::Player Attack>

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

Definition at line 997 of file dfpn.cc.

References osl::find().

template<Player Attack>

const osl::checkmate::DfpnRecord osl::checkmate::DfpnTable::findProofOracle | ( | const HashKey & | key,
|  | PieceStand | white,
|  | Move | last_move = `Move()`
| ) |  | const

Definition at line 1075 of file dfpn.cc.

References osl::BLACK.

const osl::checkmate::DfpnRecord osl::checkmate::DfpnTable::findProofOracle | ( | const HashKey & | key,
|  | PieceStand | white,
|  | Move | last_move = `Move()`
| ) |  | const

Definition at line 1063 of file dfpn.cc.

References osl::checkmate::DfpnTable::List::findProofOracle(), and SCOPED_LOCK.

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

Definition at line 78 of file dfpn.h.

References growth_limit.

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

Definition at line 95 of file dfpn.h.

References DIVSIZE.

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

Definition at line 1179 of file dfpn.cc.

References osl::checkmate::DfpnTable::List::leaveWorking(), and SCOPED_LOCK.

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

Definition at line 975 of file dfpn.cc.

Referenced by osl::checkmate::ProofTreeDepthDfpn::Table::maxDepth().

template<Player Attack>

const osl::checkmate::DfpnRecord osl::checkmate::DfpnTable::probe | ( | const HashKey & | key,
|  | PieceStand | white
| ) |  | const

Definition at line 1054 of file dfpn.cc.

References osl::BLACK.

Referenced by analyzeCheckmate().

const osl::checkmate::DfpnRecord osl::checkmate::DfpnTable::probe | ( | const HashKey & | key,
|  | PieceStand | white
| ) |  | const

Definition at line 1041 of file dfpn.cc.

References osl::checkmate::DfpnTable::List::probe(), and SCOPED_LOCK.

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

Definition at line 1256 of file dfpn.cc.

References osl::OslConfig::memoryUseRatio().

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

Definition at line 981 of file dfpn.cc.

Referenced by DfpnTable(), and osl::checkmate::DualDfpn::Local::Local().

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 952 of file dfpn.cc.

Referenced by search().

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

Definition at line 970 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 1156 of file dfpn.cc.

References osl::BLACK, SCOPED_LOCK, osl::checkmate::DfpnTable::List::setWorking(), and osl::checkmate::DfpnRecord::stands.

template<osl::Player Attack>

void osl::checkmate::DfpnTable::showProofOracles | ( | const HashKey & | key,
|  | PieceStand | white,
|  | Move | last_move = `Move()`
| ) |  | const

Definition at line 1086 of file dfpn.cc.

References SCOPED_LOCK, and osl::checkmate::DfpnTable::List::showProofOracles().

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

Definition at line 960 of file dfpn.cc.

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

Definition at line 1290 of file dfpn.cc.

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

Definition at line 1230 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 1113 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 1208 of file dfpn.cc.

References SCOPED_LOCK.

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

Definition at line 68 of file dfpn.h.

References total_size.

## Member Data Documentation

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

Definition at line 40 of file dfpn.h.

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

Definition at line 93 of file dfpn.h.

Referenced by keyToIndex().

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

Definition at line 41 of file dfpn.h.

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

Definition at line 41 of file dfpn.h.

Referenced by growthLimit().

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

Definition at line 37 of file dfpn.h.

Referenced by osl::checkmate::DualDfpn::table().

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

Definition at line 39 of file dfpn.h.

Referenced by totalSize().

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

- dfpn.h
- dfpn.cc