osl::DualDfpn Class Reference

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

`#include <dualDfpn.h>`

## 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())
ProofDisproof | 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>
osl::ProofDisproof | findProof (int node_limit, const NumEffectState &state, const HashKey &key, const PathEncoding &path, Move &best_move, Move last_move)
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())
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 DfpnTable & | table (Player) const

## Private Member Functions

Dfpn & | prepareDfpn (Player attack)
Dfpn & | prepareDfpnSmall (Player attack)

## Private Attributes

std::shared_ptr< Shared > | shared
std::unique_ptr< Local > | local

## Detailed Description

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

Definition at line 28 of file dualDfpn.h.

## Constructor & Destructor Documentation

## DualDfpn() [1/2]

osl::checkmate::DualDfpn::DualDfpn | ( | uint64_t | ignored = std::numeric_limits<uint64_t>::max() | ) |

explicit

Definition at line 263 of file dualDfpn.cc.

## DualDfpn() [2/2]

osl::checkmate::DualDfpn::DualDfpn | ( | const DualDfpn & | src | ) |

Definition at line 269 of file dualDfpn.cc.

## ~DualDfpn()

osl::checkmate::DualDfpn::~DualDfpn | ( |  | ) |

Definition at line 275 of file dualDfpn.cc.

## Member Function Documentation

## distance()

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

Definition at line 613 of file dualDfpn.cc.

## findProof() [1/3]

template<osl::Player P>

osl::ProofDisproof osl::checkmate::DualDfpn::findProof | ( | int | node_limit,
|  | const NumEffectState & | state,
|  | const HashKey & | key,
|  | const PathEncoding & | path,
|  | Move & | best_move,
|  | Move | last_move )

Definition at line 377 of file dualDfpn.cc.

## findProof() [2/3]

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

Definition at line 479 of file dualDfpn.cc.

## findProof() [3/3]

template<Player P>

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

## isLosingState() [1/2]

template bool osl::checkmate::DualDfpn::isLosingState< WHITE > | ( | int | node_limit,
|  | const NumEffectState & | state,
|  | const HashKey & | key,
|  | const PathEncoding & | path,
|  | Move | last_move = Move::INVALID() )

Definition at line 565 of file dualDfpn.cc.

## isLosingState() [2/2]

template<osl::Player P>

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

Definition at line 550 of file dualDfpn.cc.

## isWinningState() [1/2]

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 490 of file dualDfpn.cc.

## isWinningState() [2/2]

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 51 of file dualDfpn.h.

## mainNodeCount()

size_t osl::checkmate::DualDfpn::mainNodeCount | ( |  | ) | const

Definition at line 620 of file dualDfpn.cc.

## prepareDfpn()

osl::checkmate::Dfpn & osl::checkmate::DualDfpn::prepareDfpn | ( | Player | attack | ) |

private

Definition at line 280 of file dualDfpn.cc.

## prepareDfpnSmall()

osl::checkmate::Dfpn & osl::checkmate::DualDfpn::prepareDfpnSmall | ( | Player | attack | ) |

private

Definition at line 292 of file dualDfpn.cc.

## runGC()

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

Definition at line 300 of file dualDfpn.cc.

## setRootPlayer()

void osl::checkmate::DualDfpn::setRootPlayer | ( | Player | root | ) |

Definition at line 601 of file dualDfpn.cc.

## setVerbose()

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

Definition at line 608 of file dualDfpn.cc.

## table()

const osl::checkmate::DfpnTable & osl::checkmate::DualDfpn::table | ( | Player | attack | ) | const

Definition at line 639 of file dualDfpn.cc.

## totalNodeCount()

size_t osl::checkmate::DualDfpn::totalNodeCount | ( |  | ) | const

Definition at line 630 of file dualDfpn.cc.

## writeRootHistory()

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

Definition at line 576 of file dualDfpn.cc.

## Member Data Documentation

## local

std::unique_ptr<Local> osl::checkmate::DualDfpn::local

private

Definition at line 34 of file dualDfpn.h.

## shared

std::shared_ptr<Shared> osl::checkmate::DualDfpn::shared

private

Definition at line 33 of file dualDfpn.h.

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

- dualDfpn.h
- dualDfpn.cc