fix math::is_odd for a negative argument