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
These lines can cause problems if lhs doesn't have an explicit exp rewriting method, for example:
>>> e = zeta(x**pi, 8)
>>> solve(e, x)
Traceback (most recent call last):
File "test.py", line 46, in <module>
print(solve(e, x))
File "/home/eward/se/sympy/solvers/solvers.py", line 1171, in solve
solution = _solve(f[0], *symbols, **flags)
File "/home/eward/se/sympy/solvers/solvers.py", line 1686, in _solve
iv = _solve(u - t, symbol, **flags)
File "/home/eward/se/sympy/solvers/solvers.py", line 1737, in _solve
soln = _tsolve(f_num, symbol, **flags)
File "/home/eward/se/sympy/solvers/solvers.py", line 2770, in _tsolve
return _solve(rewrite - rhs, sym, **flags)
File "/home/eward/se/sympy/solvers/solvers.py", line 1686, in _solve
iv = _solve(u - t, symbol, **flags)
...
return _solve(rewrite - rhs, sym, **flags)
File "/home/eward/se/sympy/solvers/solvers.py", line 1508, in _solve
f_num, sol = solve_linear(f, symbols=symbols)
File "/home/eward/se/sympy/solvers/solvers.py", line 2124, in solve_linear
dnewn_dxi = newn.diff(xi)
File "/home/eward/se/sympy/core/expr.py", line 3424, in diff
return Derivative(self, *symbols, **assumptions)
File "/home/eward/se/sympy/core/function.py", line 1416, in __new__
obj = expr._eval_derivative_n_times(v, count)
File "/home/eward/se/sympy/core/basic.py", line 1743, in _eval_derivative_n_times
obj2 = obj._accept_eval_derivative(s)
File "/home/eward/se/sympy/core/basic.py", line 1719, in _accept_eval_derivative
return s._visit_eval_derivative_scalar(self)
File "/home/eward/se/sympy/core/basic.py", line 1724, in _visit_eval_derivative_scalar
return base._eval_derivative(self)
File "/home/eward/se/sympy/core/cache.py", line 94, in wrapper
retval = cfunc(*args, **kwargs)
File "/home/eward/se/sympy/core/add.py", line 404, in _eval_derivative
return self.func(*[a.diff(s) for a in self.args])
File "/home/eward/se/sympy/core/add.py", line 404, in <listcomp>
return self.func(*[a.diff(s) for a in self.args])
File "/home/eward/se/sympy/core/expr.py", line 3424, in diff
return Derivative(self, *symbols, **assumptions)
File "/home/eward/se/sympy/core/function.py", line 1416, in __new__
obj = expr._eval_derivative_n_times(v, count)
File "/home/eward/se/sympy/core/basic.py", line 1743, in _eval_derivative_n_times
obj2 = obj._accept_eval_derivative(s)
File "/home/eward/se/sympy/core/basic.py", line 1719, in _accept_eval_derivative
return s._visit_eval_derivative_scalar(self)
File "/home/eward/se/sympy/core/basic.py", line 1724, in _visit_eval_derivative_scalar
return base._eval_derivative(self)
File "/home/eward/se/sympy/core/function.py", line 607, in _eval_derivative
l.append(df * da)
File "/home/eward/se/sympy/core/decorators.py", line 91, in __sympifyit_wrapper
return func(a, b)
File "/home/eward/se/sympy/core/decorators.py", line 129, in binary_op_wrapper
return func(self, other)
File "/home/eward/se/sympy/core/expr.py", line 196, in __mul__
return Mul(self, other)
File "/home/eward/se/sympy/core/cache.py", line 94, in wrapper
retval = cfunc(*args, **kwargs)
File "/home/eward/se/sympy/core/function.py", line 2209, in __eq__
return self._hashable_content() == other._hashable_content()
File "/home/eward/se/sympy/core/function.py", line 2220, in _hashable_content
zip(self.variables, self.point) if not self.expr.has(v)]))
File "/home/eward/se/sympy/core/function.py", line 2220, in <listcomp>
zip(self.variables, self.point) if not self.expr.has(v)]))
File "/home/eward/se/sympy/core/cache.py", line 94, in wrapper
retval = cfunc(*args, **kwargs)
File "/home/eward/se/sympy/core/expr.py", line 134, in __eq__
if a != b:
File "/home/eward/se/sympy/core/containers.py", line 97, in __eq__
return super(Tuple, self).__eq__(other)
File "/home/eward/se/sympy/core/basic.py", line 343, in __eq__
return self._hashable_content() == other._hashable_content()
File "/home/eward/se/sympy/core/expr.py", line 133, in __eq__
a, b = self._hashable_content(), other._hashable_content()
File "/home/eward/se/sympy/core/symbol.py", line 381, in _hashable_content
return Symbol._hashable_content(self) + (self.dummy_index,)
File "/home/eward/se/sympy/core/symbol.py", line 274, in _hashable_content
return (self.name,) + tuple(sorted(self.assumptions0.items()))
File "/home/eward/se/sympy/core/symbol.py", line 284, in assumptions0
in self._assumptions.items() if value is not None)
RecursionError: maximum recursion depth exceeded
The inner power gets rewritten as exp(pi*log(x)) but when solve is called it will get changed back again. In some cases like sinc where there is a rewriting it's possible to work around this (#17520), but not for zeta.
The text was updated successfully, but these errors were encountered:
sympy/sympy/solvers/solvers.py
Lines 2768 to 2769 in a29cb79
These lines can cause problems if
lhs
doesn't have an explicitexp
rewriting method, for example:The inner power gets rewritten as
exp(pi*log(x))
but whensolve
is called it will get changed back again. In some cases likesinc
where there is a rewriting it's possible to work around this (#17520), but not forzeta
.The text was updated successfully, but these errors were encountered: