All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
proofTreeDepthDfpn.h
Go to the documentation of this file.
1 /* proofTreeDepthDfpn.h
2  */
3 #ifndef OSL_PROOFTREEDEPTHDFPN_H
4 #define OSL_PROOFTREEDEPTHDFPN_H
5 
6 #include "osl/hash/hashKey.h"
7 #include "osl/stl/vector.h"
8 #include <boost/scoped_ptr.hpp>
9 namespace osl
10 {
11  namespace state
12  {
13  class NumEffectState;
14  }
15  namespace checkmate
16  {
17  class CheckHashRecord;
18  class DfpnTable;
25  {
26  struct Table;
27  boost::scoped_ptr<Table> table;
28  public:
29  explicit ProofTreeDepthDfpn(const DfpnTable& table);
31  int depth(const HashKey& key, const state::NumEffectState& state, bool is_or_node) const;
32 
33  void retrievePV(const state::NumEffectState& state, bool is_or_node,
34  vector<Move>& pv) const;
35  private:
36  int orNode(const HashKey& key, Move& best_move, int height=0) const;
37  int andNode(const HashKey& key, Move& best_move, int height=0) const;
38  };
39  } // namespace checkmate
40 }
41 
42 
43 #endif /* OSL_PROOFTREEDEPTHDFPN_H */
44 // ;;; Local Variables:
45 // ;;; mode:c++
46 // ;;; c-basic-offset:2
47 // ;;; End: