3 #ifndef _SEARCHWINDOW_H
4 #define _SEARCHWINDOW_H
37 template <Player P,
class EvalBase>
44 template <
class Recorder>
48 const Recorder& recorder)
55 if (record.template hasGreaterLowerBound<P>(limit, w.
alpha(),
62 recorder.tableHitLowerBound(P, table_value, w.
beta(),
limit);
67 if (record.template hasLesserUpperBound<P>(limit, w.
beta(), table_value))
73 recorder.tableHitUpperBound(P, table_value, w.
alpha(),
limit);
98 template <Player P,
class EvalBase,
bool best_move_extension>
110 template <
class Recorder>
114 int& val,
const Recorder& recorder)
116 const int lookUpLimit = (best_move_extension ? limit + 200 :
limit);
122 if (record.template hasGreaterLowerBound<P>
123 (lookUpLimit, w.
beta(), table_value))
126 recorder.tableHitLowerBound(P, table_value, w.
beta(),
limit);
131 if (record.template hasLesserUpperBound<P>
132 (lookUpLimit, w.
alpha(), table_value))
135 recorder.tableHitUpperBound(P, table_value, w.
alpha(),
limit);