improve in-place set/neg_round