fix: allow negative weights for poly.lib::lcm