3 #ifndef _QUIESCENCESEARCH2_H
4 #define _QUIESCENCESEARCH2_H
24 class SimpleHashTable;
40 template <
class EvalT>
89 return search<BLACK>(ev, last_move,
depth);
91 return search<WHITE>(ev, last_move,
depth);
101 ev, last_move,
depth);
107 return searchIteratively<BLACK>(ev, last_move,
depth);
109 return searchIteratively<WHITE>(ev, last_move,
depth);
118 for (
int i=2; i<=
depth; i+=2)
121 result=searchInternal<P>(alpha, beta, ev, last_move);
130 return searchInternal<P>(alpha, beta, ev, last_move);
134 return search<BLACK>(alpha, beta, ev, last_move,
depth);
136 return search<WHITE>(alpha, beta, ev, last_move,
depth);
143 return searchProbCut<BLACK>(alpha, beta, ev, last_move);
145 return searchProbCut<WHITE>(alpha, beta, ev, last_move);
153 template <Player P,
bool has_record>
155 int alpha,
int beta,
eval_t& ev,
Move last_move,
161 template <Player P, Ptype PTYPE,
bool has_record>
165 int additional_depth);
167 template <Player P,
bool has_record>
179 template <Player P,
bool has_record,
bool has_dont_capture, MoveType move_type>
181 const Move *first,
const Move *last,
182 int& alpha,
int beta,
eval_t const& ev,
183 int additional_depth,
195 int& cur_val,
int& alpha,
int beta,
eval_t const& ev);
204 template <Player P,
bool calm_move_only,
bool first_nolmal_move_only>
208 int beta,
int beta2,
eval_t const& ev);
212 template <Player P, Ptype PTYPE>
216 int beta1,
int beta2,
eval_t const& ev);
238 return staticValueWithThreat<BLACK>(ev);
240 return staticValueWithThreat<WHITE>(ev);
247 using search::QuiescenceSearch2;