ITADN

[BUG]: Maximum recursion depth reached in pysr2sympy

#1094OpenViRb3 创建于 2025-12-05
bug
V
ViRb3commented
### What happened? PoC: ```python import pysr pysr.export_sympy.pysr2sympy("min(31.0, ceil(max(((0.09414722 * x1) + -0.54402936) - 149.09248, 149.08806 - (0.09424036 * x2))) + -0.1880195)") ``` Results: ``` [ BELOW 2 CALLS REPEATING ] File "~/.venv/lib/python3.13/site-packages/sympy/functions/elementary/piecewise.py", line 204, in eval return cls(*newargs) File "~/.venv/lib/python3.13/site-packages/sympy/functions/elementary/piecewise.py", line 148, in __new__ r = cls.eval(*newargs) File "~/.venv/lib/python3.13/site-packages/sympy/functions/elementary/piecewise.py", line 204, in eval return cls(*newargs) File "~/.venv/lib/python3.13/site-packages/sympy/functions/elementary/piecewise.py", line 148, in __new__ r = cls.eval(*newargs) File "~/.venv/lib/python3.13/site-packages/sympy/functions/elementary/piecewise.py", line 190, in eval newargs = _piecewise_collapse_arguments(_args) File "~/.venv/lib/python3.13/site-packages/sympy/functions/elementary/piecewise.py", line 1249, in _piecewise_collapse_arguments cond = cond.replace( lambda _: _.is_Relational, _canonical_coeff) File "~/.venv/lib/python3.13/site-packages/sympy/core/basic.py", line 1797, in replace rv = walk(self, rec_replace) File "~/.venv/lib/python3.13/site-packages/sympy/core/basic.py", line 1782, in walk rv = F(rv) File "~/.venv/lib/python3.13/site-packages/sympy/core/basic.py", line 1790, in rec_replace v = _value(expr, result) File "~/.venv/lib/python3.13/site-packages/sympy/core/basic.py", line 1756, in <lambda> _value = lambda expr, result: value(expr) ~~~~~^^^^^^ File "~/.venv/lib/python3.13/site-packages/sympy/core/relational.py", line 62, in _canonical_coeff return rel.func(lhs, rhs) ~~~~~~~~^^^^^^^^^^ File "~/.venv/lib/python3.13/site-packages/sympy/core/relational.py", line 859, in __new__ return cls._eval_relation(lhs, rhs, **options) ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^ File "~/.venv/lib/python3.13/site-packages/sympy/core/relational.py", line 866, in _eval_relation val = cls._eval_fuzzy_relation(lhs, rhs) File "~/.venv/lib/python3.13/site-packages/sympy/core/relational.py", line 1193, in _eval_fuzzy_relation return is_lt(lhs, rhs) File "~/.venv/lib/python3.13/site-packages/sympy/core/relational.py", line 1272, in is_lt return fuzzy_not(is_ge(lhs, rhs, assumptions)) ~~~~~^^^^^^^^^^^^^^^^^^^^^^^ File "~/.venv/lib/python3.13/site-packages/sympy/core/relational.py", line 1394, in is_ge n2 = _n2(lhs, rhs) File "~/.venv/lib/python3.13/site-packages/sympy/core/relational.py", line 1228, in _n2 if a.is_comparable and b.is_comparable: ^^^^^^^^^^^^^^^ File "~/.venv/lib/python3.13/site-packages/sympy/core/basic.py", line 874, in is_comparable return self._eval_is_comparable() ~~~~~~~~~~~~~~~~~~~~~~~~^^ File "~/.venv/lib/python3.13/site-packages/sympy/core/expr.py", line 490, in _eval_is_comparable if not self.is_number: ^^^^^^^^^^^^^^ File "~/.venv/lib/python3.13/site-packages/sympy/core/expr.py", line 482, in is_number return all(obj.is_number for obj in self.args) File "~/.venv/lib/python3.13/site-packages/sympy/core/expr.py", line 482, in <genexpr> return all(obj.is_number for obj in self.args) ^^^^^^^^^^^^^ File "~/.venv/lib/python3.13/site-packages/sympy/core/expr.py", line 482, in is_number return all(obj.is_number for obj in self.args) ^^^^^^^^^ RecursionError: maximum recursion depth exceeded ``` ### Version v1.5.9 ### Operating System macOS ### Package Manager None ### Interface IPython Terminal ### Relevant log output ```shell ``` ### Extra Info _No response_
1 条评论