st->value = compute_value();
st->npMaterial[WHITE] = compute_non_pawn_material(WHITE);
st->npMaterial[BLACK] = compute_non_pawn_material(BLACK);
st->value = compute_value();
st->npMaterial[WHITE] = compute_non_pawn_material(WHITE);
st->npMaterial[BLACK] = compute_non_pawn_material(BLACK);
assert(move_is_ok(m));
assert(ci.dcCandidates == discovered_check_candidates());
assert(piece_color(piece_on(move_from(m))) == side_to_move());
assert(move_is_ok(m));
assert(ci.dcCandidates == discovered_check_candidates());
assert(piece_color(piece_on(move_from(m))) == side_to_move());
void Position::do_move(Move m, StateInfo& newSt, const CheckInfo& ci, bool moveIsCheck) {
void Position::do_move(Move m, StateInfo& newSt, const CheckInfo& ci, bool moveIsCheck) {
// Make a copy of current position before to start changing
const Position pos(*this, threadID);
// Make a copy of current position before to start changing
const Position pos(*this, threadID);