+ int HalfKP::update_cost(StateInfo* st) {
+ return st->dirtyPiece.dirty_num;
+ }
+
+ int HalfKP::refresh_cost(const Position& pos) {
+ return pos.count<ALL_PIECES>() - 2;
+ }
+
+ bool HalfKP::requires_refresh(StateInfo* st, Color perspective) {
+ return st->dirtyPiece.piece[0] == make_piece(perspective, KING);
+ }