Skip to content

[BUG]: Maximum recursion depth reached in pysr2sympy #1094

@ViRb3

Description

@ViRb3

What happened?

PoC:

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

Extra Info

No response

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions