Commit
2 years ago
gh-37034: raise ValueError instead of IndexError in .any_root() The `.any_root()` method sometimes raises an `IndexError` instead of the usual `ValueError` when no root exists. Example (Sage 10.2): ```sage sage: R.<x> = Zmod(55)[] sage: (x^2 + 1).any_root() ------------------------------------------------------------------------ --- IndexError Traceback (most recent call last) Cell In[2], line 1 ----> 1 (x**Integer(2)+Integer(1)).any_root() File /usr/lib/python3.11/site- packages/sage/rings/polynomial/polynomial_element.pyx:2315, in sage.rings.polynomial.polynomial_element.Polynomial.any_root (build/cythonized/sage/rings/polynomial/polynomial_element.c:34795)() 2313 return (self//h).any_root(ring, -degree, True) 2314 else: -> 2315 return self.roots(ring=ring, multiplicities=False)[0] 2316 2317 def __truediv__(left, right): IndexError: list index out of range ``` With this patch, we check for the `IndexError` before it happens and raise a `ValueError` instead. URL: https://github.com/sagemath/sage/pull/37034 Reported by: Lorenz Panny Reviewer(s): Travis Scrimshaw
Author
Release Manager
Loading