You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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: #37034
Reported by: Lorenz Panny
Reviewer(s): Travis Scrimshaw
0 commit comments