#include <quiescenceRecord.h>
Public メソッド | |
QuiescenceRecord () | |
QuiescenceRecord (const QuiescenceRecord &src) | |
copy constructor: copy everything except for mutex | |
QuiescenceRecord & | operator= (const QuiescenceRecord &src) |
template<Player Turn> | |
const Position8 & | sendOffPosition (const NumEffectState &state) const |
const Position8 & | sendOffPosition (Player turn, const NumEffectState &state) const |
const King8Info & | king8Info (const NumEffectState &state, const PieceMask &pin) const |
int | checkmateNodesLeft (int max) |
int | threatmateNodesLeft (int max) |
int | checkmateNodes () const |
ޤǤ˵;õΡɿ | |
int | threatmateNodes () const |
void | setVisited (bool value=true) |
bool | isVisited () const |
void | clear () |
void | setStaticValue (StaticValueType type, int value, int depth, const QuiescenceThreat &t1=QuiescenceThreat(), const QuiescenceThreat &t2=QuiescenceThreat()) |
void | setLowerBound (int depth, int bound, Move best_move) |
void | setUpperBound (int depth, int bound) |
void | setHistoryValue (int value) |
void | setHistoryValue (Move best_move, int value) |
void | reserveMoves (size_t new_size) |
void | addKillerMoves (const MoveVector &new_moves) |
void | addKillerMovesReserved (const MoveVector &new_moves) |
template<class MOVE_TYPE> | |
void | addMoves (MOVE_TYPE type, const MoveVector &new_moves) |
StaticValueType | staticValueType () const |
bool | hasStaticValue () const |
int | staticValue () const |
int | staticValueDepth () const |
int | upperDepth () const |
int | lowerDepth () const |
int | upperBound () const |
int | lowerBound () const |
const Move | bestMove () const |
int | moves_size () const |
void | loadMoves (MoveVector &dst) const |
QuiescenceFlags | cacheFlags () const |
void | dump (std::ostream &) const |
Static Public メソッド | |
static const char * | toString (StaticValueType) |
Public 変数 | |
DualThreatmateState | threatmate |
AttackOracleAges | attack_oracle |
oracle | |
AttackOracleAges | threatmate_oracle |
Private メソッド | |
void | makeKing8InfoInLock (const NumEffectState &state, PieceMask pins) const |
void | reserveMovesInLock (size_t new_size) |
void | addMovesReservedInLock (const MoveVector &new_moves) |
void | addMovesReserved (const MoveVector &new_moves) |
void | addMovesInLock (const MoveVector &new_moves) |
void | addMoves (const MoveVector &new_moves) |
quiescenceRecord.h の 148 行で定義されています。
osl::search::QuiescenceRecord::QuiescenceRecord | ( | ) | [inline] |
quiescenceRecord.h の 161 行で定義されています。
osl::search::QuiescenceRecord::QuiescenceRecord | ( | const QuiescenceRecord & | src | ) | [inline] |
const char * osl::search::QuiescenceRecord::toString | ( | StaticValueType | type | ) | [static] |
QuiescenceRecord& osl::search::QuiescenceRecord::operator= | ( | const QuiescenceRecord & | src | ) | [inline] |
const Position8& osl::search::QuiescenceRecord::sendOffPosition | ( | const NumEffectState & | state | ) | const [inline] |
void osl::search::QuiescenceRecord::makeKing8InfoInLock | ( | const NumEffectState & | state, | |
PieceMask | pins | |||
) | const [inline, private] |
int osl::search::QuiescenceRecord::checkmateNodesLeft | ( | int | max | ) | [inline] |
max | recordǻȤäɤΡɿ |
quiescenceRecord.h の 233 行で定義されています。
参照先 osl::search::QuiescenceRecordBase::checkmate_nodes.
参照元 osl::search::AlphaBeta2::alphaBetaSearchRoot(), osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::computeBestMoveOfPlayer(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::searchAllMoves(), osl::search::AlphaBeta2Tree::searchAllMoves(), osl::search::QuiescenceSearch2< EvalT >::searchMain(), osl::search::QuiescenceSearch< EvalT >::searchMain(), osl::search::AlphaBeta2Tree::tryCheckmate(), と osl::search::AlphaBeta2Tree::tryCheckmateAgain().
int osl::search::QuiescenceRecord::threatmateNodesLeft | ( | int | max | ) | [inline] |
max | recordǻȤäɤΡɿ |
quiescenceRecord.h の 250 行で定義されています。
参照先 osl::search::QuiescenceRecordBase::threatmate_nodes.
参照元 osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::searchAllMoves(), osl::search::QuiescenceSearch2< EvalT >::staticValue(), osl::search::QuiescenceSearch< EvalT >::staticValue(), と osl::search::AlphaBeta2Tree::testThreatmate().
int osl::search::QuiescenceRecord::checkmateNodes | ( | ) | const [inline] |
int osl::search::QuiescenceRecord::threatmateNodes | ( | ) | const [inline] |
void osl::search::QuiescenceRecord::setVisited | ( | bool | value = true |
) | [inline] |
bool osl::search::QuiescenceRecord::isVisited | ( | ) | const [inline] |
void osl::search::QuiescenceRecord::clear | ( | ) | [inline] |
quiescenceRecord.h の 274 行で定義されています。
参照先 osl::search::QuiescenceFlags::clear(), osl::search::QuiescenceRecordBase::flags, osl::search::QuiescenceRecordBase::InitialDepth, osl::search::QuiescenceRecordBase::lower_depth, osl::search::QuiescenceRecordBase::move_cache, osl::search::QuiescenceRecordBase::static_value_depth, と osl::search::QuiescenceRecordBase::upper_depth.
void osl::search::QuiescenceRecord::setStaticValue | ( | StaticValueType | type, | |
int | value, | |||
int | depth, | |||
const QuiescenceThreat & | t1 = QuiescenceThreat() , |
|||
const QuiescenceThreat & | t2 = QuiescenceThreat() | |||
) | [inline] |
quiescenceRecord.h の 283 行で定義されています。
参照先 osl::search::QSearchTraits::CheckmateSpecialDepth, osl::search::QSearchTraits::MaxDepth, osl::search::QuiescenceRecordBase::static_value, osl::search::QuiescenceRecordBase::static_value_depth, osl::search::QuiescenceRecordBase::static_value_type, osl::search::QuiescenceRecordBase::threat1, と osl::search::QuiescenceRecordBase::threat2.
参照元 osl::search::QuiescenceSearch2< EvalT >::staticValue(), と osl::search::QuiescenceSearch< EvalT >::staticValue().
void osl::search::QuiescenceRecord::setLowerBound | ( | int | depth, | |
int | bound, | |||
Move | best_move | |||
) | [inline] |
quiescenceRecord.h の 299 行で定義されています。
参照先 osl::search::QSearchTraits::CheckmateSpecialDepth, osl::search::QuiescenceRecordBase::lower_bound, osl::search::QuiescenceRecordBase::lower_depth, と osl::search::QSearchTraits::MaxDepth.
参照元 osl::search::QuiescenceSearch2< EvalT >::examineMoves(), osl::search::QuiescenceSearch< EvalT >::examineMoves(), osl::search::AlphaBeta2Tree::quiesceExp(), osl::search::QuiescenceSearch2< EvalT >::searchMain(), と osl::search::QuiescenceSearch< EvalT >::searchMain().
void osl::search::QuiescenceRecord::setUpperBound | ( | int | depth, | |
int | bound | |||
) | [inline] |
quiescenceRecord.h の 313 行で定義されています。
参照先 osl::search::QSearchTraits::CheckmateSpecialDepth, osl::search::QSearchTraits::MaxDepth, osl::search::QuiescenceRecordBase::upper_bound, と osl::search::QuiescenceRecordBase::upper_depth.
参照元 osl::search::QuiescenceSearch2< EvalT >::searchMain(), と osl::search::QuiescenceSearch< EvalT >::searchMain().
void osl::search::QuiescenceRecord::setHistoryValue | ( | int | value | ) | [inline] |
quiescenceRecord.h の 326 行で定義されています。
参照先 osl::search::QSearchTraits::HistorySpecialDepth, osl::search::QuiescenceRecordBase::lower_bound, osl::search::QuiescenceRecordBase::lower_depth, osl::search::QuiescenceRecordBase::upper_bound, と osl::search::QuiescenceRecordBase::upper_depth.
参照元 setHistoryValue().
void osl::search::QuiescenceRecord::setHistoryValue | ( | Move | best_move, | |
int | value | |||
) | [inline] |
void osl::search::QuiescenceRecord::reserveMovesInLock | ( | size_t | new_size | ) | [inline, private] |
quiescenceRecord.h の 340 行で定義されています。
参照先 osl::search::QuiescenceRecordBase::move_cache.
参照元 addMovesInLock(), と reserveMoves().
void osl::search::QuiescenceRecord::reserveMoves | ( | size_t | new_size | ) | [inline] |
void osl::search::QuiescenceRecord::addMovesReservedInLock | ( | const MoveVector & | new_moves | ) | [inline, private] |
quiescenceRecord.h の 353 行で定義されています。
参照先 osl::search::QuiescenceRecordBase::move_cache.
参照元 addMovesInLock(), と addMovesReserved().
void osl::search::QuiescenceRecord::addMovesReserved | ( | const MoveVector & | new_moves | ) | [inline, private] |
void osl::search::QuiescenceRecord::addMovesInLock | ( | const MoveVector & | new_moves | ) | [inline, private] |
quiescenceRecord.h の 365 行で定義されています。
参照先 addMovesReservedInLock(), と reserveMovesInLock().
参照元 addMoves().
void osl::search::QuiescenceRecord::addMoves | ( | const MoveVector & | new_moves | ) | [inline, private] |
void osl::search::QuiescenceRecord::addKillerMoves | ( | const MoveVector & | new_moves | ) | [inline] |
void osl::search::QuiescenceRecord::addKillerMovesReserved | ( | const MoveVector & | new_moves | ) | [inline] |
quiescenceRecord.h の 382 行で定義されています。
参照先 addMovesReserved(), と osl::search::QuiescenceRecordBase::move_cache.
void osl::search::QuiescenceRecord::addMoves | ( | MOVE_TYPE | type, | |
const MoveVector & | new_moves | |||
) | [inline] |
StaticValueType osl::search::QuiescenceRecord::staticValueType | ( | ) | const [inline] |
bool osl::search::QuiescenceRecord::hasStaticValue | ( | ) | const [inline] |
int osl::search::QuiescenceRecord::staticValue | ( | ) | const [inline] |
int osl::search::QuiescenceRecord::staticValueDepth | ( | ) | const [inline] |
int osl::search::QuiescenceRecord::upperDepth | ( | ) | const [inline] |
int osl::search::QuiescenceRecord::lowerDepth | ( | ) | const [inline] |
quiescenceRecord.h の 407 行で定義されています。
参照先 osl::search::QuiescenceRecordBase::lower_depth.
参照元 osl::search::QuiescenceSearch2< EvalT >::examineMoves(), osl::search::QuiescenceSearch< EvalT >::examineMoves(), osl::search::QuiescenceSearch2< EvalT >::searchMain(), osl::search::QuiescenceSearch< EvalT >::searchMain(), と osl::search::analyzer::DotWriter::showNodeQuiescence().
int osl::search::QuiescenceRecord::upperBound | ( | ) | const [inline] |
int osl::search::QuiescenceRecord::lowerBound | ( | ) | const [inline] |
quiescenceRecord.h の 409 行で定義されています。
参照先 osl::search::QuiescenceRecordBase::lower_bound.
参照元 osl::search::QuiescenceSearch2< EvalT >::examineMoves(), osl::search::QuiescenceSearch< EvalT >::examineMoves(), osl::search::QuiescenceSearch2< EvalT >::searchMain(), osl::search::QuiescenceSearch< EvalT >::searchMain(), と osl::search::analyzer::DotWriter::showNodeQuiescence().
const Move osl::search::QuiescenceRecord::bestMove | ( | ) | const [inline] |
quiescenceRecord.h の 410 行で定義されています。
参照先 osl::search::QuiescenceRecordBase::best_move.
参照元 osl::search::AlphaBeta2::alphaBetaSearchRoot(), osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::computeBestMoveOfPlayer(), osl::search::QuiescenceSearch2< EvalT >::examineMoves(), osl::search::SimpleHashTable::getPV(), osl::search::AlphaBeta2Tree::quiesceRoot(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::searchAllMoves(), osl::search::QuiescenceSearch2< EvalT >::searchMain(), と osl::search::QuiescenceSearch< EvalT >::searchMain().
int osl::search::QuiescenceRecord::moves_size | ( | ) | const [inline] |
quiescenceRecord.h の 411 行で定義されています。
参照先 osl::search::QuiescenceRecordBase::move_cache.
参照元 dump(), osl::search::QSearch2Util< has_record >::moreMoves(), osl::search::QSearchUtil< has_record >::moreMoves(), osl::search::QuiescenceSearch2< EvalT >::searchMain(), と osl::search::QuiescenceSearch< EvalT >::searchMain().
void osl::search::QuiescenceRecord::loadMoves | ( | MoveVector & | dst | ) | const [inline] |
QuiescenceFlags osl::search::QuiescenceRecord::cacheFlags | ( | ) | const [inline] |
void osl::search::QuiescenceRecord::dump | ( | std::ostream & | os | ) | const |
quiescenceRecord.cc の 53 行で定義されています。
参照先 attack_oracle, osl::search::QuiescenceRecordBase::best_move, osl::search::QuiescenceRecordBase::checkmate_nodes, osl::search::QuiescenceFlags::data, osl::search::QuiescenceRecordBase::flags, hasStaticValue(), osl::search::QuiescenceRecordBase::king8info, osl::search::QuiescenceFlags::LAST_FLAG, loadMoves(), osl::search::QuiescenceRecordBase::lower_bound, osl::search::QuiescenceRecordBase::lower_depth, osl::search::make_names(), osl::search::QuiescenceThreat::move, moves_size(), osl::checkmate::AttackOracleAges::proof, osl::search::QuiescenceRecordBase::sendoffs, show(), osl::search::QuiescenceRecordBase::static_value, staticValueType(), osl::search::QuiescenceRecordBase::threat1, osl::search::QuiescenceRecordBase::threat2, threatmate, osl::search::QuiescenceRecordBase::threatmate_nodes, threatmate_oracle, toString(), osl::search::QuiescenceRecordBase::upper_bound, osl::search::QuiescenceRecordBase::upper_depth, と osl::search::QuiescenceThreat::value.
参照元 osl::search::SimpleHashRecord::dump(), と osl::search::QuiescenceLog::pushMove().
quiescenceRecord.h の 158 行で定義されています。
参照元 dump(), operator=(), osl::search::QuiescenceSearch2< EvalT >::searchMain(), osl::search::QuiescenceSearch< EvalT >::searchMain(), osl::search::QuiescenceSearch2< EvalT >::staticValue(), osl::search::QuiescenceSearch< EvalT >::staticValue(), と osl::search::SimpleHashRecord::threatmate().
oracle
quiescenceRecord.h の 160 行で定義されています。
参照元 osl::search::AlphaBeta2::alphaBetaSearchRoot(), osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::computeBestMoveOfPlayer(), osl::search::SimpleHashRecord::copyFrom(), osl::search::SimpleHashRecord::dump(), dump(), operator=(), osl::search::AlphaBeta2Tree::quiesce(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::searchAllMoves(), osl::search::AlphaBeta2Tree::searchAllMoves(), osl::search::QuiescenceSearch2< EvalT >::searchMain(), osl::search::QuiescenceSearch< EvalT >::searchMain(), osl::search::AlphaBeta2Tree::tryCheckmate(), と osl::search::AlphaBeta2Tree::tryCheckmateAgain().
quiescenceRecord.h の 160 行で定義されています。
参照元 osl::search::AlphaBeta2::alphaBetaSearchRoot(), osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::computeBestMoveOfPlayer(), osl::search::SimpleHashRecord::copyFrom(), dump(), operator=(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::searchAllMoves(), osl::search::QuiescenceSearch2< EvalT >::staticValue(), osl::search::QuiescenceSearch< EvalT >::staticValue(), と osl::search::AlphaBeta2Tree::testThreatmate().