All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Classes | Public Member Functions | Private Member Functions | Private Attributes
osl::checkmate::DualDfpn Class Reference

一般用詰み探索: 先手後手の詰みを別々に管理 More...

#include <dualDfpn.h>

List of all members.

Classes

struct  Local
struct  OraclePool
struct  Shared

Public Member Functions

 DualDfpn (uint64_t ignored=std::numeric_limits< uint64_t >::max())
 DualDfpn (const DualDfpn &src)
 ~DualDfpn ()
void setRootPlayer (Player)
template<Player P>
ProofDisproof findProof (int node_limit, const NumEffectState &state, const HashKey &key, const PathEncoding &path, Move &best_move, Move last_move=Move::INVALID())
template<Player P>
bool isWinningState (int node_limit, const NumEffectState &state, const HashKey &key, const PathEncoding &path, Move &best_move, Move last_move=Move::INVALID())
 詰みを発見.
bool isWinningState (int node_limit, const NumEffectState &state, const HashKey &key, const PathEncoding &path, Move &best_move, Move last_move=Move::INVALID())
ProofDisproof findProof (int node_limit, const NumEffectState &state, const HashKey &key, const PathEncoding &path, Move &best_move, Move last_move=Move::INVALID())
template<Player P>
bool isLosingState (int node_limit, const NumEffectState &state, const HashKey &key, const PathEncoding &path, Move last_move=Move::INVALID())
bool isLosingState (int node_limit, const NumEffectState &state, const HashKey &key, const PathEncoding &path, Move last_move=Move::INVALID())
void runGC (bool verbose=false, size_t memory_use_ratio_1000=0)
void setVerbose (int level=1)
int distance (Player attack, const HashKey &key)
size_t mainNodeCount () const
size_t totalNodeCount () const
void writeRootHistory (const RepetitionCounter &counter, const MoveStack &moves, const SimpleState &state, Player attack)
const DfpnTabletable (Player) const

Private Member Functions

DfpnprepareDfpn (Player attack)
DfpnprepareDfpnSmall (Player attack)

Private Attributes

boost::shared_ptr< Sharedshared
boost::scoped_ptr< Locallocal

Detailed Description

一般用詰み探索: 先手後手の詰みを別々に管理

Definition at line 30 of file dualDfpn.h.


Constructor & Destructor Documentation

osl::checkmate::DualDfpn::DualDfpn ( uint64_t  ignored = std::numeric_limits<uint64_t>::max()) [explicit]

Definition at line 262 of file dualDfpn.cc.

Definition at line 268 of file dualDfpn.cc.

Definition at line 274 of file dualDfpn.cc.


Member Function Documentation

int osl::checkmate::DualDfpn::distance ( Player  attack,
const HashKey &  key 
)

Definition at line 612 of file dualDfpn.cc.

template<osl::Player P>
template ProofDisproof osl::checkmate::DualDfpn::findProof< WHITE > ( int  node_limit,
const NumEffectState &  state,
const HashKey &  key,
const PathEncoding path,
Move best_move,
Move  last_move = Move::INVALID() 
)
ProofDisproof osl::checkmate::DualDfpn::findProof ( int  node_limit,
const NumEffectState &  state,
const HashKey &  key,
const PathEncoding path,
Move best_move,
Move  last_move = Move::INVALID() 
)
template<osl::Player P>
template bool osl::checkmate::DualDfpn::isLosingState< WHITE > ( int  node_limit,
const NumEffectState &  state,
const HashKey &  key,
const PathEncoding path,
Move  last_move = Move::INVALID() 
)
bool osl::checkmate::DualDfpn::isLosingState ( int  node_limit,
const NumEffectState &  state,
const HashKey &  key,
const PathEncoding path,
Move  last_move = Move::INVALID() 
)
template<Player P>
bool osl::checkmate::DualDfpn::isWinningState ( int  node_limit,
const NumEffectState &  state,
const HashKey &  key,
const PathEncoding path,
Move best_move,
Move  last_move = Move::INVALID() 
) [inline]

詰みを発見.

別々のスレッドから呼び出し可能

Returns:
相手玉が詰み

Definition at line 53 of file dualDfpn.h.

References findProof(), and osl::checkmate::ProofDisproof::isCheckmateSuccess().

bool osl::checkmate::DualDfpn::isWinningState ( int  node_limit,
const NumEffectState &  state,
const HashKey &  key,
const PathEncoding path,
Move best_move,
Move  last_move = Move::INVALID() 
)

Definition at line 619 of file dualDfpn.cc.

Definition at line 279 of file dualDfpn.cc.

References osl::checkmate::Dfpn::setTable().

Definition at line 291 of file dualDfpn.cc.

References osl::checkmate::Dfpn::setTable().

void osl::checkmate::DualDfpn::runGC ( bool  verbose = false,
size_t  memory_use_ratio_1000 = 0 
)

Definition at line 600 of file dualDfpn.cc.

References osl::alt().

void osl::checkmate::DualDfpn::setVerbose ( int  level = 1)

Definition at line 607 of file dualDfpn.cc.

Definition at line 638 of file dualDfpn.cc.

References osl::checkmate::DfpnTable::table.

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

Definition at line 629 of file dualDfpn.cc.

void osl::checkmate::DualDfpn::writeRootHistory ( const RepetitionCounter counter,
const MoveStack &  moves,
const SimpleState &  state,
Player  attack 
)

Member Data Documentation

boost::scoped_ptr<Local> osl::checkmate::DualDfpn::local [private]

Definition at line 36 of file dualDfpn.h.

boost::shared_ptr<Shared> osl::checkmate::DualDfpn::shared [private]

Definition at line 34 of file dualDfpn.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines