#include <simpleHashRecord.h>
Public メソッド | |
SimpleHashRecord () | |
SimpleHashRecord (const SimpleHashRecord &src) | |
copy constructor: copy everything except for mutex | |
SimpleHashRecord & | operator= (const SimpleHashRecord &src) |
void | addNodeCount (size_t diff) |
void | setSumNodeCountOfChildren () |
size_t | sumOfNodeCountOfChildren () const |
category::CategoryFlags & | prepareGenerate (int new_limit, int margin) |
void | setAbsoluteValue (Move best_move, int value, int limit) |
ͤ. | |
void | setBestMove (SearchMove m) |
void | setAbsoluteValue (MoveLogProb best_move, int value, int limit) |
void | setLowerBound (Player P, int limit, const SearchMove &best_move, int value) |
lowerBound . | |
void | setUpperBound (Player P, int limit, const SearchMove &best_move, int value) |
upperBound . | |
int | upperLimit () const |
upperBound ϿȤlimit | |
int | upperBound () const |
֤Υץ쥤䤫ߤɾͤξ | |
int | lowerLimit () const |
lowerBound ϿȤlimit | |
int | lowerBound () const |
֤Υץ쥤䤫ߤɾͤβ | |
int | checkmateNodes () const |
ޤǤ˵;õΡɿ | |
int | threatmateNodes () const |
const SearchMove | bestMove () const |
SearchMoveSet & | moves () |
const SearchMoveSet & | moves () const |
bool | hasUpperBound (int limit) const |
bool | hasLowerBound (int limit) const |
bool | hasAbsoluteUpperBound (Player p, int limit) const |
bool | hasAbsoluteLowerBound (Player p, int limit) const |
int | absoluteUpperBound (Player p) const |
int | absoluteLowerBound (Player p) const |
void | resetValue () |
template<Player P> | |
bool | hasGreaterLowerBound (int limit, int threshold, int &val) const |
high fail 뤫 | |
template<Player P> | |
bool | hasLesserUpperBound (int limit, int threshold, int &val) const |
low fail 뤫 | |
const DualThreatmateState & | threatmate () const |
DualThreatmateState & | threatmate () |
void | dump (std::ostream &) const |
void | copyFrom (const SimpleHashRecord &) |
SimpleHashTable::migrate | |
void | fixBestMove () |
SimpleHashTable::migrate | |
size_t | nodeCount () const |
double | nodeRatio (Move) const |
void | dumpNodeCount (std::ostream &os, size_t) const |
Public 変数 | |
QuiescenceRecord | qrecord |
礤ǻȤǡ | |
bool | is_king_in_check |
Private メソッド | |
template<bool PreferLowerBound> | |
void | makeConsistent (Player P) |
¤Ȳ¤̷⤬äĴ. |
simpleHashRecord.h の 48 行で定義されています。
osl::search::SimpleHashRecord::SimpleHashRecord | ( | ) | [inline] |
simpleHashRecord.h の 59 行で定義されています。
osl::search::SimpleHashRecord::SimpleHashRecord | ( | const SimpleHashRecord & | src | ) | [inline] |
SimpleHashRecord& osl::search::SimpleHashRecord::operator= | ( | const SimpleHashRecord & | src | ) | [inline] |
void osl::search::SimpleHashRecord::addNodeCount | ( | size_t | diff | ) | [inline] |
simpleHashRecord.h の 80 行で定義されています。
参照先 osl::search::SimpleHashRecordBase::search_nodes.
参照元 osl::search::AlphaBeta2Tree::alphaBetaSearchAfterMove(), osl::search::AlphaBeta2::computeBestMoveIteratively(), と osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::searchWithMove().
void osl::search::SimpleHashRecord::setSumNodeCountOfChildren | ( | ) |
size_t osl::search::SimpleHashRecord::sumOfNodeCountOfChildren | ( | ) | const |
category::CategoryFlags& osl::search::SimpleHashRecord::prepareGenerate | ( | int | new_limit, | |
int | margin | |||
) | [inline] |
void osl::search::SimpleHashRecord::setAbsoluteValue | ( | Move | best_move, | |
int | value, | |||
int | limit | |||
) | [inline] |
void osl::search::SimpleHashRecord::setBestMove | ( | SearchMove | m | ) | [inline] |
void osl::search::SimpleHashRecord::setAbsoluteValue | ( | MoveLogProb | best_move, | |
int | value, | |||
int | limit | |||
) | [inline] |
void osl::search::SimpleHashRecord::setLowerBound | ( | Player | P, | |
int | limit, | |||
const SearchMove & | best_move, | |||
int | value | |||
) | [inline] |
lowerBound .
simpleHashRecord.h の 142 行で定義されています。
参照先 osl::eval::betterThan(), hasUpperBound(), osl::search::SimpleHashRecordBase::lower_bound, osl::search::SimpleHashRecordBase::lower_limit, osl::search::SearchMove::moveLogProb(), と osl::MoveLogProb::validMove().
参照元 osl::search::AlphaBeta2::alphaBetaSearchRoot(), osl::search::SearchBase< osl::eval::ProgressEval, osl::search::SimpleHashTable, osl::search::CountRecorder, osl::search::RealizationProbability >::recordLowerBound(), と osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::searchAllMoves().
void osl::search::SimpleHashRecord::setUpperBound | ( | Player | P, | |
int | limit, | |||
const SearchMove & | best_move, | |||
int | value | |||
) | [inline] |
upperBound .
simpleHashRecord.h の 170 行で定義されています。
参照先 hasLowerBound(), osl::search::SearchMove::moveLogProb(), osl::search::SimpleHashRecordBase::upper_bound, osl::search::SimpleHashRecordBase::upper_limit, と osl::MoveLogProb::validMove().
参照元 osl::search::SearchBase< osl::eval::ProgressEval, osl::search::SimpleHashTable, osl::search::CountRecorder, osl::search::RealizationProbability >::recordUpperBound(), と osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::searchAllMoves().
void osl::search::SimpleHashRecord::makeConsistent | ( | Player | P | ) | [inline, private] |
¤Ȳ¤̷⤬äĴ.
Ʊä夫褿ͥ褷ʤȡơõη̤ϿǤʤ
PreferLowerBound | Ʊä lower bound ͥ褹 |
simpleHashRecord.h の 198 行で定義されています。
参照先 osl::eval::betterThan(), hasLowerBound(), hasUpperBound(), osl::search::SimpleHashRecordBase::lower_bound, osl::search::SimpleHashRecordBase::lower_limit, osl::search::SimpleHashRecordBase::upper_bound, と osl::search::SimpleHashRecordBase::upper_limit.
int osl::search::SimpleHashRecord::upperLimit | ( | ) | const [inline] |
upperBound ϿȤlimit
simpleHashRecord.h の 217 行で定義されています。
参照先 osl::search::SimpleHashRecordBase::upper_limit.
参照元 hasLesserUpperBound(), hasUpperBound(), osl::search::SimpleHashTable::migrate(), osl::search::analyzer::MoveEntry::MoveEntry(), osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::selectBestMoveByHigherF(), と osl::search::analyzer::DotWriter::showNode().
int osl::search::SimpleHashRecord::upperBound | ( | ) | const [inline] |
֤Υץ쥤䤫ߤɾͤξ
simpleHashRecord.h の 219 行で定義されています。
参照先 osl::search::SimpleHashRecordBase::upper_bound.
参照元 absoluteLowerBound(), absoluteUpperBound(), osl::search::analyzer::DotAnalyzerProof::analyze(), osl::search::AlphaBeta2::computeBestMoveIteratively(), dump(), osl::search::analyzer::TopLevelAnalyzer::examineAll(), hasLesserUpperBound(), osl::search::analyzer::MoveEntry::MoveEntry(), osl::search::AlphaBeta2Tree::searchAllMoves(), osl::search::analyzer::DotWriter::showNode(), と osl::search::SearchValueCompare< P >::value().
int osl::search::SimpleHashRecord::lowerLimit | ( | ) | const [inline] |
lowerBound ϿȤlimit
simpleHashRecord.h の 221 行で定義されています。
参照先 osl::search::SimpleHashRecordBase::lower_limit.
参照元 osl::search::AlphaBeta2::computeBestMoveIteratively(), osl::search::analyzer::TableAnalyzer::examineTopLevel(), hasGreaterLowerBound(), hasLowerBound(), osl::search::SimpleHashTable::migrate(), osl::search::analyzer::MoveEntry::MoveEntry(), osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::selectBestMoveByHigherF(), と osl::search::analyzer::DotWriter::showNode().
int osl::search::SimpleHashRecord::lowerBound | ( | ) | const [inline] |
֤Υץ쥤䤫ߤɾͤβ
simpleHashRecord.h の 223 行で定義されています。
参照先 osl::search::SimpleHashRecordBase::lower_bound.
参照元 absoluteLowerBound(), absoluteUpperBound(), osl::search::AlphaBeta2::alphaBetaSearchRoot(), osl::search::analyzer::DotAnalyzerProof::analyze(), osl::search::AlphaBeta2::computeBestMoveIteratively(), dump(), osl::search::analyzer::TopLevelAnalyzer::examineAll(), hasGreaterLowerBound(), osl::search::analyzer::MoveEntry::MoveEntry(), osl::search::AlphaBeta2Tree::searchAllMoves(), osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::selectBestMoveByHigherF(), osl::search::analyzer::DotWriter::showNode(), と osl::search::SearchValueCompare< P >::value().
int osl::search::SimpleHashRecord::checkmateNodes | ( | ) | const [inline] |
ޤǤ˵;õΡɿ
simpleHashRecord.h の 225 行で定義されています。
参照先 osl::search::QuiescenceRecordBase::checkmate_nodes, と qrecord.
int osl::search::SimpleHashRecord::threatmateNodes | ( | ) | const [inline] |
simpleHashRecord.h の 226 行で定義されています。
参照先 qrecord, と osl::search::QuiescenceRecordBase::threatmate_nodes.
const SearchMove osl::search::SimpleHashRecord::bestMove | ( | ) | const [inline] |
simpleHashRecord.h の 227 行で定義されています。
参照先 osl::search::SimpleHashRecordBase::best_move.
参照元 osl::search::analyzer::DotAnalyzerProof::absoluteBound(), osl::search::AlphaBeta2Tree::alphaBetaSearchAfterMove(), osl::search::AlphaBeta2::alphaBetaSearchRoot(), osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::computeBestMoveOfPlayer(), osl::search::analyzer::TopLevelAnalyzer::examineAll(), osl::search::analyzer::TableAnalyzer::examineTopLevel(), fixBestMove(), osl::search::SimpleHashTable::getPV(), osl::search::analyzer::TableAnalyzer::makeBestMoveList(), osl::search::AlphaBeta2Tree::nextMove(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::searchAllMoves(), osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::selectBestMoveByHigherF(), osl::search::analyzer::DotWriter::showNode(), と osl::search::analyzer::DotAnalyzerAll::visit().
SearchMoveSet& osl::search::SimpleHashRecord::moves | ( | ) | [inline] |
simpleHashRecord.h の 233 行で定義されています。
参照先 osl::search::SimpleHashRecordBase::move_cache.
参照元 osl::search::analyzer::DotAnalyzerProof::absoluteBound(), osl::search::analyzer::DotAnalyzer::analyzeSequence(), osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::computeBestMoveOfPlayer(), copyFrom(), dump(), dumpNodeCount(), osl::search::analyzer::TopLevelAnalyzer::examineAll(), fixBestMove(), osl::search::SimpleHashTable::isConsistent(), osl::search::SimpleHashTable::migrate(), nodeRatio(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::searchAllMoves(), sumOfNodeCountOfChildren(), と osl::search::analyzer::DotAnalyzerAll::visit().
const SearchMoveSet& osl::search::SimpleHashRecord::moves | ( | ) | const [inline] |
bool osl::search::SimpleHashRecord::hasUpperBound | ( | int | limit | ) | const [inline] |
simpleHashRecord.h の 236 行で定義されています。
参照先 upperLimit().
参照元 dump(), osl::search::analyzer::TopLevelAnalyzer::examineAll(), hasAbsoluteLowerBound(), hasAbsoluteUpperBound(), makeConsistent(), osl::search::AlphaBeta2Tree::searchAllMoves(), setLowerBound(), と osl::search::SearchValueCompare< P >::value().
bool osl::search::SimpleHashRecord::hasLowerBound | ( | int | limit | ) | const [inline] |
simpleHashRecord.h の 240 行で定義されています。
参照先 lowerLimit().
参照元 osl::search::AlphaBeta2::alphaBetaSearchRoot(), dump(), osl::search::analyzer::TopLevelAnalyzer::examineAll(), hasAbsoluteLowerBound(), hasAbsoluteUpperBound(), makeConsistent(), osl::search::AlphaBeta2Tree::searchAllMoves(), setUpperBound(), と osl::search::SearchValueCompare< P >::value().
bool osl::search::SimpleHashRecord::hasAbsoluteUpperBound | ( | Player | p, | |
int | limit | |||
) | const [inline] |
simpleHashRecord.h の 244 行で定義されています。
参照先 osl::BLACK, hasLowerBound(), と hasUpperBound().
参照元 osl::search::analyzer::DotAnalyzerProof::absoluteBound().
bool osl::search::SimpleHashRecord::hasAbsoluteLowerBound | ( | Player | p, | |
int | limit | |||
) | const [inline] |
simpleHashRecord.h の 248 行で定義されています。
参照先 osl::BLACK, hasLowerBound(), と hasUpperBound().
参照元 osl::search::analyzer::DotAnalyzerProof::absoluteBound().
int osl::search::SimpleHashRecord::absoluteUpperBound | ( | Player | p | ) | const [inline] |
simpleHashRecord.h の 252 行で定義されています。
参照先 osl::BLACK, lowerBound(), と upperBound().
参照元 osl::search::analyzer::DotAnalyzerProof::absoluteBound().
int osl::search::SimpleHashRecord::absoluteLowerBound | ( | Player | p | ) | const [inline] |
simpleHashRecord.h の 256 行で定義されています。
参照先 osl::BLACK, lowerBound(), と upperBound().
参照元 osl::search::analyzer::DotAnalyzerProof::absoluteBound().
void osl::search::SimpleHashRecord::resetValue | ( | ) | [inline] |
bool osl::search::SimpleHashRecord::hasGreaterLowerBound | ( | int | limit, | |
int | threshold, | |||
int & | val | |||
) | const [inline] |
high fail 뤫
simpleHashRecord.h の 270 行で定義されています。
参照先 osl::eval::betterThan(), lowerBound(), と lowerLimit().
参照元 osl::search::AlphaBeta2::alphaBetaSearchRoot(), と osl::search::AlphaBeta2Tree::searchAllMoves().
bool osl::search::SimpleHashRecord::hasLesserUpperBound | ( | int | limit, | |
int | threshold, | |||
int & | val | |||
) | const [inline] |
low fail 뤫
simpleHashRecord.h の 283 行で定義されています。
const DualThreatmateState& osl::search::SimpleHashRecord::threatmate | ( | ) | const [inline] |
simpleHashRecord.h の 295 行で定義されています。
参照先 qrecord, と osl::search::QuiescenceRecord::threatmate.
参照元 osl::search::AlphaBeta2Tree::alphaBetaSearchAfterMove(), osl::search::AlphaBeta2::alphaBetaSearchRoot(), osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::computeBestMoveOfPlayer(), osl::search::SearchState2Core::countCheckAfterThreatmate(), osl::search::SearchState2Core::countCheckAfterThreatmateSacrifice(), osl::category::Pass::generate(), osl::category::Classify< SubCategories >::generate(), osl::category::BreakThreatmate::generate(), osl::search::AlphaBeta2Tree::nextMove(), osl::search::AlphaBeta2Tree::quiesceExp(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::searchAllMoves(), osl::search::AlphaBeta2Tree::searchAllMoves(), osl::search::QuiescenceSearch2< EvalT >::staticValue(), osl::search::AlphaBeta2Tree::testThreatmate(), osl::search::AlphaBeta2Tree::tryCheckmate(), osl::search::AlphaBeta2Tree::tryCheckmateAgain(), と osl::search::AlphaBeta2Tree::tryPass().
DualThreatmateState& osl::search::SimpleHashRecord::threatmate | ( | ) | [inline] |
void osl::search::SimpleHashRecord::dump | ( | std::ostream & | os | ) | const |
simpleHashRecord.cc の 10 行で定義されています。
参照先 osl::search::QuiescenceRecord::attack_oracle, osl::search::SimpleHashRecordBase::best_move, osl::checkmate::AttackOracleAges::disproof, osl::search::QuiescenceRecord::dump(), osl::search::SearchMoveSet::dump(), osl::MoveLogProb::getLogProb(), osl::MoveLogProb::getMove(), hasLowerBound(), hasUpperBound(), is_king_in_check, osl::search::SimpleHashRecordBase::limit_of_moves, osl::search::SimpleHashRecordBase::lower_limit, lowerBound(), moves(), nodeCount(), osl::checkmate::AttackOracleAges::proof, osl::checkmate::AttackOracleAges::proof_last_move, qrecord, osl::search::SearchMove::record, show(), osl::search::SimpleHashRecordBase::upper_limit, upperBound(), と osl::search::SimpleHashRecordBase::used_categories.
参照元 osl::search::SearchState2Core::abort(), と osl::search::SearchStateCore::abort().
void osl::search::SimpleHashRecord::copyFrom | ( | const SimpleHashRecord & | src | ) |
simpleHashRecord.cc の 90 行で定義されています。
参照先 osl::search::QuiescenceRecord::attack_oracle, osl::search::QuiescenceRecordBase::checkmate_nodes, osl::search::SearchMoveSet::range::first, osl::search::SearchMoveSet::range::last, osl::eval::min(), moves(), qrecord, osl::search::SimpleHashRecordBase::search_nodes, osl::search::QuiescenceRecordBase::threatmate_nodes, と osl::search::QuiescenceRecord::threatmate_oracle.
void osl::search::SimpleHashRecord::fixBestMove | ( | ) |
size_t osl::search::SimpleHashRecord::nodeCount | ( | ) | const [inline] |
simpleHashRecord.h の 305 行で定義されています。
参照先 osl::search::SimpleHashRecordBase::search_nodes.
参照元 dump(), と nodeRatio().
double osl::search::SimpleHashRecord::nodeRatio | ( | Move | move | ) | const |
void osl::search::SimpleHashRecord::dumpNodeCount | ( | std::ostream & | os, | |
size_t | max | |||
) | const |
礤ǻȤǡ
simpleHashRecord.h の 56 行で定義されています。
参照元 osl::search::AlphaBeta2::alphaBetaSearchRoot(), checkmateNodes(), osl::search::MTDF< Eval, MoveGenerator, Table, Recorder, Probabilities >::computeBestMoveOfPlayer(), copyFrom(), dump(), osl::category::CategoryUtilBase::findSendOff(), osl::search::SimpleHashTable::getPV(), operator=(), osl::search::qallocate(), osl::search::AlphaBeta2Tree::quiesce(), osl::search::AlphaBeta2Tree::quiesceExp(), osl::search::AlphaBeta2Tree::quiesceRoot(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::searchAllMoves(), osl::search::AlphaBeta2Tree::searchAllMoves(), osl::search::QuiescenceSearch2< EvalT >::searchInternal(), osl::search::QuiescenceSearch< EvalT >::searchInternal(), osl::search::QuiescenceSearch2< EvalT >::searchMain(), osl::search::QuiescenceSearch< EvalT >::searchMain(), osl::search::analyzer::DotWriter::showNodeQuiescence(), osl::search::AlphaBeta2Tree::testThreatmate(), threatmate(), threatmateNodes(), osl::search::AlphaBeta2Tree::tryCheckmate(), osl::search::AlphaBeta2Tree::tryCheckmateAgain(), osl::search::analyzer::DotAnalyzerAll::visit(), と osl::search::analyzer::DotAnalyzerAll::visitQuiescence().
simpleHashRecord.h の 57 行で定義されています。
参照元 osl::search::AlphaBeta2Tree::alphaBetaSearchAfterMove(), osl::search::AlphaBeta2::alphaBetaSearchRoot(), dump(), osl::search::MoveGenerator::generateKingEscape(), osl::search::AlphaBeta2::makeMove(), osl::search::AlphaBeta2Tree::nextMove(), osl::search::MoveGenerator::nextTacticalMoveWithGeneration(), operator=(), osl::search::AlphaBeta2Tree::quiesce(), osl::search::AlphaBeta2Tree::quiesceRoot(), osl::search::SearchFramework< Eval, MoveGenerator, Table, Recorder, Probabilities >::searchAllMoves(), osl::search::AlphaBeta2Tree::searchAllMoves(), osl::search::AlphaBeta2Tree::testThreatmate(), と osl::search::AlphaBeta2Tree::tryPass().